Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Ähnliche Präsentationen


Präsentation zum Thema: ""—  Präsentation transkript:

197 Übersicht 1. Einführung in den Software-Entwurfsprozess
2. Anforderungsspezifikation mit Zustandsmaschinen 3. Anforderungsspezifikation mit Linearer Temporaler Logik 4. Automatenbasiertes Model Checking 5. Die Modellierungssprache Promela und der SPIN Model Checker 6. Effizienzsteigernde Massnahmen 7. Anwendungsbeispiele von SPIN Model Checking 8. Eine visuelle Entwicklungsumgebung für Promela/Spin 9.Verwandte, semi-formale Modellierungsmethoden Entwurf von Telekommunikationssystemen

198 Automatenmodelle und Logiken
Operationelle Anforderungsspezifikationen und architekturelle Designspezifikationen für reaktive Systeme werden häufig in automatenbasierten Formalismen verfasst SDL ITU-T Recommendation Z.100 CEFSM-Modell mit beliebigen Datenbereichen und unbeschränkten Kommunikationskanälen Real-Time Object-Oriented Modeling (ROOM) Verhalten basiert auf HCEFSMs UML for Real-Time (UML RT) syntaktische Variante von ROOM Abstrakte Anforderungen können gut durch Automaten oder temporallogische Formeln dargestellt werden Entwurf von Telekommunikationssystemen

199 Anforderungsvalidation
analyse und Vereinbarung dokumentation und Spezifikation Validation Kunden- oder Be- nutzeranforderungen (abstrakt) ermittlung Vereinbarte und Validierte Anforderungen Automaten- oder Logikspezifikation L Automatenmodell M M  L “model checking” Entwurf von Telekommunikationssystemen

200 Anforderungsvalidation
M (Operationelles Anforderungsmodell) L (abstrakte Anforderungen) 1 Entwurf von Telekommunikationssystemen

201 Anforderungsvalidation
Weitere Anwendungsbeispiele Implementiert ein Design die Anforderungsspezifikation? Korrektheit einer Implementierung: erfüllt eine Implementierung auf beliebiger Stufe die Anforderungen? Code-Verifikation: erfüllt der Quellcode die Anforderungen? System design Requirements Design Implementation Integration Maintenance Entwurf von Telekommunikationssystemen

202 Prinzip des Model Checking
Beispiel: Mutual Exclusion (Gegenseitiger Ausschluss) zwei Prozesse, i = 1, 2 globaler Zustandsraum, Zustände S1, .., S9 Zustandspropositionen n: Prozess i ist nicht im kritischen Abschnitt t: Prozess i versucht, in den kritischen Abschnitt zu gelangen c: Prozess i befindet sich in dem kritischen Abschnitt Spontane Transitionen zwischen Zuständen Interleaving Semantik für Nebenläufigkeit Entwurf von Telekommunikationssystemen

203 Prinzip des Model Checking
Gegenseitiger Ausschluss S0 n1 n2 S4 t1 t2 S3 c1 S1 S7 S6 c2 S5 S2 S8 Entwurf von Telekommunikationssystemen

204 Prinzip des Model Checking
t1 t2 S3 c1 S1 S7 S6 c2 S5 S2 S8 Sicherheitsanforderungen Es befinden sich nie zwei Prozesse gleichzeitig in dem kritischen Abschnitt Formalisierung  (c1c2) Entwurf von Telekommunikationssystemen

205 Prinzip des Model Checking
t1 t2 S3 c1 S1 S7 S6 c2 S5 S2 S8 Sicherheitsanforderungen Validationsprinzip: besuche jeden Zustand und überprüfe, ob die Eigenschaft in jedem Zustand erfüllt ist Wenn alle Zustände die Eigenschaft erfüllen, dann kann man keinen Präfix so fortsetzen, dass er die resultierende Folge die Eigenschaft verletzt Entwurf von Telekommunikationssystemen

206 Prinzip des Model Checking
t1 t2 S3 c1 S1 S7 S6 c2 S5 S2 S8 Lebendigkeitsanforderung In jedem Zustand gilt, dass entweder Prozess 1 oder Prozess 2 immer irgendwann einmal in den kritischen Bereich gelangen werden Formalisierung   (c1  c2) Entwurf von Telekommunikationssystemen

207 Prinzip des Model Checking
t1 t2 S3 c1 S1 S7 S6 c2 S5 S2 S8 Lebendigkeitsanforderung Validationsprinzip Besuche jeden Zustand und überprüfe, ob ein Zyklus in dem Graphen gefunden werden kann, der die Bedingung verletzt analog: nicht alle unendlichen Verlängerungen aller endlichen Präfixe erfüllen die Eigenschaft Entwurf von Telekommunikationssystemen

208 Prinzip des Model Checking
t1 t2 S3 c1 S1 S7 S6 c2 S5 S2 S8 Response Wenn ein Prozess einmal versucht, in den kritischen Bereich zu gelangen, dann wird er auch irgendwann den kritischen Bereich erreichen Formalisierung (t1  c1)  (t2  c2) Entwurf von Telekommunikationssystemen

209 Prinzip des Model Checking
t1 t2 S3 c1 S1 S7 S6 c2 S5 S2 S8 Suchstrategien Tiefensuche (depth-first-search) mehrfach Allgemeine Strategien? Model checking für beliebige Formeln der temporalen Logik Entwurf von Telekommunikationssystemen

210 Temporale Logik und Automaten
Es gibt eine enge Verbindung zwischen Büchi-Automaten und temporaler Logik LTL entspricht Zähler-freien Büchi-Automaten und *-freien -regulären Ausdrücken Büchi-Automaten sind echt ausdrucksstärker als LTL-Formeln Ausdruckfähigkeit temporaler Logik im Vergleich zu Automaten nach [Wolper]: Nicht Zähler-freie Büchi- Automaten  -reguläre Sprachen ETL Zähler-freie Büchi- Automaten  *-freie -reguläre Sprachen LTL Entwurf von Telekommunikationssystemen

211 Temporale Logik und Automaten
Beispiel einer Eigenschaft, die mit allgem. Büchi-Automaten, aber nicht mit LTL ausgedrückt werden kann even(p): Proposition p ist wahr in jedem geradezahlig numerierten Zustand der Ausführungsfolge Büchi: -reg: (p) LTL: : p  (p  p)  (p  p) kann diese Eigenschaft nicht vollständig charakterisieren sei  = dann gilt   even(p) und    Schluss: mit LTL können Eigenschaften, die wiederholtes Zählen bis zu einer Konstanten n erfordern, nicht ausgedrückt werden. Büchi Automaten können zählen modulo eines festen n für jede LTL-Formel gibt es einen gleich ausdrucksstarken Büchi-Automaten Für Beweise siehe [Wolper] S1 S0 p p Entwurf von Telekommunikationssystemen

212 Temporale Logik und Automaten
Intuitiv: LTL-Formeln und äquivalente Automaten S0 S1 (c1 c2) (c1 c2) wahr (c1 c2) (c1 c2) S0 S1 (c1  c2) c1 c2 (c1 c2) c1 c2 Entwurf von Telekommunikationssystemen

213 Temporale Logik und Automaten
Intuitiv: LTL-Formeln und äquivalente Automaten S0 S1 p  (pq) q pq q (p  q) (p  q) q S0 S1 wahr p  q (p  q) Entwurf von Telekommunikationssystemen

214 Temporale Logik und Automaten
Intuitiv: LTL-Formeln und äquivalente Automaten S0 S1 p  (pq) q p r  q r  q (p  (r W q)) (p  (r U q)) ? q  r S0 S1 wahr S2 p r  q p r  q r  q (p  (r U q)) Entwurf von Telekommunikationssystemen

215 Prinzip des Model Checking
Vorgehen Sei A eine Systemspezifikation, gegeben als ein Büchi Automat Sei S eine Spezifikation, gegeben als ein Büchi Automat Seien L(A) und L(S) die von A bzw S akzeptierten Sprachen A erfüllt die Spezifikation S, falls L(A)  L(S) Anwendungs auf Anforderungsvalidation S (Operationelles Anforderungsmodell) A (abstrakte Anforderungen) 1 L(A)  L(S) Entwurf von Telekommunikationssystemen

216 Prinzip des Model Checking
Komplementierung von Büchi-Automaten Sei  - L(S) = comp(L(S)) dann L(A)  L(S)  L(A)  comp((L(S)) Büchi-Automaten sind abgeschlossen unter Komplementbildung und Durchschnitt, d.h., es gibt einen B.A., der comp((L(S)) repräsentiert, und es gibt einen B.A., der L(A)  comp((L(S)) repräsentiert Implementierungsvarianten direkte Komplementierung von S: Komplementierung von B.A. ist eine nicht-triviale Operation (siehe [Sistla, Vardi and Wolper] direkte Spezifikation von comp(S): Wird teilweise in Model Checkern vorgesehen (never-claims in Promela/SPIN) spezifiziere LTL-Formel , benutze Negation , übersetze  in einen äquivalenten B.A. Entwurf von Telekommunikationssystemen

217 Prinzip des Model Checking
Direkte Spezifikation unerwünschter Eigenschaften Entwurf von Telekommunikationssystemen

218 Prinzip des Model Checking
Existenz eines Gegenbeispiels L(A)  comp((L(S)) =   A erfüllt S L(A)  comp((L(S)) = C    C ist Gegenbeispiel für die Nichterfüllung von S durch A es kann gezeigt werden, dass jedes Wort in C in der Form uv repräsentiert werden kann, wobei u und v endliche Zustands- oder Ereignisfolgen sind Entwurf von Telekommunikationssystemen

219 Prinzip des Model Checking
Konstruktion eines Schnittmengen-Büchi-Automaten Seien M = (Q, q0, A, , F) und M = (Q, q0, A, , F) zwei Büchi-Automaten. Der L(M)  L(M) akzeptierende Automat kann definiert werden als M  M = ( Q x Q x {0, 1, 2}, (q0, q0, 0), A, , Q x Q x {2} ) so, dass (<r,q,x>, a, <r, q, y>)   gdw alle folgenden Bedingungen gelten: (r, a, r)   und (q, a, q)   (die Transitionen des Schnittmengen-B.A. stimmen mit den Transitionen der einzelnen B.A. überein) die dritte Komponente der Zustandspaare ergibt sich wie folgt: falls x=0 und r  F, dann y = 1 falls x=1 und q  F, dann y = 2 falls x=2, dann y = 0 andernfalls, y=x Entwurf von Telekommunikationssystemen

220 Prinzip des Model Checking
Beispiel (aus [Clarke, Grumberg and Peled]) M a M b r r q q b a a b b a M  M r,q,0 a b a r,q,1 r,q,0 a b b b b a r,q,2 r,q,0 a Entwurf von Telekommunikationssystemen

221 Prinzip des Model Checking
Konstruktion eines Schnittmengen-Büchi-Automaten Letzte Komponente stellt sicher, dass Zustände sowohl von M als auch von M in einem akzeptierenden Zyklus unendlich häufig vorkommen Definition von F = F x F wäre nicht ausreichend, da dann Zyklen akzeptiert würden, die nur durch den Akzeptierungszustand eines der B.A. unendlich zirkulieren würden Dritte Komponente: von 0 auf 1, wenn ein akzeptierender Zustand des ersten Automaten erreicht wird, von 1 auf 2 (Akzeptierungszustand), wenn ein akzeptierender Zustand des zweiten Automaten erreicht wird, von 2 im nächsten Zustand auf 0 Entwurf von Telekommunikationssystemen

222 Prinzip des Model Checking
Leerheitsüberprüfung für Büchi-Automaten Sei M = (Q, q0, A, , F) ein Büchi-Automat Sei  ein Lauf auf  so dass  von M akzeptiert wird  enthält unendlich viele akzeptierende Zustände aus F Da Q endlich ist, gibt es einen Suffix ’ von  so dass jeder Zustand in ’ unendlich häufig vorkommt Jeder Zustand in ’ ist von jedem anderen Zustand in ’ erreichbar, d.h., die Zustände in ’ sind teil einer starkt verbundenen Komponente (strongly connected component - Clique?) von M, die von q0 erreichbar ist D.h., die Frage L(M) =  ist äquivalent der Auffindung einer stark verbundenen Komponente im Zustandsgraphen von M -> Tarjan’s Tiefensuche (depth first search, DFS), lineare Zeit Ableitung Gegenbeispiel Die Mitglieder jeder gefundenen Komponente bilden den unendlich wiederholten Suffix Der Erreichbarkeitspfad der Komponente von q0 bildet Präfix Effizientere Lösung für praktische Probleme: zweifacher DFS Entwurf von Telekommunikationssystemen

223 Prinzip des Model Checking
Zweifacher DFS (nach [Clarke, Grumberg and Peled]) procedure emptiness dfs(q); terminate(false) end procedure procedure dfs1(q) local q’; hash(q); for all successors q’ of q do if q’ not in hashtable then dfs1(q’) end if; if q  F then dfs2(q) end do; procedure dfs2(q) local q’; flaq(q); for all successors q’ of q do if q’ on dfs1-stack then terminate(true) else if q’ not flagged then dfs2(q’) end if; end do; end procedure Entwurf von Telekommunikationssystemen

224 Prinzip des Model Checking
Zweifacher DFS (nach [Clarke, Grumberg and Peled]) Ableitung des Gegenbeispiels bei terminate(true) dfs2(s) s wird von dfs2 auf dfs1-stack gefunden Konstruktion Gegenbeispiel: s s q0 Entwurf von Telekommunikationssystemen

225 Prinzip des Model Checking
Synchrones Produkt ([Holzmann 95]) Idee Sei M ein B.A., der dem zu validierenden Transitionssystem entspricht Sei L ein B.A., welcher der zu validierenden Eigenschaft entspricht Transitionen von L sind mit propositionalen Ausdrücken markiert, die sich auf die Zustandsvariablen von M beziehen Führe einen Matching durch zwischen den Zuständen von M und den Transitionen von L L: s, .., s=x, s=y, .. M: s’, .., s’=v, .. ... x y c w v vc “match” von s’ und (s, s) M L Entwurf von Telekommunikationssystemen

226 Prinzip des Model Checking
Synchrones Produkt ([Holzmann 95]) Idee Ziel: erzeuge alle akzeptierenden Läufe von L, die auch akzeptierende Läufe von M sind Ein Lauf von L passt („match“) auf einen Lauf von M, falls alle Zustände in L’s Lauf auf alle Zustände in Mäs Lauf passen Ein akzeptierender Lauf auf L, der einem passenden Lauf auf M entspricht, beschreibt eine Ausführungsfolge, die der durch L ausgedrückten (unerwünschten) Eigenschaft entspricht Absenz eine akzeptierenden Laufs von L, für den es einen passenden Lauf von M gibt, bedeutet, dass die (unerwünschte) Eigenschaft nicht gilt L: s, .., s=x, s=y, .. M: s’, .., s’=v, .. ... x y c w v vc “match” von s’ und (s, s) M L Entwurf von Telekommunikationssystemen

227 Prinzip des Model Checking
Synchrones Produkt ([Holzmann 95]) Beispiel  at_i   at_i wahr  at_i y y Negation M at_i x at_i x x L P (x, y) (x, y) (x, y) (x, y) (x, y) Entwurf von Telekommunikationssystemen

228 Prinzip des Model Checking
Synchrones Produkt ([Holzmann 95]) Beispiel Jeder Lauf des Produktautomaten P entspricht einem Lauf von M genauso wie einem Lauf von L Jeder akzeptierende Lauf von P entspricht damit einem Lauf von M und einem akzeptierenden Lauf von L, womit gezeitgt wird, dass die Schnittmenge der von beiden Automaten akzeptierten Sprachen nicht leer ist P (x, y) (x, y) (x, y) (x, y) (x, y) Entwurf von Telekommunikationssystemen

229 Prinzip des Model Checking
Synchrones Produkt ([Holzmann 95]) Beispiel Die von L ausgedrückte Eigenschaft hält für M, da das Synchrone Produkt P einen akzeptierenden Zyklus enthält (zweifach DFS) Gegebeispiel: (x, y) , (x, y), (x, y) P (x, y) (x, y) (x, y) (x, y) (x, y) Entwurf von Telekommunikationssystemen

230 Prinzip des Model Checking
Synchrones Produkt ([Holzmann 95]) Beispiel 2  at_i   at_i wahr  at_i y y Negation M at_i x at_i x L at_i x P (x, y) (x, y) (x, y) (x, y) (x, y) Kein Akzeptierender Lauf von P, daher (unerwünschte) Eigenschaft nicht erfüllt. Entwurf von Telekommunikationssystemen

231 Bibliographische Referenzen
[Clarke, Grumberg and Peled] E. Clarke, O. Grumberg and D. Peled, Model Checking, MIT Press, Cambridge, 1999 [Holzmann 95] G. Holzmann, The Verification of Concurrent Systems, unpublished manuscript, AT&T Inc., 1995 [Holzmann 97] G. Holzmann, The Model Checker SPIN, IEEE Transactions on Software Engineering, Vol. 23, No. 5, May 1997 [Sistla, Vardi and Wolper] A. Sistla, M. Vardi and P. Wolper, The complementation problem for Büchi Automata with applications to temporal logic, Theoretical Computer Science, 49: [Wolper] P. Wolper, Temporal Logic can be more expressive, Information and Control, Vol. 56, S , 1983 Entwurf von Telekommunikationssystemen


Herunterladen ppt ""

Ähnliche Präsentationen


Google-Anzeigen