Software Architektur - Konzepte und Anwendungen

Fakultät

Ingenieurwissenschaften und Informatik

Version

Version 9.0 vom 17.11.2019

Modulkennung

11B1820

Modulname (englisch)

Software Architecture: Concepts and pracitcal Implementations

Studiengänge mit diesem Modul
  • Informatik - Medieninformatik (B.Sc.)
  • Informatik - Technische Informatik (B.Sc.)
Niveaustufe

3

Kurzbeschreibung

Die Software-Architektur legt die wesentlichen Softwarebausteine (Komponenten) zur Strukturierung eines Softwaresystems fest und definiert Vorgaben zum erwarteten dynamischen Verhalten einer Software, unter Einhaltung definierter nicht-funktionaler Anforderungen. Studierende lernen typische Software-Architektur-Stile, -Muster und Prinzipien kennen, strukturieren die Software in Komponenten, definieren Interaktionsformen zwischen Komponenten und weisen die Tragfähigkeit der Entscheidungen nach.

Lehrinhalte

1. Software-Architektur im Überblick
2. Software-Architektur-Stile, -Muster und -Prinzipien
3. Komponenten und Schnittstellen
4. Kommunikation und Informationsaustausch
5. Cross-Cutting-Concerns (z.B. Transaktionalität, Persistenz)
6. Abhängigkeits- und Build-Management

Lernergebnisse / Kompetenzziele

Wissensverbreiterung
Studierende, die dieses Modul erfolgreich studiert haben, kennen ausgewählte Software-Architektur-Stile, -Muster und –Prinzipien und können diese für einen konkreten Architekturstil zur Organisation einer Anwendungssoftware unter Einhaltung definierter Anforderungen anwenden und die Tragfähigkeit der Entscheidungen durch praktische Umsetzung nachweisen.
Wissensvertiefung

Können - instrumentale Kompetenz
Studierende setzen anerkannte Verfahren und Methoden ein, um Software-Architekturen für einen definierten Stil zu entwerfen, dokumentieren und dessen Tragfähigkeit nachzuweisen.
Können - kommunikative Kompetenz
Studierende sind in der Lage eine Software-Architektur zu beschreiben und unterschiedliche Strukturierungs- und Interaktionsformen zu diskutieren.
Können - systemische Kompetenz
Die Studierenden können für einen Software-Architekturstil die Software-Architektur erstellen und deren Tragfähigkeit nachweisen. Sie können die Grenzen der Software-Architektur einschätzen und sind in der Lage sich eigenständig in weitere Architekturstile, -muster und -prinzipien einzuarbeiten.

Lehr-/Lernmethoden

Vorlesung mit Praxisbeispielen, Praktikum

Empfohlene Vorkenntnisse

Programmierung 1 (I), Programmierung 2 (I), Programmierung 3 (MI) bzw. Programmierung 3 (TI)

Modulpromotor

Roosmann, Rainer

Lehrende
  • Kleuker, Stephan
  • Roosmann, Rainer
  • Tapken, Heiko
  • Thiesing, Frank
Leistungspunkte

5

Lehr-/Lernkonzept
Workload Dozentengebunden
Std. WorkloadLehrtyp
30Vorlesungen
30Labore
Workload Dozentenungebunden
Std. WorkloadLehrtyp
60Veranstaltungsvor-/-nachbereitung
30Prüfungsvorbereitung
Literatur
  • Starke G. (2015): Effektive Softwarearchitekturen: Ein praktischer Leitfaden, Hanser-Verlag, 7. Auflage
  • Vogel O., et al (2008): Software-Architektur, Spektrum Verlag
  • Evans E. (2003): Domain Driven Design, Addison Wesley
  • Dunkel J. (2003): Software-Architektur für die Praxis, Springer Verlag
  • Inden M. (2016): Der Java-Profi, dpunkt.verlag
  • Weil D. (2015): Java EE 7, entwickler.press, 2. Auflage
  • Bien A. (2012): Real World Java EE Patterns, press.adam-bien.com
  • Tilkov S., et al. (2015): REST und HTTP, dpunkt.verlag
  • Spichale K. (2016): API-Design: Praxishandbuch für Java- und Webservice-Entwickler, dpunkt.verlag
  • Coward D. (2014): Java Web Socket Programming, Oracle Press
Prüfungsleistung
  • Klausur 2-stündig
  • Referat
  • Projektbericht, schriftlich
Unbenotete Prüfungsleistung

Experimentelle Arbeit

Dauer

1 Semester

Angebotsfrequenz

Wintersemester und Sommersemester

Lehrsprache

Deutsch