Software Engineering für spezielle Anwendungsgebiete:
Entwurf und Implementierung paralleler Programme

Aktuelles

Inhalt

In komplexen Systemen werden häufig eine Vielzahl von Prozessen gleichzeitig (bzw. quasi-gleichzeitig) ausgeführt. In dieser Vorlesung werden Methoden und Techniken zur Entwicklung von Softwaresystemen auf der Grundlage paralleler Programme besprochen.

Für die Spezifikation und den Entwurf paralleler Programme wird die auf endlichen Zustandsmaschinen beruhende Sprache FSP (Finite State Processes) von Magee und Kramer verwendet. Damit können typische Phänomene und Eigenschaften, die bei der Programmierung paraller Programme auftreten, wie z.B. Prozess-Synchronisation, Sicherheits- und Lebendigkeits-Eigenschaften und Deadlocks, erfasst und analysiert werden. Zur Analyse werden Methoden des Model-Checking eingesetzt.

Für die Implementierung paralleler Programme wird das Thread-Konzept von Java verwendet. Es werden methodische Richtlinien für die Überführung von Prozessmodellen in Java-Programme besprochen. Zur Modellierung der Implementierung paralleler Systeme wird die Unified Modeling Language UML verwendet.

Termine

  • Vorlesung: Do, 11:30-14 Uhr, Oettingenstr. 67, Raum BU101
  • Übungen:
    • Fr, 12-14 Uhr, Oettingenstr. 67, Raum BU101
  • Klausur: Donnerstag, 27. Juli 2017, 12:15 - 14:15, Raum B201, Uni-Hauptgebäude
  • Nachholklausur:

Personen

Materialien

Die folgenden Materialien unterliegen dem Copyright. Teilnehmern der Vorlesung ist die Verwendung für persönliche Studien gestattet. Alle anderen Rechte sind vorbehalten.

Vorlesung

In den Folien sind teilweise Lücken, die in der Vorlesung ergänzt werden.
Die Folien sollen ausgedruckt zur Vorlesung mitgebracht werden um Notizen und Ergänzungen eintragen zu können.

Übungen

Hörerkreis

  • Bachelor Informatik (Vertiefende Themen),
  • Master Informatikstudiengänge (Software Engineering für spezielle Anwendungsgebiete),
  • Diplomstudiengänge in Informatik,
  • Nebenfach Informatik zu Diplom-Mathematik oder Diplom-Physik

Benötigte Vorkenntnisse

sequentielles Java sowie Grundkenntnisse der Unified Modeling Language UML

Literatur

Jeff Magee, Jeff Kramer: Concurrency: State Models and Java Programs, Wiley & Sons; Auflage: 2nd ed. (21. April 2006).
Weitere Inhalte (z.B. Folien zum Buch) hier verfügbar:
http://www.doc.ic.ac.uk/~jnm/book/
Es kann bei der Ausführung der Applets auf obiger Seite zu Problemen wegen des neuen Sicherheitslevel von Java kommen. Um diese unter Windows zu beheben, öffnen Sie das "Java Control Panel" (Suchen Sie das Schlagwort "Java" in der Systemsteuerung). Im Tab "Sicherheit" müssen Sie dann eine Ausnahme auf der Ausnahmeliste hinzufügen. Klicken Sie hierzu auf "Siteliste bearbeiten" und dort auf "Hinzufügen". Geben Sie die URL http://www.doc.ic.ac.uk/ ein und Klicken "Ok". Im darauf folgenden Dialog bestätigen Sie, dass diese Ausnahme hinzugefügt werden soll mit "Fortfahren". Nach einem Neustart des Browsers sollte das Applet funktionieren. Mit Google Chrome treten allerdings weiterhin Probleme auf, wofür wir leider noch keine Lösung gefunden haben. Für Firefox und Internet Explorer sollte dieses Vorgehen allerdings Abhilfe schaffen.

Tool

LTSA - Labelled Transition System Analyser
http://www.doc.ic.ac.uk/ltsa/