Software Architectures
Dozent: Prof. Dr.-Ing. Dr.h.c. Manfred Nagl, Emeritus
Betreuender Assistent: Max Stachon, M.Sc.
Stellvertretender Assistent: Marc Schmidt, M.Sc.
Art der Veranstaltung: Kompaktvorlesung mit praktischen Übungen im folgenden Semester und Prüfung
Compact course, exercises follow in the summer semester, exam after summer
Slides in English, oral explanation in German and English
Zielsetzung/Aims
German: Software-Architekturen sind die essenziellen Strukturen innerhalb von Software-Entwicklungsprozessen. Ihre Qualität bestimmt die Güte des Prozesses und seines Gesamtergebnisses, dabei speziell dessen langfristige Eigenschaften wie Wiederverwendbarkeit, Wartbarkeit etc. Architekturkonzepte müssen insbesondere für die in der Praxis am häufigsten auftretenden Aufgaben Wartung, Integration, Erweiterung und Verteilung von Systemen anwendbar sein, auch wenn diese Systeme in älteren Programmiersprachen implementiert wurden. Eine genauere Betrachtung zeigt auch, dass es nicht nur eine Architektur eines Systems gibt, sondern mehrere, von einer abstrakten Form bis zu der konkreten Form, die den Bauplan des ausgelieferten Systems beschreibt, der von vielen Spezifika (Verteilung, Effizienz, Nebenläufigkeit etc.) geprägt ist.
English: Software Architectures are the essential artifacts within software development processes. Their quality determines the quality of the whole process and also the quality of the overall result and especially the long-term quality properties like reuse, maintainability etc. Architectural concepts, languages, and methods have to be applicable for the main tasks in industry, namely maintenance, integration, and distribution of software systems, even if these systems are implemented in older programming languages. Looking more carefully, we see that there is not only a single architecture but a series of architectures, from an abstract one to a concrete one, which describes the built plan of the shipped product containing various specifics, as distribution, efficiency, concurrency etc.
Termine
Vorlesung: Die Vorlesung wird vom 04.03.2024 - 13.03.2024 als Block stattfinden.
Übung: Die Übungen zur Blockvorlesung werden im SoSe24 im zweiwöchentlichen Rhythmus stattfinden.
Prüfung: Vorlesungsfreie Zeit des SoSe24
Themen
German: Schwerpunkt der Vorlesung ist die objektbasierte, aber auch die objektorientierte Architekturmodellierung. Allerdings wird ein integrierter Ansatz verfolgt, der auch die funktionale Abstraktion mit einschließt. Verteilung, Effizienztransformation, Nebenläufigkeit werden dabei mit betrachtet. Entwurfsmuster auf mittel- und grobgranularer Form werden präsentiert.
- Das Problem: Modellieren auf Entwurfsebene
- Ohne Vorkenntnisse: Erste Beispiele
- Die Notation: Eine Architekturbeschreibungssprache
- Teilarchitekturüberlegungen: Methoden und Muster
- Für die Implementierung: Übertragung in Programmiersprachen
- Verschiedene Sichten: Erweiterungen und Annotationen
- Das vollständige Bild: Einige Architekturbeispiele
- Industrielle Praxis: „Richtige“ Architekturen, Adaptabilität und Wiederverwendbarkeit
English: The focus of the lecture is object-based and object-oriented architecture modeling. An integrated approach is presented, which also includes functional abstraction. Efficiency transformations, distribution and concurrency are regarded as well. Patterns are presented on coarse and medium level.
- The Problem: Modeling on Design Level
- Without Knowledge: First Examples
- The Notation: An Architecture Design Language
- Subarchitectures: Methods and Patterns
- For Implementation: Translation to Programming Languages
- Further Views: Extensions and Annotations
- The Complete Picture: Some Typical Architectures
- Industrial Life: Building the “Right” Architecture, Adaptabilty, and Reuse
Literatur:
- M. Nagl: Methodisches Programmieren im Großen, 1990
- andere Lehrbücher zur Ergänzung werden in der Vorlesung bekannt gegeben
- weitere schriftliche Unterlagen
Studiengänge:
- Informatik (D)/Hauptstudium/Praktische Informatik
- Informatik (B.Sc.)/Wahlpflicht/Software und Kommunikation
- Informatik (M.Sc.)/Software und Kommunikation
- Mathematik (M.Sc.)/Anwendungsfach Informatik
- Software Systems Engineering (M.Sc.)/Practical Computer Science
- Software Systems Engineering (M.Sc.)/Areas of Specialization/Software Engineering
Join our mailing list for updates regarding courses and theses:
Teaching links:
- SE RWTH teaching website
- SE practicals, seminars website
- SE Master Theses / Masterarbeiten
- SE Bachelor Theses / Bachelorarbeiten