Module Identifier CS31110  
Academic Year 2001/2002  
Co-ordinator Dr Mark Ratcliffe  
Semester Semester 1  
Other staff Mr Christopher Loftus, Dr Lynda Thomas  
Pre-Requisite CS22120 or equivalent experience  
Course delivery Lecture   22 lectures  
  Practical   8 x 2 hr  
Assessment In-course assessment   A2 Assessed practicals   10%  
  Supplementary examination   Will take the same form, under the terms of the Department's policy.   100%  
  Exam   2 Hours A1   90%  
Further details  


A major development in software design in the last decade has been the adoption of object-oriented techniques. The object approach first made an impact in the area of programming language design. The ideas have rapidly spread and object-oriented techniques are now of growing importance in areas as diverse as software analysis and design methods, databases, graphical user interfaces and distributed systems. In this module students will learn about the process of developing object-oriented systems, starting from requirements capture and analysis through to implementation. As part of this, the module will devote a significant amount of time on the use of design patterns to achieve reuse of design expertise during the development process.

Learning outcomes

On successful completion of this module students should:

1. have a critical appreciation of object-oriented design and implementation, with a focus on server-side development (A1);
2. have command of features of the standard object-oriented modelling notation, UML - in particular class and sequence diagrams (A1);
3. be able to develop software systems from initial design through to code using a software modelling tool, such as Together (A1, A2);
4. know the key aspects of the Rational Unified Process (RUP) and be able to describe and demonstrate how it can be used to develop UML-based models during system development (A1);
5. be able to demonstrate specialized skills to achieve reuse of design expertise through the application of design patterns and   frameworks (A1, A2);
6. demonstrate a comparative appreciation of the strengths and weaknesses of the object-oriented and procedural paradigms,   and be able to map an object-oriented design onto a procedural programming language (A1).


1. Introduction to Object-Oriented Analysis and Design - 1 Lecture
This lecture provides a road-map to the module, with a brief overview of main concepts and how they interrelate. A general description of object-oriented analysis and design will be provided.

2. Introduction to the Unified Modeling Language (UML) - 2 Lecture
The UML is an attempt by Booch, Rumbaugh and Jacobson to produce a common language for describing OO designs. These lectures will provide an overview of the UML.

3. Use of a Software Modelling Tool - 1 Practical
This practical will familiarise students with the basic facilities of a software modelling tool.

4. Use Case Modelling - 2 Lecture, 1 Practical
These lectures will describe Use Case Modelling; both methodological steps and the use of the UML notation. The knowledge gained will be applied in the practical.

5. The Rational Unified Process - 8 Lectures, 4 Practicals
In these lectures the RUP approach to object-oriented analysis and design will be considered. The analysis phase will be discussed in detail. The UML will be used to provide the modelling notation. The appraoch will be applied in the practicals.

6. Reusing Design Patterns During the Design Workflow - 5 Lectures, 2 Practicals
Design patterns are reusable pieces of design expertise for commonly occuring problems. These lectures and practicals will describe what design patterns are and how they can be applied.

7. Comparative Study of the Object-Oriented and Procedural Paradigms ? 4 Lectures
These lectures will compare and contrast object-oriented and procedural languages with the help of a couple of case studies, thereby exemplifying the strengths and weaknesses of the two paradigms.

Reading Lists

** Recommended Text
John Hunt.. (Mar 2000) Unified Process for Practitioners: Object oriented design, UML and Java. Springer-Verlag ISBN 1852332751
** Consult For Futher Information
James Rumbaugh, Ivar Jacobson and Grady Booch. (1999) The Unified Modeling Language Reference Manual. Addison-Wesley ISBN 020130998X
Ivar Jacobson, Grady Booch and James Rumbaugh. (1999) The Unified Software Development Process. Addison-Wesley ISBN 0201571692
Philippe Kruchten. (Mar 2000) The Rational Unified Process: An Introduction. 2nd Ed.. Addison-Wesley ISBN 0201707101