htw saar Piktogramm
Back to Main Page

Choose Module Version:


Design Patterns

Module name (EN): Design Patterns
Degree programme: Applied Informatics, Bachelor, ASPO 01.10.2017
Module code: PIB-EWM
SAP-Submodule-No.: P221-0075
Hours per semester week / Teaching method: 2V (2 hours per week)
ECTS credits: 3
Semester: 5
Mandatory course: no
Language of instruction:
Oral examination

[updated 19.02.2018]
Applicability / Curricular relevance:
KI681 (P221-0075) Computer Science and Communication Systems, Bachelor, ASPO 01.10.2014, semester 6, optional course, technical
KIB-EWM Computer Science and Communication Systems, Bachelor, ASPO 01.10.2017, semester 6, optional course, technical
PIBWI73 (P221-0075) Applied Informatics, Bachelor, ASPO 01.10.2011, semester 6, optional course, informatics specific
PIB-EWM (P221-0075) Applied Informatics, Bachelor, ASPO 01.10.2017, semester 5, optional course, informatics specific
30 class hours (= 22.5 clock hours) over a 15-week period.
The total student study time is 90 hours (equivalent to 3 ECTS credits).
There are therefore 67.5 hours available for class preparation and follow-up work and exam preparation.
Recommended prerequisites (modules):
Recommended as prerequisite for:
Module coordinator:
Prof. Dr. Helmut Folz
Lecturer: Prof. Dr. Helmut Folz

[updated 10.11.2016]
Learning outcomes:
After successfully completing this course, students will:
_ know the differences between architectural patterns, software design patterns, and programming idioms and be able to explain them.
_ be familiar with the most important architectural patterns and can explain their application context and structure
_ be familiar with the most important software design patterns, their application contexts, structure and dynamics and can illustrate this with examples.
_ understand the structure and use of JUnit.
_ have an overview of refactoring methods and can explain them using code examples.

[updated 19.02.2018]
Module content:
1. Introduction to software design patterns
    1.1 General information
    1.2 Pattern categories
    1.2 Patterns and software architectures
2. Architectural patterns
    2.1 Multi-tier patterns
    2.2 Broker pattern
    2.3 Model-view-controller
    2.4 Other architectural patterns
3. Software design patterns and applications
    3.1 Creational patterns
    3.2 Structural patterns
    3.3 Behavioral design patterns
4. Introduction to JUnit
    4.1 Unit tests with JUnit
    4.2 The design of JUnit 3.8.x
    4.3 Annotations
    4.4 JUnit 4.x
5. Refactoring and patterns
    5.1 Introduction to software metrics
    5.2 Introduction to refactoring
    5.3 Refactoring and patterns
6. Introduction to aspect-oriented software development (optional)
    6.1 Aspect-oriented software development overview
    6.2 Application examples for aspect-oriented software development
    6.3 Aspect-oriented software development and patterns

[updated 19.02.2018]
Teaching methods/Media:
Transparencies, projector, board
Course-specific website

[updated 19.02.2018]
Recommended or required reading:
Geirhos, Matthias:
Entwurfsmuster _ Das umfassende Handbuch
Rheinwerk Verlag GmbH, Bonn
Goll, Joachim:
Architektur- und Entwurfsmuster der Softwaretechnik
Springer Vieweg
Gamma, E.; Helm, R.; Johnson, R.; Vlissides, J.:
Entwurfsmuster: Elemente wiederverwendbarer objektorientierter Software
Fowler, Martin: Refactoring
Oder wie Sie das Design vorhandener Software verbessern.

[updated 19.02.2018]
Module offered in:
WS 2022/23 (probably), WS 2021/22, WS 2020/21, WS 2019/20
[Sun Aug 14 04:47:22 CEST 2022, CKEY=kea, BKEY=pi2, CID=PIB-EWM, LANGUAGE=en, DATE=14.08.2022]