Vor­le­sung: Soft­ware­mod­el­lier­ung mit for­m­alen Meth­oden

Veranstaltung: L.079.05603

Sommersemester 2018

Dozentin: Heike Wehrheim

Tutor: Jürgen König

Die Veranstaltung wird über die koaLA Platform organisiert. Die Anmeldung zur Veranstaltung findet über PAUL statt.

Allge­meine In­form­a­tion­en

  • Hörerkreis: Studierende der Informatik im Bachelorstudiengang, 2. Studienabschnitt
  • Modul: Softwaremodellierung mit Formalen Methoden
  • ECTS-Punkte: 6

In­halt

Formale Methoden sind Sprachen zur Modellierung/Spezifikation von Systemen. Ein Modell eines (Soft- oder Hardware) Systems beschreibt auf einer gewissen Abstraktionsebene die Funktionalität des Systems. Im Gegensatz zu (den meisten) Programmiersprachen besitzen formale Methoden eine genau festgelegte Semantik, d.h. eine mathematische Beschreibung der Bedeutung einer Spezifikation. Diese Festlegung der Semantik erlaubt es, das Systemmodell bereits vor der eigentlichen Implementierung formal zu analysieren und mögliche Fehler frühzeitig zu finden.

In der Vorlesung sollen verschiedene formale Methoden eingeführt werden, die für unterschiedliche Systemarten geeignet sind. Für jede dieser formalen Methoden werden Semantik und Analysetechniken vorgestellt und Modellierungsbeispiele zur Illustration des Einsatzbereiches besprochen.

Am Anfang der Vorlesung wird es vorrangig um die Modellierung von Parallelität und Kommunikation gehen. Hier werden Petrinetze und die Prozessalgebra CCS vorgestellt. Danach werden wir uns mit Sprachen zur Beschreibung von zeitlichen Aspekten (Timed Automata) und gegebenenfalls auch mit zustandsbasierten Formalismen zur Spezifikationen von Daten und Operationen (Z und Object-Z) beschäftigen.

Lit­er­at­ur

Einführung

  1. J. M. Wing, A Specifier's Introduction to Formal Methods. IEEE, Computer, 23(9):8-24, September 1990.
  2. E. Clarke and J. Wing, Formal Methods: State of the Art and Future Directions, CMU Computer Science Technical Report CMU-CS-96-178, August 1996, erschienen in: ACM Computing Surveys, 28(4):626-643, 1996.

Petrinetze:

  1. W. Reisig, Petrinetze - Eine Einführung. Springer Verlag, 1985.
  2. B. Baumgarten, Petri-Netze - Grundlagen und Anwendungen. BI Wissenschaftsverlag, 1990.
  3. Webseite Petri Nets World.

CCS:

  1. R. Milner, Communication and Concurrency, Prentice Hall, 1989.

Timed Automata:

  1. R. Alur, D. Dill: A Theory of Timed Automata. Theoretical Computer Science 126, p. 183 - 235, 1994.
  2. E.-R. Olderog, H. Dierks. Real-time Systems - Formal Specification and Automatic Verification. Cambridge University Press.

Z und Object-Z:

  1. J. M. Spivey, Z Reference Manual.
  2. J. Woodcock, J. Davies, Using Z - Specification, Refinement, and Proof. Prentice Hall, 1996.
  3. R. Duke, G. Rose. Formal Object-oriented Specification using Object-Z. MacMillan, 2000.
  4. G. Smith. The Object-Z Specification Language. Advances in Formal Methods. Kluwer Academic Publishers, 2000.
  5. J. Derrick, E. Boiten. Refinement in Z and Object-Z. Foundations and Advanced Applications. Springer Verlag, 2001.