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
- Software-Architektur verteilter Anwendungen im Überblick
- Software-Architektur-Stile, -Muster und –Prinzipien
- Erfassen, analysieren und dokumentieren architekturrelevanter Anforderungen
- Entwerfen, dokumentieren und bewerten von Software-Architekturen
- Strukturierung einer verteilten Anwendung und Schnittstellen-Design
- Integration und dynamisches Verhalten unter Berücksichtigung definierter Qualitätsmerkmale
- Cross-Cutting-Concerns in verteilten Anwendung (z.B. in Bezug auf Transaktionalität, Persistenz, Security)
- Verteilung / Deployment von Komponenten
- 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. Workload - Lehrtyp - 15 - Vorlesungen - 15 - betreute Kleingruppen - 15 - Seminare - Workload Dozentenungebunden - Std. Workload - Lehrtyp - 75 - Kleingruppen - 15 - Literaturstudium - 15 - Veranstaltungsvor-/-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