This page in EN

Veranstaltung

Formale Systeme II - Anwendung [SS212400093]

Typ
Vorlesung (V)
Online
Semester
SS 2021
SWS
3
Sprache
Deutsch
Termine
0
Links
ILIAS

Dozent/en

Einrichtung

  • KASTEL Beckert

Bestandteil von

Anmerkung

Nachweis:

Die Erfolgskontrolle wird in der Modulbschreibung erläutert.

Lerninhalt:

Methoden für die formale Spezifikation und Verifikation - zumeist auf der Basis von Logik und Deduktion - haben einen hohen Entwicklungsstand erreicht. Es ist zu erwarten, dass sie zukünftig traditionelle Softwareentwicklungsmethoden ergänzen und teilweise ersetzen werden.

Nahezu sämtliche formale Spezifikations- und Verifikationsverfahren haben zwar die gleichen theoretisch-logischen Grundlagen, wie man sie etwa in der Vorlesung "Formale Systeme" kennenlernt. Zum erfolgreichen praktischen Einsatz müssen die Verfahren aber auf die jeweiligen Anwendungen und deren charakteristischen Eigenschaften abgestimmt sein. An die Anwendung angepasst sein müssen dabei sowohl die zur Spezifikation verwendeten Sprachen als auch die zur Verifikation verwendeten Kalküle.

Auch stellt sich bei der praktischen Anwendung die Frage nach der Skalierbarkeit, Effizienz und Benutzbarkeit (Usability) der Verfahren und Werkzeuge.

Die Vorlesung ist anhand verschiedener Anwendungsszenarien mit unterschiedligen Eigenschaften und Anforderungen an formale Verifikationsmethoden organisiert. In ca. fünf Einheiten wird eine Auswahl wichtiger Szenarien, typische Spezifikations- und Verifikationsmethoden und Werkzeuge vorgestellt. Dazu können bspw. gehören:

  • Verifikation funktionaler Eigenschaften imperativer und objekt-orientierter Programme (KeY-System)
  • Nachweis temporallogische Eigenschaften endlicher Strukturen (Model Checker SPIN)
  • Deduktive Verifikation nebenläufiger Programme (Isabelle/HOL)
  • Hybride Systeme (HieroMate)
  • Verifikation von Echtzeiteigenschaften (UPPAAL)
  • Verifikation der Eigenschaften von Datenstrukturen (TVLA)
  • Programm-/Protokollverifikation durch Rewriting (Maude)

Voraussetzungen:

Empfehlungen:

Es werden Grundlagenkenntnisse im Bereich Formale Systeme vorausgesetzt. Diese können entweder durch den Besuch des entsprechenden Stammoduls, oder durch das Studium des Vorlesungsskriptes angeeignet werden

Lernziele:

Die Studierenden sollen mit einer representativen Auswahl der in der formalen Programmentwicklung eingesetzten Spezifikations- und Verifikationswerkzeuge bekanntgemacht werden. Sie sollen die jeweils zugrunde liegende Theorie und die charakteristischen Eigenschaften der Methoden kennen und verstehen lernen, sowie praktische Erfahrungen mit den Werkzeugen sammeln. Am Ende der Veranstaltung sollen sie ein passendes Verifikationswerkzeug für ein gegebenes Anwendungsszenario qualifiziert auswählen können.