Software Architectures
Dozent: Prof. Dr.-Ing. Dr.h.c. Manfred Nagl, EmeritusBetreuender Assistent: Dipl.-Inform. Deni Raco
Art der Veranstaltung:
Kompaktvorlesung mit praktischen Übungen im folgenden Semester und Prüfung
Compact course, exercises follow in the summer semester, exam after summer
Transparencies in English, oral explanation in German and English
Umfang: V3Ü2; 6 ECTS
Lehrveranstaltungsnummer: 12.28446
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 am Ende des WS18/19 als Block stattfinden. Vorraussichtlich im März.
Do | (21.03.2017), | 09:00h bis 17:00h, | 5052 (2356|052) | |
Fr | (22.03.2017), | 09:00h bis 17:00h, | 5052 (2356|052) | |
Mo | (25.03.2017), | 09:00h bis 17:00h, | 5052 (2356|052) | |
Di | (26.03.2017), | 09:00h bis 17:00h, | 5052 (2356|052) | |
Mi | (27.03.2017), | 09:00h bis 17:00h, | AH I | |
Do | (28.03.2017), | 09:00h bis 17:00h, | 5052 (2356|052) | |
Fr | (29.03.2017), | 09:00h bis 17:00h, | 5052 (2356|052) |
Übung:
Die Übungen zur Blockvorlesung werden im SS19 im ca. zweiwöchentlichen Rhythmus stattfinden.Prüfung:
Semesterferien von SS19.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
- 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