KursbeschreibungMit dem Anwachsen des Umfangs und der Komplexität von Software treten verstärkt Fragestellungen in den Vordergrund, die sich mit der Strukturierung, der Organisation und dem Aufbau von Software-Systemen beschäftigen. Von besonderem Interesse sind dabei die Kommunikation zwischen Systemteilen und die Konstruktion von Systemen aus Komponenten.
Die Architektur eines Software-Systems beschreibt die verschiedenen Strukturen des Systems und legt das Zusammenwirken der Systemkomponenten fest. Der Kurs erläutert zunächst allgemein, welche Strukturen in diesem Zusammenhang von Interesse sind und wie sie beschrieben werden können. Insbesondere unterscheidet er zwischen den Strukturen, die dem dynamischen Verhalten von Systemen zugrunde liegen, und den statischen Strukturen der Software des Systems. Er gibt eine Einführung in den Entwurf und die Bewertung von Architekturen und in wichtige Architekturmuster. Zur Vertiefung werden Programmgerüste und Komponentenarchitekturen behandelt. Darüber hinaus geht der Kurs auf relevante informelle und formale Beschreibungstechniken ein.
Der Kurstext ist in Englisch geschrieben.
Dieser Kurs bildet zusammen mit dem Kurs 01852 "Fortgeschrittene Konzepte funktionaler Programmierung" das Modul "Vertiefung Software Engineering und Programmiersprachen".