Dies sind die archivierten Webseiten des Lehrstuhls für Programmierung und Softwaretechnik (PST).
Die Seiten des Software and Computational Systems Lab (SoSy) finden Sie auf https://www.sosy-lab.org/.

Formale Techniken der Software-Entwicklung

Aktuelles

 
25.06.2014:
  • Zu den Übungsblättern 4 und 6 gibt es jetzt (endlich, sorry!) Musterlösungen.
  • Die Mündlichen Prüfungen finden am 21. und 22.7. statt. Falls Sie auf UniWorX zur Vorlesung angemeldet sind, sollten Sie eine E-Mail mit Informationen zur Anmeldung und individuellen Terminvergabe bekommen haben. Falls nicht, wenden Sie sich bitte umgehend an den Übungsleiter.

03.06.2014:
  • Übungsblatt 6 ist online. Es wird am 06.06.2014 besprochen.
 
20.05.2014:
  • Das vierte Übungsblatt ist online. Es wird am 23.05. besprochen.
08.05.2014:
  • Die Übung am 09.05.2014 entfällt.
01.05.2014:
  • Der dritte Foliensatz ist online.
15.04.2014:
  • Der zweite Foliensatz ist online.
  • Das zweite Übungsblatt ist online. Es wird am 25.04. besprochen.
07.04.2014: 
  • Der erste Foliensatz und das Übungsblatt sind online (siehe unten).

Inhalte

Die Entwicklung zuverlässiger Soft- und Hardware stellt immer noch ein großes Problem dar. Aufgrund der Komplexität moderner Systeme gibt es viele Fehler, die nur in wenigen Systemzuständen oder in bestimmten Interaktionen mit der Umgebung auftreten. Durch Tests sind diese Fehler nur schwer zu finden.  Für kritische Systeme bietet sich daher der Einsatz von Techniken an, die es Entwicklern ermöglichen, Eigenschaften systematisch zu spezifizieren und das fertige System aus der Spezifikation zu generieren oder die Eigenschaften des Systems gegenüber der Spezifikation zu verifizieren.

In dieser Vorlesung werden logische Grundlagen und formale Techniken der Software-Entwicklung behandelt.  Neben dem grundlegenden Verständnis für formale Methoden liegt ein Schwerpunkt auf praktisch anwendbaren Techniken und Werkzeuge zur formalen Spezifikation und Verifikation. Geplant sind die folgenden Themen:

  • Boole'sche Logik und Erfüllbarkeit, SAT Solving (mit CVC/Yices)
  • Einführung in die Prädikatenlogik und Logiken höherer Ordnung (mit Alloy)
  • Spezifikation von Systemen (mit PVS)
  • Logik-Programmierung, Constraint-Programmierung und Constraint-Solving (mit Eclipse)
  • Ausblick in die Behandlung von zeitbasiertem Verhalten, Model Checking

Termine

Vorlesung (3-stündig)

  • Mo 9ct-12 Uhr, Richard-Wagner-Str. 10, Raum 101

Übung (2-stündig)

  • Fr 12ct-14 Uhr, Richard-Wagner-Str. 10, Raum 101

Mündliche Prüfungen

  • Die Termine für die mündlichen Prüfungen stehen noch nicht fest.


Personen

Dozent

Übungsbleitung

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

07.04.2014: Einführung, Aussagenlogik 1. Teil (erweiterte Version vom 8.4.2014)
28.04.2014: Resolution, Constraint Processing, Quellcode und die verwendeten Collections
05.05.2014, 12.05.2014: Constraint Processing
19.05.2014: Prädikatenlogik (Entwurf)
26.05.2014: Prädikatenlogik Teil 2 (Entwurf)
02.06.2014: Prädikatenlogik Teil 3 (Entwurf)
16.06.2014: Typtheorie (Entwurf)
23.06.2014: Spezifikation mit PVS: siehe auch Übung 7,   vm_inst.pvs, vm1.pvs, vm1.prf
30.06.2014: Model Checking
07.07.2014: Zusammenfassung

Übung

Hörerkreis

Master Informatik

Benötigte Vorkenntnisse

 Keine. 

Literatur