Software-Architecture of Distributed Applications

Faculty

Faculty of Engineering and Computer Science

Version

Version 1 of 24.03.2026.

Module identifier

11M0633

Module level

Master

Language of instruction

German

ECTS credit points and grading

5.0

Module frequency

only winter term

Duration

1 semester

 

 

Brief description

Software architecture describes the organisation of software, specifically the structure of software components, the relationships between software components and their environment, and the expected runtime behaviour in compliance with defined quality characteristics. In distributed applications, the composition of an application from distributed software modules and their cross-process communication pose a challenge. Students learn approaches and methods for defining and evaluating software architectures of distributed applications.

Teaching and learning outcomes

  1. Overview of software architecture for distributed applications
  2. Software architecture styles, patterns and principles
  3. Recording, analysing and documenting architecture-related requirements
  4. Designing, documenting and evaluating software architectures
  5. Reference architectures

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
15Lecture-
15Learning in groups / Coaching of groups-
15Seminar-
Lecturer independent learning
Workload hoursType of teachingMedia implementationConcretization
70Work in small groups-
15Presentation preparation-
20Creation of examinations-
Graded examination
  • Oral presentation, with written elaboration or
  • Project Report, written or
  • Homework / Assignment
Remark on the assessment methods

The selection of graded 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 forms of graded examination are a) presentation (with written paper), b) project report (written), and c) term paper, and are described in the applicable study regulations.

Exam duration and scope

Presentation (with written paper): approx. 20–30 minutes, accompanying paper: approx. 8–12 pages

Project report (written): approx. 15–20 pages, accompanying explanation: approx. 15 minutes

Term paper: approx. 20 pages, accompanying explanation if necessary: approx. 10 minutes

Recommended prior knowledge

  • Knowledge of software engineering, in particular the methods and processes of systematic software development
  • Basic skills in requirements analysis and the identification, documentation and evaluation of functional and non-functional requirements
  • Knowledge of software design, including common design patterns and design principles
  • A sound understanding of object-oriented programming and proficiency in at least one object-oriented programming language
  • A basic understanding of distributed systems, particularly with regard to communication mechanisms, concurrency and consistency models
  • An initial understanding of the fundamental concepts and applications of software architectures
  • Basic knowledge of databases, particularly in data modelling and the use of relational database systems

Knowledge Broadening

Students will be able to:

  • Understand the tasks of software architecture as a discipline and distinguish them from other tasks in software engineering
  • Classify software architecture principles and patterns
  • Explain the influence of non-functional requirements on software architecture
  • Describe a methodical approach to requirements analysis, design, evaluation and implementation of software architecture
  • Design software architecture for a distributed application and demonstrate its viability

Knowledge deepening

Students who have successfully completed this module will be able to appropriately organise distributed software applications based on defined objectives and required characteristics.

Knowledge Understanding

Students will be able to:

  • independently acquire the knowledge necessary to remain up to date with the latest developments
  • select the appropriate architecture for a specific distributed application from a portfolio of options, and justify and defend this decision

Application and Transfer

Students can design prototypes of software architecture for distributed applications and make sound decisions regarding compliance with defined quality characteristics.

Communication and Cooperation

Students will be able to:

  • discuss architecture-related requirements and their impact on software architecture with peers, more experienced colleagues and specialists
  • understand problems, identify solutions, discuss them with peers and specialists, justify a suitable decision and demonstrate the viability of the decision
  • document and communicate the software architecture design and support its implementation

Academic Self-Conception / Professionalism

Students will be able to:

  • reflect on requirements, especially quality characteristics and their impact on software architecture
  • assess existing challenges in designing a software architecture

Literature

Bass L., Clements P., Kazman R. (2021): Software-Architecture in Practice, Addison-Wesley
Daigneau R. (2012): Service Design Patterns, Addison Wesley
Dunkel J., et al. (2008): System-Architekturen für verteilte Anwendungen, Hanser-Verlag
Goll J. (2014): Architektur- und Entwurfsmuster der Softwaretechnik, Springer Verlag
Hohpe G., Woolf B. (2003): Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions, Addison Wesley
Khononov V. (2022): Einführung in Domain-Driven Design, O'Reilly
Martin R.C. (2018): Clean Architecture - Gute Softwarearchitekturen, mitp
Posch T., Birken K., Gerdom M. (2011): Basiswissen Softwarearchitektur: Verstehen, entwerfen, wiederverwenden, dpunkt.verlag
Richards M., Ford N. (2020): Fundamentals of Software-Architecture: An Engineering Approach, O'Reilly
Rupp, C.. et al (2020): Requirements-Engineering und -Management, 7. Auflage, Carl Hanser-Verlag
Schmidt D.C. (2002): Pattern-orientierte Software-Architektur: Muster für nebenl?ufige und vernetzte Objekte, dpunkt.verlag
Starke G. (2020): Effektive Software-Architekture: Ein praktischer Leitfaden, Hanser-Verlag
Toth S. (2019): Vorgehensmuster für Softwarearchitektur, 3. Auflage, Hanser-Verlag
Vogel O., et al, (2008): Software-Architektur, Spektrum Verlag
Wolff E. (2015): Microservices: Grundlagen flexibler Architekturen, dpunkt.verlag
Z?rner S. (2021): Software-Architekturen dokumentieren und kommunizieren, Hanser-Verlag
Zimmermann O., et al. (2022): Patterns for API Design, Addison-Wesley Professional

Applicability in study programs

  • Computer Science
    • Computer Science M.Sc. (01.09.2025)

  • Mechatronic Systems Engineering
    • Mechatronic Systems Engineering M.Sc. (01.09.2025)

    Person responsible for the module
    • Roosmann, Rainer
    Teachers
    • Thiesing, Frank
    • Roosmann, Rainer
    • Eikerling, Heinz-Josef