COMPM022 - Advanced Analysis and Design

Note: Whilst every effort is made to keep the syllabus and assessment records correct, the precise details must be checked with the lecturer(s).

Code
COMPM022 (Also taught as: COMPGS02)
Year
4
Prerequisites
Successful completion of years 1 and 2 of the MSci/MEng Computer Science programme, and an understanding of software engineering equivalent to COMP3015.
Term
1
Taught By
Dean Mohamedally (100%)
Aims
The course will train students in the principles and techniques of software systems architecture and design, with an emphasis on the specification and analysis of design models. The training will be at an intellectually demanding level and will cover not only the state-of-the practice in architecture and design, but also the most significant trends, problems and results in research in architecture and design.
Learning Outcomes
On completion of the course unit, the successful student should have a good knowledge and understanding of the Unified Modeling Language (UML), Design Patterns and architectural styles. The successful student should also be able analyse and present to an audience using informal notations (such as boxes and arrows). They should be able to design and describe a software system's architecture using design patterns and to specify a software system's architecture, design structure, and design behavior at multiple levels of abstraction using semi-formal notations (such as UML).

Content:

Introduction to Analysis and Design:
    Course Introduction
    Roles and responsibilities of an Analyst
    Managing pre-analysis and analysis phases
    Tools for Analysts
    Knowledge Elicitation techniques

Fundamentals of Software Design:
    The Unified Modelling Language
    Structural Object Orientated Analysis and Design
    Behavioural Object Orientated Analysis and Design
    Constructionism in Software Design Processes
    
Software Architecture Modelling and Design Patterns:
    Software Architectures
    Design Patterns I
    Design Patterns II
    Design Patterns III
    Design Patterns IV
    Architectural Styles
    Service-Oriented Architectures
    Enterprise Architecture and Systems Integration by Design

Advanced Object-Oriented Analysis and Design:
    Designing reusable software components, libraries and APIs
    Refactoring techniques
    Variants of design in Software Development Processes
    Design by Contract
    Model Driven Architecture (MDA)

Method of Instruction:

Lectures, tutorial sessions, coursework. There is one commercial-client project coursework (25%).

Assessment:

The course has the following assessment components:
• Written Examination (2.5 hours, 75%)
•Coursework Section (one piece, 25%)

To pass this course, students must:
 •Obtain an overall pass mark of 50% for all sections combined
 •Pass the coursework at 50%

    
The examination rubric is:
Answer all THREE questions. The questions are weighted 45:45:10.

Resources:

E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software. Addison Wesley,1995.

M. Shaw and D. Garlan, Software Architecture: Perspectives on an Emerging Discipline: Prentice-Hall, 1996.

J. Palsberg and M.I. Schwartzbach, Three Discussions on Object-Oriented Typing, ACM SIGPLAN OOPS Messenger, vol. 3, no. 2, pp. 31-38 1992.

D.E. Perry and A.L. Wolf, Foundations for the Study of Software Architecture, ACM SIGSOFT Software Engineering Notes, vol.17, no. 4, pp. 40-52, October 1992.

B. Meyer, Applying 'Design by Contract', IEEE Computer, vol. 25, no. 10, pp. 40–51, October 1992.

B.H. Liskov and J.M. Wing, A Behavioral Notion of Subtyping, ACM Transactions on Programming Languages and Systems, vol. 16, no. 6, pp. 1811-1841, November 1994.

D. Garlan, R. Allen, and J. Ockerbloom, Architectural Mismatch: Why Reuse Is So Hard, IEEE Software, vol. 12, no. 6, pp. 17-26, November 1995.

J. Arlow and I. Neustadt, UML 2 and the Unified Process, second edition. Addison Wesley, 2005.

Gregor Kiczales, John Lamping, Anurag Mendhekar, Chris Maeda, Cristina Lopes, Jean-Marc Loingtier and John Irwin, 'Aspect-Oriented

Programming', Proceedings of the European Conference on Object-Oriented Programming. Springer-Verlag LNCS 1241, June 1997.

Peri L. Tarr, Harold Ossher, William H. Harrison and Stanley M. Sutton Jnr., 'Degrees of Separation: Multi-Dimensional Separation

of Concerns' in Proceedings of the 1999 International Conference on Software Engineering (ICSE 1999), pp 107-119.

R.N. Taylor, N. Medvidovic, E.M. Dashofy, Software Architecture: Foundations, Theory and Practice, Wiley 2009.

Developing Java Software, 3rd Edition, by Russel Winder and Graham Roberts, published by John Wiley and Sons, 2006ISBN: 0-470-09025-1-0

Beginning Android Application Development, Wei-Meng Lee, Wiley 2011. ISBN 978-1-118-01711-1