Model Checking
Veranstalter: Rüdiger Valk
Termin: Dienstags, 12:15-13:45 in C-221 (SoSe 2012)
Dieser Modul mit dem Titel "Spezifikation und Verifikation (SuV)" unterteilt sich in die Vorlesungen "Model-Checking " am Dienstag und "Infinite State Systems" am Donnerstag. Beide Teile sind jeweils in sich abgeschlossen, so dass Studenten des Diplomstudiengangs wahlweise auch nur eine der beiden Veranstaltung besuchen können.
Motivation:
Am 4. Juni 1996 explodierte eine Ariane-5-Rakete 40 Sekunden nach dem Start. Die Untersuchungskommission stellte später als Grund eine Ausnahmebehandlung in der Flugleitsoftware fest. Eine fehlerhafte Gleit/Festkomma-Konversion verursachte im Haupt- wie im Backup-Rechner einen Fehler, der zu einer inkorrekten Datenübermittlung an den Bordrechner führte, der seinerseits daraufhin die Selbstzerstörung einleitete. Daraufhin wurde die Software einer umfangreichen Verifikation unterzogen. Model-Checking-Methoden fanden dadurch auch in Europa vermehrt Beachtung. Solche Ereignisse sind keine Einzelfälle, obwohl die Gebiete Programmierung, Softwaretechnik, Systemtechnik und verteilte Systeme in der Informatik relativ gut vertreten sind und vielfältige Methoden, Techniken und Vorgehensweisen entwickelt haben. Als Grund ist unter anderem eine unzureichende Durchdringung der genannten Gebiete mit formal abgesicherten Konzepten, Modellen und Methoden zu nennen.In dieser Vorlesung sollen vorwiegend solche Methoden der Verifikation durch Model-Checking vorgestellt werden, die für relativ große Systeme tatsächlich angewandt werden und für die effektive Werkzeuge zur Verfügung stehen. So wurden bereits beeindruckend große Systeme erfolgreich verifiziert: beispielsweise Systeme mit mehr als 10exp20 Zuständen.
Lernziel und Vorgehen:
Erlernt werden sollen Methoden der Systemverifikation, die weitgehend unabhängig von der Systemmodellierung sind - im Gegensatz zu solchen, die spezielle Eigenschaften der Modellierung ausnutzen. Dabei sind die entsprechenden Spezifikationstechniken wie CTL, CTL*, LTL einzusetzen. Die Systemmodellierung beruht auf Zustandsdiagrammen in Form von Transitionssystemen. Spezielle Methoden oder Begriffe sind Binäre Entscheidungsdiagramme (BDDs), symbolische und parametrisierte Methoden, Reduktionen durch partielle Ordnungen, Symmetrieausnutzung, Verifikation von Sicherheits-, Lebendigkeits und Fairness-Eigenschaften, strukturelle Methoden, Methoden. Typische Anwendungsgebiete sind mobile Systeme, kryptografische Protokolle und eingebettete Systeme. Die Studenten lernen die formalen Grundlagen und erarbeiten sich ein Gefühl für die Möglichkeiten und Grenzen der formalen Spezifikation. Neben den theoretischen Grundlagen werden exemplarisch einige Computer-Werkzeuge im kleineren Rahmen praktisch vorgeführt. Typische Anwendungsgebiete sind mobile Systeme, kryptografische Protokolle und eingebettete Systeme.Materialien zur Veranstaltung:
(Benutzername und Passwort wie bei FGI2/PNL)- Folien Teil 0 : Einleitung MC0(intro)skript.pdf
- Folien Teil 1 : Geschichte und Bedeutung des Model-Checking MC1(history)skript.pdf
- Folien Teil 2 : Transitionssysteme MC2(trans)skript.pdf
- Folien Teil 3 : Linearzeit-Eigenschaften MC3(lin)skript.pdf
- Folien Teil 4 : Sicherheits-Eigenschaften MC4(safety)skript.pdf
- Folien Teil 5 : Lebendigkeits- und Fairness-Eigenschaften MC5(liveness)skript.pdf
- Folien Teil 6 : reguläre Eigenschaften MC6(regular)skript.pdf
- Folien Teil 7 : Büchi-Automaten MC7(buechi)skript.pdf
- Folien Teil 8 : Linearzeitlogik (LTL) MC8(LTL)skript.pdf
- Folien Teil 9 : LTL & Fairness MC9(LTL_fair)skript.pdf
- Folien Teil 10 : Model-Check-Werkzeuge MC10(tools)skript.pdf
- Folien Teil 11 : Computation-Tree-Logik (CTL) MC11(CTL)skript.pdf
- E.M. Clarke et al.: Model Checking, The MIT Press, Cambridge, 1999
- C. Baier und J.-P. Katoen: Principles of Model Checking, The MIT Press, Cambridge, 2008
- C. Girault, R. Valk: Petri Nets for Systems Engineering , Springer, Berlin, 2003, Part III: Verification
- B. Bérard et al.: Systems and Software Verification, Springer, Berlin, 1999
- M. Huth, D. Ryan: Logic in Computer Science - Modelling and Reasoning about Systems, Cambridge University Press, 1999
- J. Esparza, K. Heljanko: Unfoldings - A Partial-Order Approach to Model Checking, Springer, Berlin, 2008
Literatur:
Korrekturen, Anmerkungen bitte an: Rüdiger Valk