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