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
Tahir Khan & Guest Speakers from IBM (50%)
Emmanuel Letier (25%)
                                      Dean Mohamedally (25%)
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 advanced architecture modelling and design, design patterns and formal notation 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.
 

Content:

Architecture and Software Analysis
    Course Introduction & Special Lecture Series by IBM

Fundamentals of Software Design:

    The Unified Modelling Language
    Alloy Modelling
    
Software Design Patterns:
    Software Architectures
    Design Patterns I
    Design Patterns II
    Architectural Styles



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