Next: MC208 Functional Programming
Up: Year 2
Previous: MC205 Object-Oriented Programming Using
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:
- analyse customer requirements;
- write an object oriented specification for a small system;
- produce an logical design based on an object oriented
specification;
- produce a physical design from a logical design;
- implement a physical design; and
- know what steps are required to specify, design and develop code
for a large computer system.
Transferable Skills
- the skill in customer requirements analysis;
- the skill in requirement definition and specification;
- the principles of software project management;
- the understanding of system development process.
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: MC208 Functional Programming
Up: Year 2
Previous: MC205 Object-Oriented Programming Using
Roy L. Crole
10/22/1998