Nummer |
swa
|
ECTS |
3.0 |
Anspruchsniveau |
intermediate advanced |
Inhaltsübersicht |
In 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)
|
Lernziele |
Die 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 Vorkenntnisse |
Requirements Engineering (req) Design Patterns (depa)
|
Leistungsbewertung |
Erfahrungsnote und MSP schriftlich |