COMP33411 Software Design using Patterns syllabus 2014-2015
OverviewThis is an advanced course on software design following on from the second year software engineering course COMP23420.
Although a number of software design technques are covered, the main emphasis is on design patterns, which are approcahes to hard design problems which have shown themselves to be useful in multuiple different situations.
In the past, this has not been a conventional lecture course. The primary source of material has been the book "Applying UML and Patterns" by Craig Larman, and it is still highly recommended.
Overall there will be 25 contact sessions, of the following kinds:
- Lectures (13)
- Tests (5): 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 (5): Feedback on a previous test, followed by a “mini-lecture” .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. 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 students should internalise a reasonable subset of this.
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.
Introductory lecture, intro to the Unified process
Agile software development, GRASP patterns (1)
Test 1 (Unified process), GRASP patterns (2)
Review of test 1, “chapter 23” design patterns (1)
Test 2 (GRASP patterns) “chapter23 “ design patterns (2)
Reading week – optional catch-up time.
Review of test 2, further design patterns (1)
Test 3 (“chapter 23” design patterns), further design patterns (2)
Review of test 3, Aspect-oriented programming (1)
Test 4 (further design patterns), aspect-oriented programming (2)
Review of test 4, review of course
Test 5 (AOP), review of test 5
Feedback methodsFeedback is mainly through a series of 5 online tests. Student get individual feedback on these, and they are also reviewed at subsequent lectures.
- Assessment written exam (2 hours)
- Lectures (17 hours)
- Practical classes & workshops (5 hours)
- Analytical skills
- Problem solving
- Written communication
|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.|
|Applying UML and patterns: an introduction to Object-Oriented analysis and design and iterative development (3rd edition)||Larman, Craig||0131489062||Prentice Hall||2004||✔|
Course unit materials
Links to course unit teaching materials can be found on the School of Computer Science website for current students.