TDDB84 Design Patterns
After the course, students will be able to
- Identify and explain software design principles and design patterns in existing object-oriented software.
- Apply software design principles and design patterns when working with existing object-oriented software.
- Describe the purpose and consequences of design patterns in object-oriented software.
- Critically evaluate software design principles and design patterns in relationship to desired software qualities.
- Analyze the relationship between software design principles, design patterns and and programming languages and application domains.
The course is organized around two main activities: discussing and reasearching design patterns in seminar form and based on this a written examination, and conducting a series of programming assignments related to understanding design principles and patterns. To support those activities, there will be a series of larger seminars and a set of lab sessions scheduled. Furthermore, there will be recorded lecture material on concrete design patterns as well as on the use of design principles in the course. For students who take the course in Norrköping, there will be an opportunity to take the course locally through video conferencing facilities used for seminars, and a locally available lab assistent during the lab sessions.
There will be a series of weekly seminars in the course, where each seminar will be related to one of the lab assignments, or related to understanding design patterns and the written examitaion..
The course will have three main lab assignments that you perform in groups. There will be an oral examination at the end of the lab series, where you get to bring your work and reflections individually to a lab assistant and talk about your work. The lab assignments are:
- Analyzing an application with respect to design decisions taken and the design patterns that are found to be implemented or needed.
- Introducing new tests in an application and studying what will be required to run tests in the application.
- Extending the application, sharing the extensions with other students and reflecting on the outcome.
The examination of the course is divided between working with an open source project and a written examination based on the discussion seminars. The labs are examined by written reports on your work in the first two labs, and an oral examination with a lab assistant at the end of the lab course. See more information on the page describing the labs.
Page responsible: Ola Leifler
Last updated: 2014-08-29