Software Architektur verteilter Anwendungen

Fakultät

Ingenieurwissenschaften und Informatik

Version

Version 7.0 vom 04.09.2019

Modulkennung

11M0633

Modulname (englisch)

Software-Architecture of Distributed Applications

Studiengänge mit diesem Modul

Informatik - Verteilte und Mobile Anwendungen (M.Sc.)

Niveaustufe

4

Kurzbeschreibung

Die Software-Architektur beschreibt die wesentlichen Softwarebausteine (Komponenten) einer Anwendung, die Beziehungen dieser Komponenten zueinander und zur Umgebung, sowie das erwartete Laufzeitverhalten unter Einhaltung definierter Qualitätsmerkmale. In verteilten Anwendungen stellen die Komposition einer Anwendung aus verteilten Komponenten, sowie deren prozessübergreifende Kommunikation eine Herausforderung dar. Studierende lernen Ansätze und Methoden zur Definition und Bewertung von Software-Architekturen verteilter Anwendungen kennen.

Lehrinhalte
  1. Software-Architektur verteilter Anwendungen im Überblick
  2. Software-Architektur-Stile, -Muster und –Prinzipien
  3. Erfassen, analysieren und dokumentieren architekturrelevanter Anforderungen
  4. Entwerfen, dokumentieren und bewerten von Software-Architekturen
  5. Strukturierung einer verteilten Anwendung und Schnittstellen-Design
  6. Integration und dynamisches Verhalten unter Berücksichtigung definierter Qualitätsmerkmale
  7. Cross-Cutting-Concerns in verteilten Anwendung (z.B. in Bezug auf Transaktionalität, Persistenz, Security)
  8. Verteilung / Deployment von Komponenten
  9. Referenzarchitekturen
Lernergebnisse / Kompetenzziele

Wissensverbreiterung
Die Studierenden, die dieses Modul erfolgreich studiert haben, können die Software Architekturen verteilter Anwendungen miteinander vergleichen und alternative Konzepte einschätzen und vergleichen.
Wissensvertiefung
Studierende, die dieses Modul erfolgreich studiert haben, verfügen über detailliertes Wissen und Verständnis eines methodischen Ansatzes, sowie verwendbarer Technologien zur Realisierung verteilter Anwendungen, die den aktuellen Erkenntnis-/Forschungsstand widerspiegeln. Sie können sich selbstständig das Wissen aneignen, um auf dem aktuellen Stand der Entwicklung zu bleiben und können aus einem Portfolio von Möglichkeiten die geeignete Architektur für eine konkrete verteilte Anwendung auswählen sowie diese Entscheidung vertreten und verteidigen.
Können - instrumentale Kompetenz
Die Studierenden, die dieses Modul erfolgreich studiert haben, verfügen über vertieftes Wissen und Fertigkeiten hinsichtlich einer großen Bandbreite architektonischer Muster und Methoden, die sie einsetzen, um verteilte Anwendungen gewinnbringend zu entwickeln und bewerten zu können.
Können - kommunikative Kompetenz
Die Studierenden, die dieses Modul erfolgreich studiert haben, können komplexe Probleme in verteilten Anwendungen identifizieren und Software-Architekturen kritisch analysieren. Sie kommunizieren mit Peers, erfahreneren Kollegen und Spezialisten auf professionellem Niveau, sowohl in der Rolle des Chef-Software-Architekten als auch in der Rolle des Anwenders, des Mitglieds im Entwicklungsteam oder des Projektleiters. Sie verfügen weiterhin über die Fähigkeit, architektonische Entscheidungen gegenüber Experten und Entscheidern insbesondere grafisch zu präsentieren mit Hilfe der einschlägigen Werkzeuge und Sprachen wie z.B. UML.
Können - systemische Kompetenz
Die Studierenden, die dieses Modul erfolgreich studiert haben, wenden eine Reihe von Methoden und Techniken an, um Standardaufgaben und fortgeschrittene Aufgaben zu bearbeiten. Sie sind in der Lage, tragfähige Entscheidungen hinsichtlich der Software-Architektur verteilter Anwendungen zu treffen, diese zu begründen, die Umsetzung zu begleiten, die Entscheidungen zu evaluieren und die Erkenntnisse in zukunftssichere Architekturen umzusetzen.

Lehr-/Lernmethoden

Seminar

Empfohlene Vorkenntnisse

Software-Architektur, Objektorientierte Analyse und Design, Software-Engineering

Modulpromotor

Roosmann, Rainer

Lehrende
  • Thiesing, Frank
  • Roosmann, Rainer
  • Eikerling, Heinz-Josef
Leistungspunkte

5

Lehr-/Lernkonzept
Workload Dozentengebunden
Std. WorkloadLehrtyp
15Vorlesungen
15betreute Kleingruppen
15Seminare
Workload Dozentenungebunden
Std. WorkloadLehrtyp
75Kleingruppen
15Literaturstudium
15Veranstaltungsvor-/-nachbereitung
Literatur
  • Starke G. (2015): Effektive Softwarearchitekturen: Ein praktischer Leitfaden, Hanser-Verlag, 7. Auflage
  • Vogel O., et al (2008): Software-Architektur, Spektrum Verlag
  • Lillienthal C. (2016): Langlebige Software-Architekturen, dpunkt.verlag
  • Spichale K. (2016): API-Design: Praxishandbuch für Java- und Webservice-Entwickler, dpunkt.verlag
  • Evans E. (2003): Domain Driven Design, Addison Wesley
  • Daigneau R. (2012): Service Design Patterns, Addison Wesley
  • Groll J. (2014): Architektur- und Entwurfsmuster der Softwaretechnik, Springer Verlag
  • Tilkov S., et al. (2015): REST und HTTP, dpunkt.verlag
  • Coward D. (2014): Java Web Socket Programming, Oracle Press
  • Newman S. (2015): Microservices, mitp-Verlag
  • Wolff E. (2015): Microservices: Grundlagen flexibler Architekturen, dpunkt.verlag
  • Rohr M. (2015): Sicherheit von Web-Anwendungen in der Praxis, Springer Verlag
  • Schmidt D.C. (2002): Pattern-orientierte Software-Architektur: Muster für nebenläufige und vernetzte Objekte, 1st ed., dpunkt.verlag
  • Dustdar S., Gall H., Hauswirth M. (2003): Software-Architekturen für verteilte Systeme: Prinzipien, Bausteine und Standardarchitekturen für moderne Software, Springer Verlag
  • Buschmann F., Henney K., Schmidt D.C. (2007): A pattern language for distributed computing, Wiley series in software design patterns, / Frank Buschmann … ; Vol. 4, Wiley, Chichester.
Prüfungsleistung
  • Referat
  • Projektbericht, schriftlich
  • Hausarbeit
Bemerkung zur Prüfungsform

Referat und schriftliche Ausarbeitungoder Hausarbeit

Dauer

1 Semester

Angebotsfrequenz

Nur Wintersemester

Lehrsprache

Deutsch