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 desirable: MC106, MC115
Assessment: Continual assessment: 30% Three hour exam in January: 70%

Lectures: 30 Classes: 20
Tutorials: none Private Study: 100
Labs: none 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. 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

The system development process: How software is developed; the development cycle; the development process: feasibility study, requirement analysis, system specification, system architecture, system design, coding, installation, maintenance.

Abstract data types: Abstract data types; using abstract data types in design; information hiding; properties of data vs implementation.

Object-oriented analysis and design: The object-oriented approach to system development.

Static models: Objects and classes: attributes, methods and associations; inheritance; aggregation; class communications.

Dynamic models: Modelling the real world; requirements capture; scenarios; events; use-case analysis; finite state machines.

Logical design: The architecture of the system; fitting it all together; the concept of logical design; the specification of the system; data; the user interface.

Physical design: dividing the system into components; persistent objects and databases; design decisions.

System implementation: Implementation strategies: implementing associations, implementing state machines.

Summing up: summary of the course.

Reading list

Essential:

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

J. Rumbaugh et al, Object-Oriented Modelling and Design, Prentice Hall International, 1991.

Recommended:

G. Booch, Object-Oriented Analysis and Design with Applications (2nd Edition), Addison-Wesley, 1994.

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

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

Background:

P. Coad and E. Yourdon, Object-Oriented Analysis (2nd Edition), Prentice-Hall 1991.

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

W. Pree, Design Patterns for Object-Oriented Software Development, Addison-Wesley 1995.

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

Details of Assessment

The final assessment of this module will consist of four 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
Roy L. Crole
10/22/1998