News
- 2006-09-11: The results of the third and final examination are announced.
- 2006-06-26: Third and final examination date is September 4, 2006. For more information, see examination web page.
- 2006-06-26: The results of the second examination are announced. They can be found on the IT department's official noticeboard on the fifth floor of Datacity. (Note: Due to summer holidays the registration of grades may take some time.)
- 2006-05-16: The results of the first examination are announced. They can be found on the IT department's official noticeboard on the fifth floor of Datacity.
- 2006-03-16: The first two examination dates have been confirmed. Please note that in the examination you can use the course textbook, which you can obtain, for example, from on-line bookstores or straight from the publisher.
- 2006-03-06: The first lecture (March 7) is cancelled due to sickness. Please read Section 1 (chapters 16) from the course textbook by the second lecture (March 14).
- 2006-01-25: The textbook for the course is Martin, Robert C.: Agile Software Development: Principles, Patterns, and Practices, Prentice-Hall, 2003, ISBN: 0-13-597444-5. The course will rely heavily on the textbook, which is why obtaining the book is necessary.
Timetable
Lectures
Date | Book | Topics | Note | |
1. | Tue, Mar. 7 | | (none) | Lecture cancelled. |
2. | Tue, Mar. 14 | Section 1: Chapters 16 |
Introduction.
Planning, testing, and refactoring.
[slides] Additional material:
|
|
3. | Tue, Mar. 21 | Section 2: Chapters 712 |
Symptoms of poor design.
Principles: SRP, OCP, LSP, DIP, and ISP.
[slides] Additional material:
|
|
4. | Tue, Mar. 28 | Section 3: Chapters 1319 |
Introduction to design patterns.
Design patterns: COMMAND and ACTIVE OBJECT; TEMPLATE and STRATEGY; FACADE and MEDIATOR; SINGLETON and MONOSTATE; NULL.
[slides] Additional material:
|
|
5. | Tue, Apr. 4 | Section 4: Chapters 2022 |
Package design principles: REP, CRP, CCP, ADP, SDP, and SAP. Design patterns: FACTORY.
[slides] Additional material:
|
|
6. | Tue, Apr. 11 | Section 5: Chapters 2327 |
Design patterns: COMPOSITE; OBSERVER; ABSTRACT SERVER, ADAPTER, and BRIDGE; PROXY and STAIRWAY TO HEAVEN.
[slides] Additional material:
|
Last lecture after Easter. |
7. | Tue, Apr. 25 | Section 6: Chapters 2830 |
Design patterns: VISITOR; STATE. Conclusions.
[slides] Additional material:
|
Examinations
The examination dates are:Check the exact times and places here, and remember to enrol in time. If you are not a student of University of Turku, you must follow these instructions to receive credits.
- May 15, 2006.
- June 20, 2006.
- September 4, 2006.
Note: You can use the course textbook (Martin: Agile Software Development: Principles, Patterns, and Practices, Prentice-Hall, 2003) in the examination.
Syllabus
Aims: The goal of the course is to establish a broad view of the stakeholders of software design. Stakeholder forces, like reuse strategy, extendibility, understandability, maintainability, supports for construction etc. should drive the design. The course aims at understanding these forces and provides design skills needed to take the forces into account. This approach often leads to application framework type solutions.Content: The course begins with exploring fundamentals of object orientation and their concretization as design principles. These principles lead us to design patterns, enabling us to implement commonalities and variabilities of requirements directly in the design. Most commonly used patterns are studied in detail. Two complementing design strategies for using patterns are presented: (1) upfront architecture design which tries to exploit anticipated future evolution paths of software, and (2) refactoring based approach where we rely on constant high-quality flexibility design to cope with forthcoming requirement changes.
Credits: 5 cp (3 cu)
Prerequisites: Sopimuspohjainen ohjelmointi, Olio-ohjelmointi (ent. Ohjelmointi II); Object-oriented programming
Teaching methods: Lectures (14 h), Tuesdays 1012, Etäluokka.
Assessment: Examination.
Literature: Martin, Robert C.: Agile Software Development: Principles, Patterns, and Practices, Prentice-Hall, 2003.
Lecturer: Jouni Smed
Schedule: March 7 April 25