NummerswaECTS3.0Anspruchsniveauintermediate
advancedInhaltsübersichtIn diesem Modul wird Software-Architektur als Entwurfsdisziplin vorgestellt, die durch Strukturierung von Software-Systemen anforderungsspezifische Qualitätseigenschaften erreichen und sichern soll. Es werden verschiedene Sichten vorgestellt, die wie Projektionen jeweils einzelne Aspekte von Systemen sichtbar machen.
Grundlegende Entwurfs-Entscheidungen werden innerhalb solcher Sichten dargestellt und anhand von Beispielen in Varianten diskutiert. So sollen Ursache-Wirkungs-Beziehungen zwischen Entwurfs-Entscheidungen und Qualitätsmerkmalen von Software hergestellt werden. Dabei werden die Auswirkungen solcher Entscheidungen anhand von Übungsaufgaben einschliesslich Programmierung in Java erfahrbar gemacht.
Themen:
- Beschreibung von Qualitätsanforderungen (z.B. mit Qualitätsszenarien)
- Modularer Entwurf, System-Evolution und System-Varianten (z.B. Gliederung in .jar-Files, Entwicklung als separate Projekte in der IDE)
- Responsibility-Driven Design (z.B. Aufteilung der Verantwortung im System auf mehrere Module)
- Grundlegende Architekturmuster
- Entwurf von Schnittstellen und Frameworks (z.B. zielgerichteter Einsatz von Design Patterns, Nutzung des Typsystems und Konzepte der objektorientierten Programmierung)
- System-Konfiguration (z.B. mit Eclipse Plugin Registry)
- Nebenläufigkeit und Event Handling als Alternativen (z.B. Threads versus Event Queues)
- Umgang mit Ausnahmen und Fehlern (z.B. Sicherheitsfassaden)
LernzieleDie Studierenden
- kennen wichtige Architektur-Sichten auf die Struktur von Software-Systemen
- können solche Sichten für vorhandene oder geplante Systeme darstellen und gefällte bzw. zu fällende Entwurfs-Entscheidungen darin aufzeigen
- erkennen Vor- und Nachteile gegebener Software-Strukturen sowie einzelner Entwurfs-Entscheidungen
- können Entwurfs-Entscheidungen begründet fällen und daraus eine System-Architektur entwickeln
- bewerten Software-Strukturen anhand konkreter Anforderungen und schlagen ggf. Verbesserungen vor.
Empfohlene VorkenntnisseRequirements Engineering (req)
Design Patterns (depa)
LeistungsbewertungErfahrungsnote