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

Englische Sprache
Kompakte Schrift

Farbschema

Modulübersicht

Softwareengineering und Verteilte Systeme

MINB5105

Prof. Dr. Thomas Fuchß

/

5. Semester

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

keine

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

MINB5114.a

Vorlesung

Prof. Dr. Thomas Fuchß

deutsch

2/2

60 Stunden gesamt, davon 30 Stunden Kontaktstudium.

Modulprüfung

Aufbauend auf den Erfahrungen, die die Studierenden während ihrer Praxistätigkeit gesammelt haben, werden im Rahmen der Lehrveranstaltung "Softwareengineering" Techniken und Methoden zur strukturierten Softwareentwicklung im Großen erarbeitet. Neben der Wiederholung und Verfestigung bereits gelernter elementarer Begriffe wie: Objekt, Klasse, Assoziation, Methode, Vererbung oder Polymorphie, liegt der Schwerpunkt im Bereich des Softwareentwicklungsprozesses. Die Studierenden erkennen dabei, gestützt auf ihre Erfahrungen aus der Praxistätigkeit, welche Herausforderung eine moderne, agile Softwareentwicklung an einen strukturierten und organisierten Entwicklungsprozess stellt. Aufbauend auf etablierten Prozessmodellen, wie dem Unified Software Development Process (Jacobson, Booch, Rumbaugh), wird in Verbindung mit Scrum und UML als Beschreibungssprache den Studierenden ein Framework an die Hand gegeben, um diese Herausforderung zu meistern. Sie erlernen dabei selbstständig in einem agilen Umfeld zu agieren und Entwicklungsentscheidungen zu treffen und mithilfe der UML zu dokumentieren.


Im zugehörigen Labor, in dessen Verlauf die erste Iteration einer Softwareentwicklung an einem konkreten Beispielprojekt durchgeführt wird - beginnend mit dem Erfassen der Anforderung über die Erstellung eines Analyse- und Designmodells bis zur Implementierung in Java - erfahren die Studierenden nicht nur was sich hinter Begriffen wie use-case-driven, architekturorientiert, iterativ, inkrementell, komponentenbasiert verbirgt, vielmehr erleben sie es und werden damit befähigt in einem agilen Entwicklungsteam mitzuarbeiten.

  • Slides and Papers
  • Foliensammlung und Videos
  • 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.

Seminaristischer Unterricht; Übungsblätter

Lehrveranstaltung Softwareengineering Labor

MINB5125

Labor

Prof. Dr. Thomas Fuchß

deutsch

2/2

60 Stunden gesamt, davon 30 Stunden Kontaktstudium.

Laborarbeit 1 Semester (nicht benotet)

Im Rahmen des Labors wird ein kompletter iterativer Software-Entwicklungsschritt im Team durchgeführt. Beginnend mit dem Erfassen der Anforderung über die Erstellung eines Analyse- und Designmodells bis zur Implementierung in Java, erfahren die Studierenden nicht nur, was sich hinter Begriffen wie use-case-driven, architekturorientiert, iterativ, inkrementell, komponentenbasiert verbirgt, vielmehr erleben sie es an einem konkreten Beispielprojekt. Sie werden damit befähigt in einem agilen Entwicklungsteam mitzuarbeiten, selbstständig Entwurfsentscheidungen zu treffen und diese gemäß den vorhandenen Vorgaben umzusetzen.

  • Foliensammlung und Videos
  • Aufgabenbeschreibungen und Vorlagen


  • 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.

Betreutes Labor, Gruppenarbeit

Lehrveranstaltung Verteilte Systeme 2

MINB5114.b

Vorlesung

Prof. Dr. Christian Zirpins

deutsch

2/2

60 Stunden gesamt, davon 30 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.

Lehrveranstaltung Verteilte Systeme 2 Labor

MINB5135

Labor

Prof. Dr. Christian Zirpins

deutsch

1/1

30 Stunden gesamt, davon 15 Stunden Kontaktstudium.

Laborarbeit 1 Semester (nicht benotet)

Das Labor vermittelt praktische Einblicke in die Funktionsweise und Konstruktion verteilter Informationssysteme. Dabei werden aktuelle Paradigmen aufgegriffen und fundamentale Prinzipien im Kontext exemplarischer Realisierungen untersucht. Die Aufgabenstellungen orientieren sich an den Inhalten der Vorlesung, greift aber auch aktuelle Themenstellungen industrieller Forschung und Entwicklung auf. Die praktische Umsetzung erfolgt unter Verwendung moderner industrierelevanter Plattformen und Frameworks.

  • 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.

Es werden Grundkenntnisse in den Bereichen Programmierung, Betriebssysteme und Datenbanken vorausgesetzt. Die Veranstaltung beinhaltet 50 % betreute Präsenszeit (1 SWS) im LKIT Labor sowie 50% selbständige Arbeit. Der Leistungsnachweis erfolgt durch Präsentation und Verteidigung der Lösung.