COMPGS02 - Advanced Analysis and DesignNote: Whilst every effort is made to keep the syllabus and assessment records correct, the precise details must be checked with the lecturer(s).
- COMPGS02 (Also taught as: COMPM022)
- An understanding of software engineering equivalent to COMP2009 and COMP3C05, and an understanding of the basics of programming.
- Taught By
- Tahir Khan & Guest Speakers from IBM (50%)
- Emmanuel Letier (25%)
- Dean Mohamedally (25%)
- 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.
- Architecture and Software Analysis
Course Introduction & Special Lecture Series by IBM
Fundamentals of Software Design:
- The Unified Modelling Language
Software Design Patterns:
Design Patterns I
Design Patterns II
Method of Instruction:
Lectures, tutorial sessions, coursework. There is one commercial-client project coursework (25%).
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.
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