Kurzfassung:

Basierend auf den Herausforderungen der nebenläufigen Programmierung werden etablierte Entwurfsmuster für parallele und verteilte Systeme vorgestellt. Praktische Softwareentwicklungsaufgaben vertiefen die präsentierten Architekturentwürfe.

Lernziele:

Die Studierenden rekapitulieren typische Herausforderungen in der nebenläufigen Programmierung und lernen den Entwurf und die Implementierung bewährter Entwurfsmuster für parallele und verteilte Systeme in Theorie und Praxis.

Lehrinhalte:

Einführung und Motivation. Nebenläufigkeit als Herausforderung (Abstraktionen, kritischer Abschnitt, Verifikation mit Model Checking, Kanalkommunikation, verteilte Algorithmen mit Nachrichtenkommunikation, generative Kommunikation, Konsensprobleme, CAP-Theorem). Muster für parallele Programmierung (Parallelität finden, Algorithmenstrukturen, unterstützende Strukturen, Implementierungsmechanismen). Muster für verteilte Systeme (Fehlertoleranz, EAI, SOA, Cloud, Big Data, Microservices, Migration).

Weitere Voraussetzungen:

Sehr gute Grundkenntnisse in Softwaretechnik, insbesondere aus den BSc-Modulen Softwaretechnik und Softwareprojekt; Betriebssysteme und verteilte Systeme.