Software Architecture: Concepts and Pracitcal Implementations

Faculty

Faculty of Engineering and Computer Science

Version

Version 1 of 27.11.2025.

Module identifier

11B1820

Module level

Bachelor

Language of instruction

German

ECTS credit points and grading

5.0

Module frequency

winter and summer term

Duration

1 semester

 

 

Brief description

The software architecture defines the essential software building blocks for structuring a software system and defines specifications for the expected dynamic behaviour of a software, while complying with defined non-functional requirements. Students learn typical software architecture styles, patterns and principles and can apply these using suitable technologies.

Teaching and learning outcomes

  1. Software architecture (SWA) - short introduction
  2. SWA styles, patterns and principles
  3. SWA drivers and technologies
  4. Module and interface design
  5. Dependency management
  6. Cross-Cutting-Concerns

Overall workload

The total workload for the module is 150 hours (see also "ECTS credit points and grading").

Teaching and learning methods
Lecturer based learning
Workload hoursType of teachingMedia implementationConcretization
30Lecture-
30Laboratory activity-
Lecturer independent learning
Workload hoursType of teachingMedia implementationConcretization
60Preparation/follow-up for course work-
30Creation of examinations-
Graded examination
  • Written examination or
  • Oral presentation, with written elaboration or
  • Project Report, written
Ungraded exam
  • Field work / Experimental work or
  • Regular participation
Remark on the assessment methods

The selection of graded and ungraded examination types from the specified options is the responsibility of the respective teacher. In doing so, the teacher adheres to the applicable study regulations.

The ungraded assessment is carried out as part of the accompanying internship. The forms of graded assessment are a) written examination, b) presentation (with written report) or c) project report (written) and are described in the applicable study regulations.

Exam duration and scope

Graded examination performance:

  • Written examination: see applicable study regulations
  • Presentation (with written paper): approx. 15-20 minutes, accompanying paper: approx. 8-10 pages
  • Project report (written): approx. 10-15 pages, accompanying explanation: approx. 15 minutes

Unmarked examination:

  • Experimental work: Experiment: approx. 10 experiments in total
  • Regular attendance: attendance of at least 80% of the course

Recommended prior knowledge

Good knowledge of programming paradigms and advanced knowledge of object-oriented programming concepts. Very good knowledge of an object-oriented programming language. Basic knowledge of requirements analysis, software design and the development of distributed systems. Good prior knowledge of databases and their use.

Knowledge Broadening

After successfully completing the module, students will be able to:

  • define and describe the basic principles, styles and patterns of software architecture,
  • define the requirements relevant to software architecture,
  • design a software architecture based on the requirements for a defined software architecture style,
  • apply selected technologies for the implementation of a software architecture design.

Knowledge deepening

After successfully completing the module, students will be able to:

  • Identify and design the fundamental structure of complex software.
  • Define interfaces for high-level software components and their forms of interaction.
  • Characterise quality features such as maintainability, correctness, security and availability, and take them into account in design and implementation.
  • Use frameworks.
  • Create integration and automatable system tests.

Knowledge Understanding

Upon successful completion of the module, students will be able to:

  • design a software architecture and critically evaluate decisions based on their specialist knowledge
  • check and verify the viability of the software architecture

Application and Transfer

Upon successful completion of this module, students will be able to:

  • Design software architectures for defined software architecture styles
  • Be familiar with technologies for implementing and testing software architecture

Academic Innovation

Students will be able to:

  • apply and evaluate established approaches and procedures for designing software architecture.

Communication and Cooperation

Upon successful completion of this module, students will be able to:

Discuss software architecture designs with subject specialists and non-specialists using theoretically and methodologically sound arguments and develop solutions.

Academic Self-Conception / Professionalism

Students will be able to:

  • apply established approaches and procedures for designing software architecture.

Literature

  • Starke G. (2020): Effektive Softwarearchitekturen: Ein praktischer Leitfaden, Hanser-Verlag, 9. Auflage
  • Richards M, et al (2020): Handbuch moderner Softwarearchitektur, O'Reilly
  • Vogel O., et al (2008): Software-Architektur, Spektrum Verlag
  • Evans E. (2003): Domain Driven Design, Addison Wesley
  • Martin R. C. (2017): Clean Architecture, Addision Wesley
  • Dunkel J. (2003): Software-Architektur für die Praxis, Springer Verlag
  • Zörner S. (2021): Software-Architekturen dokumentieren und kommunizieren, Hanser Verlag
  • Inden M. (2016): Der Java-Profi, dpunkt.verlag
  • Vieira D. (2023): Designing Hexagonal Architecture with Java, Packt Publishing
  • Tilkov S., et al. (2015): REST und HTTP, dpunkt.verlag
  • Spichale K. (2016): API-Design: Praxishandbuch für Java- und Webservice-Entwickler, dpunkt.verlag

Applicability in study programs

  • Mechatronics
    • Mechatronics B.Sc. (01.09.2025)

  • Computer Science and Media Applications
    • Computer Science and Media Applications B.Sc. (01.09.2025)

  • Computer Science and Computer Engineering
    • Computer Science and Computer Engineering B.Sc. (01.09.2025)

    Person responsible for the module
    • Roosmann, Rainer
    Teachers
    • Kleuker, Stephan
    • Roosmann, Rainer
    • Tapken, Heiko
    • Thiesing, Frank