Skip to main content

Modulbeschreibung - Software Architecture

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
    Diese Seite teilen: