|
Formale Methoden der Softwareentwicklung (FMSoft)7.5 ECTS (englische Bezeichnung: Formal Methods of Software Development)
Modulverantwortliche/r: Tadeusz Litak Lehrende:
Tadeusz Litak, Paul Wild
Start semester: |
WS 2021/2022 | Duration: |
1 semester | Cycle: |
jährlich (SS) |
Präsenzzeit: |
56 Std. | Eigenstudium: |
169 Std. | Language: |
Deutsch und Englisch |
Lectures:
Inhalt:
In the first part of the course, we will engage in the formal verification of
reactive systems. Students learn the syntax and semantics of the temporal logics
LTL, CTL, and CTL* and their application in the specification of e.g. safety and
liveness properties of systems. Simple models of systems are designed and
verified using model checkers and dedicated frameworks for asynchronous and synchronous reactive systems, and the algorithms working in the
background are explained. The second part of the course focuses on functional correctness of programs;
more precisely, we discuss the theory of pre- and postconditions, Hoare triples,
loop invariants, and weakest (liberal) preconditions, in order to introduce
automatised correctness proofs using the Hoare calculus.
Lernziele und Kompetenzen:
Students are going to acquire the following competences:
- Wissen
- Reproduce the definition of syntax and semantics of temporal logics LTL, CTL, and CTL*.
Reproduce the definition of semantics of a simple programming languages like IMP, with special focus on axiomatic semantics (Hoare rules).
Explain how CTL can be characterised in terms of fixpoints.
- Verstehen
- The students understand the workings of state of the art automatic
frameworks,
clarifying the role of model checking algorithms, semantics and Hoare
calculi in formal verification.
- Anwenden
- In a series of exercises, the students use state of the art tools for
model checking
specification and verification of reactive systems,
verification of functional correctness or memory safety of simple programs.
- Analysieren
- Choose the optimal tool for a given verification or specification problem.
Differentiate between safety and liveness properties.
Contrast several related temporal logics (LTL, CTL, CTL*) and properties expressible/inexpressible in each of them.
Literatur:
- G. Winskel: The Formal Semantics of Programming Languages: An Introduction, The MIT Press, 1993.
M. Huth, M. Ryan: Logic in Computer Science, Cambridge University Press, 2. Aufl., 2004.
Weitere Informationen:
www: https://www8.cs.fau.de/course:fmsoft
Verwendbarkeit des Moduls / Einpassung in den Musterstudienplan: Das Modul ist im Kontext der folgenden Studienfächer/Vertiefungsrichtungen verwendbar:
- Artificial Intelligence (Master of Science)
(Po-Vers. 2021s | TechFak | Artificial Intelligence (Master of Science) | Gesamtkonto | Wahlpflichtmodulbereich | Symbolic Artificial Intelligence | Formale Methoden der Softwareentwicklung)
- Informatik (Bachelor of Arts (2 Fächer))
(Po-Vers. 2010 | TechFak | Informatik (Bachelor of Arts (2 Fächer)) | Vertiefung Informatik I und II | Vertiefungsmodul Theoretische Informatik | Formale Methoden der Softwareentwicklung)
- Informatik (Bachelor of Arts (2 Fächer))
(Po-Vers. 2013 | TechFak | Informatik (Bachelor of Arts (2 Fächer)) | Vertiefung Informatik I und II | Vertiefungsrichtung Theoretische Informatik | Formale Methoden der Softwareentwicklung)
- Informatik (Bachelor of Science)
(Po-Vers. 2009s | TechFak | Informatik (Bachelor of Science) | Wahlpflichtbereich (5. und 6. Semester) | Wahlpflichtmodule | Vertiefungsrichtung Theoretische Informatik | Formale Methoden der Softwareentwicklung)
- Informatik (Bachelor of Science)
(Po-Vers. 2009w | TechFak | Informatik (Bachelor of Science) | Gesamtkonto | Wahlpflichtbereich (5. und 6. Semester) | Wahlpflichtmodule | Vertiefungsrichtung Theoretische Informatik | Formale Methoden der Softwareentwicklung)
- Informatik (Master of Science)
(Po-Vers. 2010 | TechFak | Informatik (Master of Science) | Gesamtkonto | Wahlpflichtbereich | Säule der theoretisch orientierten Vertiefungsrichtungen | Vertiefungsrichtung Theoretische Informatik | Formale Methoden der Softwareentwicklung)
- Mathematik (Bachelor of Science)
(Po-Vers. | NatFak | Mathematik (Bachelor of Science) | Module des Nebenfachs | Nebenfach Informatik | Vertiefungsmodule | Vertiefungsrichtung Theoretische Informatik | Formale Methoden der Softwareentwicklung)
- Mathematik (Bachelor of Science)
(Po-Vers. 2019w | NatFak | Mathematik (Bachelor of Science) | weitere Module der Bachelorprüfung | Module des Nebenfachs | Nebenfach Informatik | Vertiefungsmodule | Vertiefungsrichtung Theoretische Informatik | Formale Methoden der Softwareentwicklung)
- Wirtschaftsinformatik (Bachelor of Science)
(Po-Vers. 2017w | ReWiFak | Wirtschaftsinformatik (Bachelor of Science) | Gesamtkonto | Vertiefungsbereich | Formale Methoden der Softwareentwicklung)
- Wirtschaftsinformatik (Bachelor of Science)
(Po-Vers. 2018w | ReWiFak | Wirtschaftsinformatik (Bachelor of Science) | Gesamtkonto | Vertiefungsbereich | Formale Methoden der Softwareentwicklung)
- Wirtschaftsinformatik (Bachelor of Science)
(Po-Vers. 2020w | ReWiFak | Wirtschaftsinformatik (Bachelor of Science) | Gesamtkonto | Wahlpflichtbereiche | Wahlpflichtbereich Informatik | Formale Methoden der Softwareentwicklung)
Studien-/Prüfungsleistungen:
Formale Methoden der Softwareentwicklung (Prüfungsnummer: 151316)
- Prüfungsleistung, mündliche Prüfung, Dauer (in Minuten): 30, benotet
- Anteil an der Berechnung der Modulnote: 100.0 %
- weitere Erläuterungen:
Die Modulnote setzt sich zu 50% aus dem Ergebnis einer 30-minütigen mündlichen Prüfung am Semesterende und zu 50% aus der Note für die Bearbeitung von im Zwei-Wochen-Takt gestellten Übungsaufgaben zusammen.
- Prüfungssprache: Deutsch und Englisch
- Erstablegung: WS 2021/2022, 1. Wdh.: SS 2022 (nur für Wiederholer), 2. Wdh.: keine Wiederholung
|
|
|