COMPGS02 - 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
- COMPGS02 (Also taught as: COMPM022)
- Year
- MSc
- Prerequisites
- An understanding of software engineering equivalent to COMP2009 and COMP3C05, and an understanding of the basics of programming.
- 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.
R.N. Taylor, N. Medvidovic, E.M. Dashofy, Software Architecture: Foundations, Theory and Practice, Wiley 2009.
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.
Developing Java Software, 3rd Edition, by Russel Winder and Graham Roberts, published by John Wiley and Sons, 2006 ISBN: 0-470-09025-1-0
Beginning Android Application Development, Wei-Meng Lee, Wiley 2011. ISBN 978-1-118-01711-1

