Module Identifier CS31110  
Module Title OBJECT-ORIENTED ANALYSIS AND DESIGN  
Academic Year 2002/2003  
Co-ordinator Dr Mark B Ratcliffe  
Semester Semester 1  
Other staff Mr Christopher W Loftus  
Pre-Requisite CS22120 or equivalent experience  
Course delivery Lecture   22 lectures  
  Practical   8 x 2 hr  
Assessment Semester Exam   2 Hours A1   90%  
  Semester Assessment   A2 In-Course Assessment: Assessed practicals   10%  
  Supplementary Exam   Will take the same form, under the terms of the Department's policy.   100%  
Further details http://www.aber.ac.uk/compsci/ModuleInfo/CS31110  

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 use-case diagrams and class diagrams - and be able to construct these during analysis and design (A1, A2);
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 features of several important software development processes and describe and demonstrate how they 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);

Aims

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.

Content

PART A: Overview

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) - 1 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. Process 1: Rational Unified Process (RUP): Overview - 1 lecture
RUP is a well-known and widely used software development process that embodies architecture, iterative development and use cases. This lecture sets the scene. Subsequent lectures in Part B discuss software development in the context of RUP. P

PART B: Analysis

5. Use Case Modelling - 1 Lecture, 2 Practicals
This lecture will describe Use Case Modelling; both methodological steps and the use of the UML notation. The knowledge gained will be applied in the practicals.

6. Building class diagrams using UML - 2 lectures
Class diagrams are one of the most widely used UML diagram.

7. The process of discovering analysis classes - 1 lecture, 1 practical
The CRC technique in the context of RUP will be examined.

8. Representing behaviour using collaboration diagrams - 1 lecture

PART C: Design

9. Architecture, design, design patterns and frameworks - 6 lectures, 3 practicals
These lectures will examine a variety of design issues in the context of RUP. As part of this, we examine the very important topic of design patterns: reusable pieces of design expertise used to solve commonly occuring problems.

10. Design notation in UML: sequence and state diagrams (1 lecture)
   

PART D: Extreme Programming and Refactoring

11. Process 2: Extreme Programming (XP) - 5 lectures, 2 practicals
XP provides an alternative approach to RUP for software development based around pair programming and test-led development. These lectures and practicals explore the practice of, and philosophy behind XP.

12. Refactoring designs - 2 lectures
XP and other processes often rely on the need to update and refine designs in response to changing user requirements. These lectures will explore this important topic.

Reading Lists

Books
** Consult For Futher Information
John Hunt.. (Mar 2000) Unified Process for Practitioners: Object oriented design, UML and Java. Springer-Verlag ISBN 1852332751
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