next up previous
Next: MC208 Functional Programming Up: Year 2 Previous: MC205 Object-Oriented Programming Using

MC206 Software Engineering and System Development


MC206 Software Engineering and System Development

Credits: 20 Convenor: Zhiming Liu Semester: 1


Prerequisites: essential: MC103, MC104, MC111 desirable: MC106, MC115
Assessment: Continual assessment: 40% Three hour exam in January: 60%

Lectures: 36 Classes: none
Tutorials: 10 Private Study: 84
Labs: 20 Seminars: none
Project: none Other: none
Total: 150

Explanation of Pre-requisites

A sound knowledge of basic algorithm and program design and data structures is required. A good understanding of logic and discrete structures is essential for rigorous and formal models and specifications of software systems. Some knowledge of the professional and ethical issues of large systems are would be useful, but it is certainly not essential for this course. It is also desirable that students have some knowledge of database systems.

Course Description

This course follows on from the course on Software Engineering and provides the students with the engineering principles, methods and practice of how a large system can be specified, designed and implemented using object oriented techniques.

Aims

The overall purpose of the course is to give an understanding of the problems of large-scale software development and how this can be solved using object oriented techniques. The main aim of the course is to teach the understanding and use of object oriented methods to analyse, specify, design and implement large computer systems.

Objectives

At the end of the course the students should be able to:

Transferable Skills

Syllabus

Introduction: Software crisis and historical background of Software Engineering; features of modern software systems, software products and their characteristics: maintainability, dependability, efficiency and usability.

Software Development Process: Requirement analysis; system design; implementation and unit testing; integration and system testing; operation and maintenance; the waterfall model; evolutionary development.

Introduction to OO Development: The inherent complexity of software; mastering complex systems; examples of complex systems; function oriented vs object-oriented methods.

Object-oriented requirement capture and analysis: Case study; requirement specification; use cases; conceptual models.

System Behaviour: System Sequence Diagrams and Operations: System input events and system operations; system sequence diagrams (SSD); contracts; from analysis to design.

OO Design: Interaction diagrams; UML notational issues. creating collaboration diagrams, patterns for assigning responsibilities; a design of POST; connecting user interface objects to domain object; design class diagrams.

Implementing a Design: UML notation for interface details; mapping a design to code; container/collection classes in code.

Advanced Modelling Concepts and Design Techniques: Iterative development process; generalization; abstract classes; associative classes, qualified association; UML notation for packages; modelling behaviour in state diagrams; VDM specification of classes and objects.

Summing Up and Revision

Reading list

Essential:

Recommended:

I. Jacobson, G. Booch, and J. Rumbaugh, The Unified Software Development Process, Addison-Wesley, 1999.

C. Larman, Applying UML and Patterns, Prentice-Hall International, 1998.

R. Pooley and P. Stevens, Using UML: Software Engineering with Objects and Components, Addison-Wesley, 1999.

Background:

G. Booch, J. Runbaugh and I. Jacobson, The Unified Modelling Language User Guide, Addison-Wesley, 1999.

M. Fowler, UML Distilled - Applying the Standard Object Modeling Language, Addison-Wesley, 1997.

IBM Object-Oriented Technology Center, Developing Object-Oriented Software, An Experience-Based Approach, Prentice Hall PTR, 1997. O. Nierstrasz and D. Tsichritzis, Object-Oriented Software Composition, Prentice Hall, 1995.

B. Meyer, Object-oriented Software Construction (2nd Edition), Prentice Hall PTR, 1997.

O. Nierstrasz and D. Tsichritzis, Object-Oriented Software Composition, Prentice Hall, 1995.

R. Pressman, Software Engineering - A Practitioner's Approach (4th Edition), McGraw Hill, 1997.

M. Priestley, Practical Object-Oriented Design, McGraw-Hill, 1997.

J. Runbaugh, I. Jacobson and G. Booch, The Unified Modelling Language Reference Manual, Addison-Wesley, 1999.

S.R. Schach, Classical and Object-Oriented Software Engineering (3rd Edition), IRWIN, 1996.

I. Sommerville, Software Engineering (5th Edition), Addison-Wesley, 1995.

Details of Assessment

The final assessment of this module will consist of six assessed pieces of work and a three hour written examination in January.


next up previous
Next: MC208 Functional Programming Up: Year 2 Previous: MC205 Object-Oriented Programming Using
S. J. Ambler
11/20/1999