Software Architectures

Dozent: Prof. Dr.-Ing. Dr.h.c. Manfred Nagl, Emeritus
Betreuender 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: 17ws-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 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:

Blockkurs vor dem Beginn des Sommersemesters 2018. Termine werden noch bekanntgegeben / Dates will be announced.

Übung:

Termine werden noch bekanntgegeben / Dates will be announced.

Prüfung:

TBA

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: Focus of the lecture is the 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