Modul Softwareengineering und Verteilte Systeme 2, Medieninformatik (Bachelor) (SPO 2)

Englische Sprache
Kompakte Schrift

Farbschema

Modulübersicht

Softwareengineering und Verteilte Systeme 2

MKIB510

Prof. Dr. Thomas Fuchß

/

5. Semester

Praxistätigkeit, Technologien des Internets, Mensch-Maschine-Kommunikation 1, Informatik 2, Datenbanken und Kommunikationsnetze 1

Vorstudium

Die Studierenden erlernen das produktive und selbständige Mitarbeiten in großen Software-Projekten. Dies umfasst sowohl das Zerlegen anfallender Aufgaben als auch die Bestimmung und Bewertung geeigneter Architekturen. Dabei werden sie befähigt, die nötigen Schritte im Kontext einer gestellten Aufgabe selbständig zu erfassen, zu strukturieren und mittels des Einsatzes geeigneter Werkzeuge und Methoden formal zu beschreiben.

In diesem Kontext erlangen die Studierenden auch die Fähigkeit, Ziele und Probleme verteilter Software-Systeme zu erkennen und einzuordnen. Sie können die allgemeinen Konzepte für Architekturen, Prozesse, Kommunikation, Benennung, Koordination, Replikation, Fehlertoleranz und Sicherheit erklären und sie zur Konstruktion verteilter Software Dienste und Anwendungen anwenden.

Klausur 120 Min. (benotet)
Lehrveranstaltung Softwareengineering

MKIB512.b

Vorlesung

Prof. Dr. Thomas Fuchß

deutsch

2/2

60 Stunden gesamt, davon 30 Stunden Kontaktstudium.

Modulprüfung

In the first part of the lecture central modeling techniques for the design of components are developed. In the second part of the lecture well known architectural patterns and concepts are examined. Students learn to identify their structures, properties, and characteristics, to understand and recognize these structures as patterns. The third part of the lecture focuses on module-level architecture. Using various scenarios and examples, the use of different patterns is demonstrated and evaluated in the respective context.

  • Slides and Papers
  • Avgeriou, P; et. al (editors): Relating Software Requirements and Architectures. Springer, 2011.
  • Clements, P.; Bass, L. and Kazman, R.: Software Architecture in Practice, 3. ed. Addison-Wesley, 2013.
  • Clements, P.; Bachmann, F. and Bass, L.: Documenting Software Architectures: Views and Beyond 2. ed. Addison-Wesley, 2011.
  • Fowler, M.: Patterns of Enterprise Application Architecture. Addison-Wesley, 2003.
  • Goll, J. und Dausmann, M.:Architektur- und Entwurfsmuster der Softwaretechnik. Springer Vieweg, 2013.
  • Gorton, Ian: Essential Software Architecture, 2. ed. Springer, 2011.
  • Larman, Craig: Applying UML and Patterns : An Introduction to Object-Oriented Analysis and Design and Iterative Development, 3. ed. Prentice Hall, 2004.
  • Lilienthal, Carola: Sustainable software architecture: analyze and reduce technical debt. dpunkt.verlag, 2019.
  • Buschmann, Frank: A System of Patterns (POSA V.1). John Wiley & Sons. 1996
  • Schmidt, Douglas C.: Patterns for Concurrent and Networked Objects (POSA V.2). John Wiley & Sons, 2000.
  • Sommerville, Ian: Software Engineering, 10. Auflage. Pearson Studium, 2018.
  • Vogel, O.; Arnold, I.; Chughtai, A. and Kehrer, T.: Software Architecture: A Comprehensive Framework and Guide for Practitioners. Springer, 2011.
  • Vogel, O.; et. al: Software-Architektur: Grundlagen – Konzepte – Praxis, 2. Auflage. Spektrum, 2009.


The lecture will take the form of seminars with exercises.

Lehrveranstaltung Softwareengineering Labor

MKIB511

Labor

Prof. Dr. Thomas Fuchß

deutsch

3/2

90 Stunden gesamt, davon 30 Stunden Kontaktstudium.

Übung 1 Semester (nicht benotet)

Accompanying the software engineering lecture this course project covers a complete step in a modern software development process. Beginning with requirement engineering and analysis, central use cases are designed and finally implemented in Java. By this students learn more than facts, they get experiences and they understand the meaning of terms like architecture-oriented, iterative, incremental, or component-based.

Slides, videos, textbooks, and other literature:

  • Arlow, J.; Neustadt, I.: UML 2 and the Unified Process: Practical Object-Oriented Analysis and Design, 2. ed. - Addison-Wesley Professional, 2005.
  • Shimp, D. and Rawsthorne, D. Exploring Scrum: The Fundamentals – CreateSpace, 2011.
  • Jacobson, I.; Booch, G. and Rumbaugh, J.: The unified software development process - Reading, Mass.: Addison-Wesley, 1999.
  • Kim, G.; Humble, J.; Debois, P. und Willis, J.: Das DevOps-Handbuch: Teams, Tools und Infrastrukturen erfolgreich umgestalten - Heidelberg: O'Reilly; Heidelberg: dpunkt.verlag, 2017.
  • Larman, C.: Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development, 3. ed. - Upper Saddle River, NJ : Prentice Hall, 2004.
  • Larman, C. und Vodde, B.: Large-Scale Scrum: Scrum erfolgreich skalieren mit LeSS - Heidelberg: dpunkt.verlag, 2017.
  • Oestereich, B.: Developing Software with UML: Object-Oriented Analysis and Design in Practice 2. ed. - Addison-Wesley Professional, 2003.
  • Oestereich, B.: Analyse und Design mit UML 2.1: Objektorientierte Softwareentwicklung, 8. ed. - München; Wien : Oldenbourg, 2006
  • OMG Object Management Group. Unified Modeling Language (OMG UML) Version 2.5.1 – OMG, 2017.
  • Seidl, M.; Scholz, M. and Huemer, C.: UML @ Classroom: An Introduction to Object-Oriented Modeling, Springer, 2015.
  • Schwaber, K. and Sutherland, J. The Scrum Guide: The Definitive Guide to Scrum – Scrumguides.org, 2020.
  • Sommerville, I.: Software Engineering, 10. Auflage - Pearson, 2018.
  • Wintersteiger, A.: Scrum: Schnelleinstieg, 4. Auflage - Frankfurt am Main: entwickler.press, 2018.

Attended teamwork

Lehrveranstaltung Verteilte Systeme 2

MKIB512.a

Vorlesung

Prof. Dr. Christian Zirpins

deutsch

3/3

90 Stunden gesamt, davon 45 Stunden Kontaktstudium.

Modulprüfung

Die Vorlesung vermittelt sowohl grundlegende als auch erweiterte Prinzipien verteilter Systeme und veranschaulichen diese in praktischer Form anhand konkreter Paradigmen und Technologien. Das Spektrum behandelter Prinzipien umfasst grundlegende Aspekte der Zielsetzungen und Klassen verteilter Systeme sowie deren Architekturen, Prozesse, Kommunikation und Namenssysteme. Erweiterte Prinzipien beinhalten Koordination, Konsistenz und Replikation, Fehlertoleranz sowie Sicherheit. Die behandelten Prinzipien werden anhand verschiedener Paradigmen exemplarisch vertieft. Dabei werden beispielhafte Umsetzungen einzelner Prinzipien vorgestellt. Zudem erfolgt eine Einführung in die Entwicklung entsprechender Systeme anhand konkreter Technologien.

Nach Abschluss der Vorlesung werden die Studierenden ein umfassendes Verständnis der Prinzipien verteilter Systeme erlangen, die von ihren grundlegenden Zielen und Architekturen bis zu fortgeschrittenen Konzepten wie Koordination, Konsistenz, Replikation, Fehlertoleranz und Sicherheit reichen. Sie erhalten Einblicke in die praktische Anwendung dieser Prinzipien durch die Untersuchung spezifischer Paradigmen und Technologien und verbessern so ihre Fähigkeit, verteilte Systeme zu analysieren und zu entwerfen. Darüber hinaus wird die Einführung in die Entwicklung dieser Systeme unter Verwendung konkreter Softwaretechnologien die Studierenden mit den praktischen Fähigkeiten ausstatten, die für die Implementierung robuster, effizienter und sicherer verteilter Systeme in verschiedenen Computerumgebungen erforderlich sind.

  • Andrew S. Tannenbaum, Marten van Steen, "Verteilte Systeme, Prinzipien und Paradigmen", 2. aktualisierte Auflage, Pearson Studium, 2008, ISBN 978-3-8273-7293-2
  • George Coulouris, Jean Dollimore, Tim Kindberg, Gordon Blair, "Distributed Systems, Concepts and Design", Fifth Edition, Addison-Wesley, 2012, ISBN 978-0-13-214301-1
  • Weitere Literatur wird in der Vorlesung bekanntgegeben.

Eigenständige Arbeitsanteile betreffen Vor- und Nacharbeit der Vorlesungsinhalte, Laborarbeit und Klausurvorbereitung.