Model Checking I

Werbung
Werkzeuggestützte Softwareprüfungen:
Model Checking I - CTL
Vortrag von
Florian Heyer
Gliederung
•
•
•
•
•
Wiederholung
Einführung
CTL im Detail
Anwendungsbeispiele
Abschluss
Model Checking I - CTL
2
Model Checking (Wiederholung)
• Überprüfung einer Systembeschreibung auf Anforderungen
• dies soll automatisiert ablaufen
• hierzu kommt ein Model Checker zum Einsatz: eine Software,
die die Überprüfung des Systems durchführen kann
• Eingaben für den Model Checker sind:
– eine Beschreibung des zu untersuchenden Systems als
Zustandsübergangssystem
– eine Menge von geforderten Eigenschaften des System, die hier in
temporaler Logik formuliert sein sollen
• der Model Checker liefert eines der folgenden Ergebnisse:
– das System besitzt die geforderten Eigenschaften
– das System verletzt die Anforderungen; in diesem Fall liefert der Model
Checker ein Beispiel eines Systemdurchlaufs, welcher eine geforderte
Eigenschaft verletzt
Model Checking I - CTL
3
Einführung
• Zustandsübergangssystem
als Modell eines zu
untersuchenden Systems
– Zustände
– Transitionen zwischen den
Zuständen
– Zustandsaussagen
• Zustandsübergangssysteme
können übersichtlich als
Graphen dargestellt werden
Model Checking I - CTL
4
Einführung
• durch Ausführung des Systems entsteht ein
Berechnungsbaum, der alle möglichen unendlichen Abläufe
des Systems darstellt
• Abläufe werden Pfade genannt
Model Checking I - CTL
5
Einführung
• beim Model Checking müssen Anforderungen an das System
formuliert werden
• hierfür werden temporale Logiken genutzt
– diese sind eine Erweiterung der Aussagenlogik um temporale
Operatoren
– ermöglichen zeitliche Einschränkungen der Gültigkeit von Aussagen
(z.B. „immer“ oder „manchmal“)
– temporale Logik ist eine spezielle modale Logik (Verwendung von
Modaloperatoren zum Ausdruck von Modalitäten)
Model Checking I - CTL
6
Temporale Logiken
• LTL - Linear-time Temporal Logic (~1960)
– älteste temporale Logik
– lineares Zeitmodell
– Aussagen gelten immer für alle Pfade
• CTL - Computation Tree Logic (~1980)
– Zeit als Baum
– Verzweigung in unterschiedliche Versionen der Zukunft (Pfade)
– Aussagen können auf bestimmte Pfade beschränkt werden
• CTL* (1986)
– später entwickelt als Erweiterung der Ausdrucksmöglichkeiten von CTL
und LTL
– Zeit als Baum
– freie Verschachtelung der Temporaloperatoren
Model Checking I - CTL
7
Temporale Logiken
• Ausdrucksumfang der
temporalen Logiken
– es gibt Ausdrücke, die sich
zwar in LTL, nicht jedoch in
CTL ausdrücken lassen und
umgekehrt
– CTL* ist Obermenge von LTL
und CTL
Model Checking I - CTL
8
Semantik von CTL-Formeln
• CTL-Formeln beziehen sich auf einen Zustand s im Modell M
• Für eine Formel φ überprüft der Model-Checker die
Erfüllbarkeitsrelation
M , s ²
• häufigste Anwendung des Model Checkers:
– erfüllen alle Zustände des Modells eine bestimmte Anforderung (=CTLFormel)?
– die Antwort ist entweder true oder false
– bei false wird meist der Durchlauf ausgegeben, welcher die
Anforderung verletzt hat
Model Checking I - CTL
9
Aufbau von CTL-Formeln
• CTL-Formeln bestehen aus den folgenden Elementen
–
–
–
–
Konstanten true und false
atomare Zustandsaussagen
boolesche Operatoren (not, and, or, Implikation)
zusammengesetzte Operatoren, bestehend aus Pfadquantoren und
Temporaloperatoren
• Backus-Naur-Form von CTL-Formeln φ:
φ ::= ⊥ | T | p | (¬φ) | (φ ∧ φ) | (φ ∨ φ) | (φ → φ) | <compositeOp>
<compositeOp> ::= A<temporalOp> | E<temporalOp>
<temporalOp> ::= X φ | F φ | G φ | [φ U φ]
Model Checking I - CTL
10
Zusammengesetzte Operatoren (<compositeOp>)
• bestehen aus Paaren von Pfadquantor und Temporaloperator
• Pfadquantoren
– A - All: Aussage gilt für alle in s beginnenden Pfade
– E - Exists: Aussage gilt für mindestens einen Pfad, der in s beginnt
• Temporaloperatoren (bezogen auf die Zukunft)
– unär
• X – neXt: Aussage gilt im nächsten Zustand
• F – Future: Aussage gilt in Zustand in der Zukunft
• G – Global: Aussage gilt für kompletten Pfad
– binär
• U – Until: Aussage1 gilt für alle Zustände bis Aussage2 gilt und Aussage2
wird gelten
• es ergeben sich somit 2*4=8 zusammengesetzte Operatoren
namens: AX, AF, AG, AU, EX, EF, EG, EU
Model Checking I - CTL
11
Definition der Erfüllbarkeitsrelation
• die Erfüllbarkeitsrelation lässt sich fallweise definieren
• Konstanten
–
–
M , s²
M , s 2
• Atomare Aussagen
–
M , s ² p gdw. p  L s
• Boolesche Operatoren
–
–
M , s ²  gdw. M , s 2 
M , s ²∧ gdw. M , s ² and M , s ²
–
M , s ²∨ gdw. M , s ² or M , s ²
–
M , s ²   gdw. M , s 2 or M , s ²
Model Checking I - CTL
12
Definition der Erfüllbarkeitsrelation
• Zusammengesetzte Operatoren
AX φ gdw. in jedem nächsten Zustand gilt φ
AF φ gdw. man erreicht immer einen Zustand, der φ erfüllt
AG φ gdw. in allen Pfaden gilt φ
A[φ U ψ] gdw. es gilt immer φ bis zum ersten Auftreten von ψ
EX φ gdw. in (mind.) einem nächsten Zustand gilt φ
EF φ gdw. in (mind.) einem der folgenden Zustände gilt φ
EG φ gdw. es gibt (mind.) einen Pfad, so dass φ entlang des ganzen
Pfades gilt
– E[φ U ψ] gdw. es gibt einen Pfad für den gilt: bis zum ersten Auftreten
von ψ gilt φ
–
–
–
–
–
–
–
Model Checking I - CTL
13
Beispiele
M , s0 ² p∧q
⇒true
M , s0 ² EX q∧r 
⇒true
M , s 2 ² AG r
⇒true
Model Checking I - CTL
14
Beispiele
• Ein aufwärts fahrender Lift in der 2. Etage wechselt nicht die
Richtung, falls Passagiere in den 5. Stock wollen:
• AG(etage2 ∧ aufwärts ∧ taste5 → A[aufwärts U etage5])
Model Checking I - CTL
15
Anwendungsbeispiele
• NuSMV
– NuSMV is a symbolic model checker
– NuSMV is a reimplementation and extension of SMV, the first model
checker based on BDDs.
• UPPAAL
– Uppaal is an integrated tool environment for modeling, validation and
verification of real-time systems modeled as networks of timed
automata, extended with data types (bounded integers, arrays, etc.).
– The tool is developed in collaboration between the Department of
Information Technology at Uppsala University, Sweden and the
Department of Computer Science at Aalborg University in Denmark.
Model Checking I - CTL
16
Äquivalente CTL-Formeln
• Semantische Äquivalenz von CTL-Formeln
– Definition: zwei Formeln sind dann äquivalent, wenn ein beliebiger
Zustand aus einem beliebigen Modell, der die eine Formel erfüllt, auch
die andere Formel erfüllt.
– ermöglicht Ersetzung von Ausdrücken durch äquivalente Ausdrücke
– es ergibt sich eine Menge von adäquaten temporalen Operatoren, mit
denen sich CTL komplett ausdrücken lässt: AF, EU, EX
– die booleschen Operatoren und Konstanten lassen sich ebenfalls auf
eine adäquate Menge beschränken: ¬, ∧, ⊥
• Beispiel: De-Morgan-Gesetze
 AF   EG  
 EF   AG  
 AX   EX  
Model Checking I - CTL
17
Algorithmen für die Verifikation
• Markierungsalgorithmus (labelling algorithm)
– Eingabe: ein Modell M und eine CTL-Formel φ
– Ausgabe: alle Zustände in M, die φ erfüllen
– Effizienz O(f * V * (V + E)) mit
• f Anzahl der Operatoren in φ
• V Anzahl der Zustände
• E Anzahl der Zustandsübergänge
– somit linear zur Größe der Formel, quadratisch zur Größe des
Zustandsübergangsgraphen
– Effizienz nach Optimierung: O(f * (V + E))
• Symbolisches Model Checking
– erstmalig im Model Checker SMV verwendet (~1998)
– verwendet OBDD (ordered binary decision diagrams)
Model Checking I - CTL
18
Fazit Model-Checking mit CTL
•
•
•
•
wird durch vielfältige Tools gut unterstützt
wird in der Praxis eingesetzt
ist aktuelles Lehr- und Forschungsthema
Aber:
– Abstraktion des realen Systems in ein formales Modell ist schwierig
– CTL-Formeln höchst komplex
– state explosion problem
• effiziente Datenstrukturen (OBDD)
• Abstraktion
• Partial order reduction: Reduktion der Zustandsmenge bei kommutativen
parallelen Transitionen
• Dekomposition des betrachteten Systems
Model Checking I - CTL
19
Quellen
• Michael Huth, Mark Ryan: „Logic in Computer Science Modelling and Reasoning about Systems“, Cambridge
University Press, 2004.
• Übersicht über Applikationen zum Thema Model Checking:
http://www.pst.ifi.lmu.de/lehre/SS06/modelcheck/mc-list.html
• Homepage zur Applikation UPPAAL:
http://www.uppaal.com/
• Homepage zu Applikation NuSMV:
http://nusmv.irst.itc.it/
Model Checking I - CTL
20
Herunterladen