COMP33411: Software Design using Patterns (2011-2012)
This is not a conventional lecture course. In fact there will probably only be one conventional lecture. Rather than lecture handouts, the primary source of material will be the book "Applying UML and Patterns" by Craig Larman, and you will need to buy it. The book is neither cheap nor thin, but it is excellent, and every computer scientist should own a copy. You will be given detailed advice on which parts of the book to focus on, to avoid excessive reading time.
This is not just a 'reading course' however. There will be 23 contact sessions, but rather than lectures most of these will be of the following kinds:
Q&A: Question and answer sessions, where you can ask questions about the course material and have them answered.
Test: Sessions which include a half hour online test which counts for 10% of the total assessment for the course. There are five of these, each preceded by an optional self-assessment test which can be taken when convenient.
Review: Feedback on a previous test. A final review session will be held after the notional end of the course to review the mock exam.
The continuous assessment and accompanying feedback is made possible by the use of online exam software. See the additional information for more information on this form of assessment. The assessment will be based on a case study - applying UML and patterns to the design of an online exam system! This will run parallel to the case study in the book.
The primary aim of the course is stated in the title of the book: applying UML and patterns, as opposed to merely learning UML notation and pattern descriptions. The book contains a vast amount of sound advice on best practice in software development, and the students should internalise a reasonable subset of this.
|Programme outcome||Unit learning outcomes||Assessment|
|A2 A4 B1 B2 B3 C5 D4||A student successfully completing this course should be able to explain the following techniques and apply them appropriately in software development: *Iterative development as exemplified by the Unified Process. *Use-case modelling and realisation. *Static and dynamic domain modelling. *The fundamental GRASP patterns. *A selection of the classic 'Gang of four' design patterns.|
|A2 A4 B1 B2 B3 C5 D4||The student should also know when and where to look for additional techniques and patterns.|
Each week has a primary theme (in some weeks there may also be secondary topics) and the style of the two contact sessions for each week is also listed. Since this is a brand new course some of the details may be subject to change.
The Unified Process Introductory lecture, Q&A
Use case modelling Q&A, test 1 (Unified process)
Non-functional requirements Q&A, review 1
System sequence diagrams and interaction diagrams Q&A, test 2 (Requirements analysis)
Domain modelling Q&A, review 2
Operation contracts Q&A, test 3 (Modelling)
GRASP patterns (1) Q&A, review 3
GRASP patterns (2) Q&A, test 4 (GRASP patterns)
GoF patterns (1) Q&A, review 4
GoF patterns (2) Q&A, test 5 (Gof patterns)
Statechart modelling Q&A, review 5
Conventional lecture notes will not exist, but notes on the case study will be provided.
Core TextTitle: Applying UML and patterns: an introduction to Object-Oriented analysis and design and iterative development (3rd edition)
Author: Larman, Craig
Publisher: Prentice Hall
This book is essential for the course.