Module Identifier CS31110  
Academic Year 2000/2001  
Co-ordinator Dr Mark Ratcliffe  
Semester Semester 1  
Pre-Requisite CS22120 or equivalent experience  
Course delivery Lecture   22 lectures  
  Practical   10 x 2 hr sessions  
Assessment Exam   2 Hours   90%  
  In-course assessment   Assessed practicals   10%  
  Supplementary examination   Will take the same form, under the terms of the Department's policy.   100%  

Brief description
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. Introduction to Object-Oriented Analysis and Design - 1 Lecture
  2. 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.

  1. Recap of Core UML - 2 Lectures, 1 Practical
  2. A revision tour of core UML notation with lecture and practical-based exercises.

  1. Overview of the Unified Process - 3 Lectures
  2. These lectures will describe the Unified Process lifecycle and its three key aspects: Use-case driven development, architecture-centric development, and iterative and incremental development.

  1. A Generic Iteration Through the Unified Process Workflows - 10 Lectures, 6 Practicals
  2. A running example will be used to illustrate the development of UML-based models during each of the Unified Process workflows: Requirements capture (use-case modelling), Analysis, Design, Implementation and Test. Students will develop their own UML-based models for a system during practicals.

  1. Reusing Design Patterns During the Design Workflow - 4 Lectures, 3 Practicals
  2. 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.

  1. Comparative Study of the Object-Oriented and Procedural Paradigms - 2 Lectures
  2. These lectures will compare and contrast object-oriented and procedural languages, thereby exemplifying the strengths and weaknesses of the two paradigms.

  1. The Interplay of Target Language and UML-Based Designs - 1 Lecture
  2. Invariably the choice of target implementation language has an impact on design. This lecture will examine how the use of Java as a target language influences a UML-based system model and how a UML design can be mapped to the C programming language.

Reading Lists
** Should Be Purchased
John Hunt.. (Mar 2000) Unified Process for Practitioners: Object oriented design, UML and Java. Springer-Verlag
Rob Pooley and Perdita Stevens.. (2000) Using UML: Software engineering with objects and components.. Addison-Wesley ISBN 0-201-64860-1
** Consult For Futher Information
James Rumbaugh, Ivar Jacobson and Grady Booch. (1999) The Unified Modeling Language Reference Manual. Addison-Wesley ISBN 0-201-30998-X
Ivar Jacobson, Grady Booch and James Rumbaugh. (1999) The Unified Software Development Process. Addison-Wesley ISBN 0-201-57169-2