Module Software Architectures, Computer Science (Master) (ER 5)

English language
Compact font

Color scheme

Module summary

Software Architectures

INFM210S

Prof. Dr. Thomas Fuchß

/

2nd Semester

none

none

On successful completion of the module, students will be able to independently design, develop and critically evaluate the architecture of large-scale software systems. They will be able to decompose software into components and connectors, select and evaluate appropriate frameworks, and logically organise functionalities and workflows. Students will be able to plan and design parallel and concurrent processes and integrate them into architectures tailored to different application domains. In addition, they will have developed their technical, social and personal skills, as well as their communication and self-management skills, and will be able to apply them effectively in the context of large-scale software projects.

Individual exams
Course Graphical User Interfaces Laboratory

INFM213S

Laboratory

M.Sc. Aladdin Özenir

German

2/2

60 hours in total, including 30 hours of contact study.

Laboratory Work 1 Semester (not graded)

Students learn to write web based applications using differenz concepts:

  • client centered
  • server centered

All solutions will be based on modern frameworks or libraries like AngularJS or Vaadin.

Online problem description, based on a selection of industrial topics. The literature is presented in each semester depending on the exercises.

Supported teamwork in the laboratory. Self study, oral exam and presentation

Course Parallel Programming

INFM212S

Lecture

Dipl.-Ing. Christian Meder

German

3/2

90 hours in total, including 30 hours of contact study.

Exercise 1 Hours (not graded)

Course Software Architectures

INFM211S

Lecture

Prof. Dr. Thomas Fuchß

German

2/2

60 hours in total, including 30 hours of contact study.

Verbal Exam 20 Min. (graded)

The "Software Architectures" course provides advanced knowledge and skills in the development and analysis of modern software architectures.

In the first part of the lecture, relevant process models are reviewed, and approaches for agile architecture development are introduced. Students explore and compare various view models, deepen their understanding of modeling techniques for components and connectors, and expand their knowledge of design methods. The course emphasizes the use of scenarios for describing and evaluating non-functional requirements.

The second part focuses on fundamental architectural patterns, such as layered architecture, hexagonal architecture, onion architecture, blackboard, pipes-and-filters, and event-driven architecture. Students learn to identify, understand, and apply these patterns while exploring their role in typical middleware concepts. The lecture demonstrates how these architectural templates provide pathways to organizing flexible and evolutionary systems.

The third part addresses architecture at the module level. Using practical scenarios and examples, the application of patterns for the business layer is presented and analyzed in context. The course aims to equip students with a comprehensive understanding of designing and evaluating modular software architectures.

  • Avgeriou, P; et. al (editors): Relating Software Requirements and Architectures. Springer, 2011.
  • Clements, P.; Bass, L. and Kazman, R.: Software Architecture in Practice, 2. ed. Addison-Wesley, 2003.
  • Fowler, M.: Patterns of Enterprise Application Architecture. Addison-Wesley, 2003.
  • Goll, J. und Dausmann, M.:Architektur- und Entwurfsmuster der Softwaretechnik. Springer Vieweg, 2013.
  • Gorton, Ian: Essential Software Architecture, 2. ed. Springer, 2011.
  • Larman, Craig: Applying UML and Patterns : An Introduction to Object-Oriented Analysis and Design and Iterative Development, 3. ed. Prentice Hall, 2004.
  • Lilienthal, Carola: Sustainable software architecture: analyze and reduce technical debt. dpunkt.verlag, 2019.
  • Buschmann, Frank: A System of Patterns (POSA V.1). John Wiley & Sons. 1996
  • Schmidt, Douglas C.: Patterns for Concurrent and Networked Objects (POSA V.2). John Wiley & Sons, 2000.
  • Sommerville, Ian: Software Engineering, 9. Auflage. Pearson Studium, 2012.
  • Vogel, O.; Arnold, I.; Chughtai, A. and Kehrer, T.: Software Architecture: A Comprehensive Framework and Guide for Practitioners. Springer, 2011.
  • Vogel, O.; et. al: Software-Architektur: Grundlagen – Konzepte – Praxis, 2. Auflage. Spektrum, 2009.

The lecture will take the form of seminars with exercises and presentations.