Modul Software-Architekturen, Informatik (Master) (SPO 7)

Englische Sprache
Kompakte Schrift

Farbschema

Modulübersicht

Software-Architekturen

INFM210SE

Prof. Dr. Thomas Fuchß

/

Alle Semester

keine

keine

Nach erfolgreichem Abschluss des Moduls sind die Studierenden in der Lage, die Architektur großer Software-Systeme selbstständig zu entwerfen, zu gestalten und kritisch zu bewerten. Sie können Software in Komponenten und Konnektoren zerlegen, geeignete Frameworks auswählen, deren Einsatz bewerten und Funktionalitäten sowie Abläufe logisch organisieren. Dabei planen und gestalten sie auch parallele und nebenläufige Abläufe und integrieren diese in Architekturen für verschiedene Anwendungsfelder. Darüber hinaus haben die Studierenden ihre technischen, sozialen und persönlichen Kompetenzen sowie ihre Kommunikationsfähigkeit und ihr Selbstmanagement gezielt weiterentwickelt und gelernt, diese Fähigkeiten im Kontext großer Softwareprojekte effektiv einzusetzen.

Einzelprüfungen
Lehrveranstaltung Parallele Programmierung Labor

INFM212SE

Labor

Dipl.-Ing. Christian Meder

deutsch

3/2

90 Stunden gesamt, davon 30 Stunden Kontaktstudium.

Übung 1 Semester (nicht benotet)

Das "Parallele Programmierung Labor" vermittelt praxisorientierte Kenntnisse zur nebenläufigen Programmierung und deren Anwendung in verschiedenen modernen Technologien und Systemen.

Im ersten Teil der Veranstaltung werden die Grundlagen der nebenläufigen Programmierung wiederholt, vertieft und durch praktische Übungen mit der Programmiersprache Java und dem Java Development Kit (JDK) angewendet. Dabei erlernen die Studierenden, wie sie nebenläufige Prozesse effizient gestalten und typische Herausforderungen wie Race Conditions oder Deadlocks bewältigen können.

Im zweiten Teil der Veranstaltung wird das Wissen durch kompakte Einführungen in aktuelle Anwendungsfelder der nebenläufigen Programmierung erweitert. Dabei werden verschiedene Technologien und Plattformen beleuchtet, darunter:

  • Nebenläufigkeit in Betriebssystemen, z. B. unter Linux
  • Nebenläufigkeit auf mobilen Plattformen, z. B. Android
  • Map/Reduce und das Hadoop-Ökosystem
  • Nebenläufigkeit in Webanwendungen
  • Nebenläufigkeit in modernen Programmiersprachen wie Go und Rust
  • Reactive Extensions (Rx) und deren Einsatzgebiete
  • Cloud-, Cluster- und verteilte Systeme
  • Microservice-Architekturen
  • Deep Learning und Nebenläufigkeit

Durch die Kombination aus theoretischer Einführung und praktischer Anwendung werden die Studierenden befähigt, nebenläufige Programmierung in unterschiedlichen Kontexten zu verstehen, anzuwenden und weiterzuentwickeln.

  • Brian Goetz, "Java Concurrency in Practice"
  • Online-Tutorials

Die Literatur des zweiten Teils wird in jedem Semester neu zusammengestellt.

Die erfolgreiche Teilnahme am Labor wird durch die eigenständige Bearbeitung der Übungen dokumentiert und begutachtet. Im zweiten Teil des Labors werden diverse aktuelle Quellen und Präsentationen vorgestellt und diskutiert.

Lehrveranstaltung Software-Architekturen

INFM211SE

Vorlesung

Prof. Dr. Thomas Fuchß

deutsch

2/2

60 Stunden gesamt, davon 30 Stunden Kontaktstudium.

Klausur/mündl. Prüfung 60/20 Min. (benotet)

Die Lehrveranstaltung "Software-Architekturen" vermittelt vertiefte Kenntnisse und Fähigkeiten zur Entwicklung und Analyse moderner Software-Architekturen.

Im ersten Teil der Vorlesung werden relevante Prozessmodelle wiederholt und darauf aufbauend Ansätze für eine agile Architekturentwicklung erarbeitet. Studierende lernen verschiedene View-Modelle kennen, vergleichen diese und vertiefen ihre Kenntnisse in Modellierungstechniken für Komponenten und Konnektoren. Bereits erlernte Entwurfsmethoden werden erweitert, insbesondere im Hinblick auf die Nutzung von Szenarien zur Beschreibung und Bewertung nicht-funktionaler Anforderungen.

Im zweiten Teil der Vorlesung stehen elementare Architekturmuster im Fokus, darunter Schichten-Architektur, hexagonale Architektur, Onion-Architektur, Blackboard, Pipes-and-Filters und Event-Driven Architecture. Studierende erlernen die Strukturen, Eigenschaften und Anwendungsmöglichkeiten dieser Muster und verstehen ihre Rolle in typischen Middleware-Konzepten. Die Vorlesung zeigt, wie solche Architekturvorlagen Ansatzpunkte für die Organisation flexibler und evolutionärer Systeme bieten.

Der dritte Teil der Vorlesung widmet sich der Architektur auf Modulebene. Anhand praxisnaher Szenarien und Beispiele wird der Einsatz von Patterns für den Business Layer thematisiert und im jeweiligen Kontext analysiert. Ziel ist es, den Studierenden ein fundiertes Verständnis für die Gestaltung und Bewertung modularer Software-Architekturen zu vermitteln.

  • 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.


Seminaristischer Unterricht, Übungsblätter und Präsentationen

Lehrveranstaltung Software-Architekturen Labor

INFM213SE

Labor

Prof. Dr. Carsten Sinz

deutsch

2/2

60 Stunden gesamt, davon 30 Stunden Kontaktstudium.

Übung 1 Semester (nicht benotet)

In diesem Labor werden die Methoden und Kenntnisse der Vorlesung Software-Architekturen praktisch erprobt und umgesetzt. Dabei werden anhand eines größeren Software-Projekts der gesamte Entwicklungsprozess vom Entwurf über Realisierung bis hin zu Test und Qualitätssicherung im Team bearbeitet. Dabei sollen Entwurfstechniken und Architekturmuster der Vorlesung eingesetzt sowie Software-Entwicklungs-Frameworks bewertet und ausgewählt werden. Die Implementierung in einer vom Team gewählten Programmiersprache und deren Qualitätssicherung ist ebenfalls Teil des Projekts und erlaubt auch eine kritische Bewertung der eingesetzten Techniken. Schließlich soll durch die Erstellung eines Entwickler- und Benutzer-"Handbuchs" die Dokumentation größerer Projekte erlernt werden.