Daniel Neumann dneumann@informatik.hu-berlin.de Seminar Systementwurf Wintersemester 2006/07 Zustandsautomaten/ Kripke-Strukturen Daniel Neumann dneumann@informatik.hu-berlin.de.

Slides:



Advertisements
Ähnliche Präsentationen
Temporale Logiken: LTL und CTL
Advertisements

LTL - Modellüberprüfung
Christian Schindelhauer
Modellbasierte Software-Entwicklung eingebetteter Systeme
Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt.
Prof. Dr. Holger Schlingloff
Eingebettete Systeme Qualität und Produktivität
Bounded Model Checking II
Das „Vorgehensmodell“
Hauptseminar Modellüberprüfung Kathrin Ott
Seminar Modellüberprüfung
Universität des Saarlandes Fachbereich Informatik Lehrstuhl Prof. Dr
Proseminar “Software Pioneers” (Prof. Dr. Heike Wehrheim)
Terminierung und Deadlocks Enkhbat Daginaa Betreuerin Prof. Heike Wehrheim Totale Korrektheit.
1 Computergestützte Verifikation Symbolisches Model Checking 4.1 CTL Model Checking mit Binary Decision Diagrams (1. Systeme 2. Spezifikationen.
1 Computergestützte Verifikation Teil II Infinite State Systems.
Computergestützte Verifikation
Nebenläufigkeit Teil I
Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Aufgaben des Testens Vergleich des Verhaltens einer Software mit den an sie gestellten.
Automatentheorie „Berechnungsmodell für logische Sprachen“
Symbolisches Model Checking mit Binary Decision Diagrams
© Karin Haenelt 2006, Operationen auf Akzeptoren und Transduktoren, ( ) 1 Operationen auf endlichen Akzeptoren und Transduktoren.
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Reinforcement Learning
WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Das Symbolic Model Verifier (SMV) System Präsentation im Rahmen.
Semantische Fehler Seminar im Grundstudium WS2002/2003:
handlungsorientierte Zugänge zur Algebra
PG 520 Intelligence Service – gezielte Informationen aus dem Internet
Vorlesung 9.2: Specification Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Seminar: Architekturbeschreibungssprachen
Modelchecker – RED Tool: Region-Encoding Diagram Stefan Neumann.
Christian Schindelhauer
Christian Schindelhauer
Entwicklung von Simulationsmodellen WS 2007/08 Dr. Falk-Juri Knauft Mittwoch 9.15 Uhr – Uhr S25 Praktikum zur Entwicklung von Simulationsmodellen:
Kapitel III: Stochastische Modelle im Januar haben wir behandelt: 12/3
1 Friedrich-Alexander-Universität Erlangen-Nürnberg Christoph Rager Modellbasierte Zuverlässigkeitsanalyse (Hauptseminar 1: Qualitäts- und Zuverlässigkeitsmangagement)
Tino Reindanz - FSU Jena Seminar Aktive Datenbanken – SS 2007 Folie 1 Seminar Aktive Datenbanken Rule Development Rule Development for Active Database.
Institut für Theoretische Informatik TU Carolo-Wilhelmina zu Braunschweig Teamprojekt in Software Systems Engineering und Theoretischer Informatik Einsatz.
Isabelle/HOL ( Kripke Structures & Model Checking ) Ying Wang, Nelli Bärsch, Bartosz Rynarzewski,
Spezifikation von Anforderungen
Das Wasserfallmodell - Überblick
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering WS 2006 / 2007Folie 1 Agile Vorgehensweisen Hintergrund –in den letzten Jahren hat.
Zusammenfassung der Vorlesung
Ausgleichungsrechnung II
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Hartmut Klauck Universität Frankfurt WS 06/
CEF 2001, New Haven Genetic Neural Fuzzy Explorer GENEFER Konzeption, Technologien und Einsatzmöglichkeiten Eric Ringhut Muenster Institute for Computational.
Qualitätsmanagement in der Entwicklung !?. artiso solutions GmbH | Oberer Wiesenweg 25 | Blaustein | Agenda 1. Ziele und Probleme.
Verbundprojekt OUTSHORE Studie und Methodikentwicklung zur Beurteilung der Erfolgsfaktoren bei der Vergabe von Softwareprojekten an Niedriglohnländer.
Modellbildung und Simulation
Technische Informatik II
Arbeitsbereich „Rechnernetze und verteilte Systeme“
Informatik III Christian Schindelhauer Wintersemester 2006/07
Christian Schindelhauer Wintersemester 2006/07 3. Vorlesung
Christian Schindelhauer Wintersemester 2006/07 2. Vorlesung
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
1 Computergestützte Verifikation Binary Decision Diagrams (BDD) Inhalt: Die Datenstruktur BDD Operationen auf BDD CTL Model.
Modellbasierte Software- Entwicklung eingebetteter Systeme Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität und Fraunhofer.
Modellbasierte Software- Entwicklung eingebetteter Systeme Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität und Fraunhofer.
Inhalt Einordnung und Funktion der lexikalische Analyse Grundlagen
Modellbasierte Software- Entwicklung eingebetteter Systeme Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität und Fraunhofer.
 Präsentation transkript:

Daniel Neumann dneumann@informatik.hu-berlin.de Seminar Systementwurf Wintersemester 2006/07 Zustandsautomaten/ Kripke-Strukturen Daniel Neumann dneumann@informatik.hu-berlin.de Berlin, 06. November 2006

Überblick über den Vortrag Motivation: Warum Verifizieren von Software? Beispiele Verifikationsmethoden Model Checking Exkurs Nebenläufige Systeme Kripke-Struktur

Motivation Pentium-Bug: 480 Millionen US$ Kosten Ende 1993 Einführung des Pentium Umfangreiches Marketing für Markenname Pentium Oktober 1994 Prof. Thomas Nicely: FPU fehlerhaft Lösung: größere Sorgfalt vor der Fertigung im Systementwurf Nicely an Lynchburg College, Virginia, berechnete im Juli 1993 Reziproke von großen Primzahlen und entdeckte Unstimmigkeiten bei den Ergebnissen und konnte nach Ausschluß aller anderen Felerquellen (zB Abschalten der FPU) nur die FPU, genauer der Befehl FDIV, als Fehlerquelle feststellen

Motivation Ariane 5-Bug: 1,7Mia DM (500Mio US$) Kosten 4.Juni 1996 Fehlgeschlagener Erstflug Software teilweise aus Ariane 4 Nicht genug an neuen Raketentyp angepasst Pufferüberlauf bei Variable im Lenksystem durch Konvertierung von 64bit float in 16bit integer Lösung: Exception-Handling Trägheitsnavigationssystem ungeprüft und identisch von Ariane 4 übernommen. Bis 36 Sekunden nach H0(=Start) problemloser Start. Bei Ariane4 wurde diese Konvertierung ebenfalls angewendet, nur hat Ariane5 eine viel höhere Steigrate als der Vorgänger. Durch die andere Flugbahn erreicht die Ausgleichsfunktion im Trägheitssystem einen zu großen Wert, sodaß es bei der Konvertierung zu einem Pufferüberlauf kommt. Da Exception Handling, obwohl Ada dieses vorsieht, nicht implementiert ist, wird der Fehlercode der Ausnahmebedingung als Flugbahndaten vom Steuerrechner gewertet. Die doppelte Auslegung des T-Systems ist umsonst, da sie den selben Fehler aufweist und sich ebenfalls abschaltet. Durch die Flugdaten werden die Steuerdüsen unsinnig gestellt bis die Scherkräfte die Rakete drohen, diese zu zerbrechen. Selbstzerstörung funktionierte zum Glück.

Motivation Mars Climate Orbiter-Verlust: 161Mio US$ Lösung: Oft Kurskorrekturen nötig durch ungleichförmige Bauweise Impulsschübe um Faktor 4,45 zu stark durch Einheitenverwechslung: Schubtabelle gab Werte in Pfund x Sekunden (imperiales System) an Triebwerk wertete diese in Newton x Sekunden (SI-System) Lösung: Einhalten internationaler Standards Verifikation des Verhaltens des Systems Erfahrenes Team 4 Kurskorrekturen während des 9-monatigen Hinflugs. Die lag an dem großen einseitigen Sonnensegel, das durch den Sonnenwind zusätzlichen Drall erhielt. Durch Aerobraking an der Mars-Atmosphäre sollte erst eine elliptische, dann eine kreisförmige Bahn um den Mars erreicht werden. Nach dem 1. Umrunden der Marsschattens meldete sich die Sonde aber nicht mehr: Sie war verglüht oder wie ein Stein auf dem Wasser abgeprallt. Statt der angepeilten 140-155km Höhe lag der marsnächste Punkt bei 57km Höhe, maximal wären 85km möglich.

Verifikationsmethoden Entspricht Realisierung der Modellspezifikation? 4 Methoden: Test Simulation Formaler Beweis Model Checking Testen ist sehr zeitaufwändig und einzelne Problemstellungen können nicht überprüft werden (Ariane5). Simulation ist preiswerter, nur kann man nicht alle Umwelteinflüsse abbilden. Somit bei beiden immer Fälle ,die nicht betrachtet werden. Methoden, um zu beweisen, dass eine Spezifikation sich tatsächlich so verhält wie gefordert. Formaler Beweis zu zeitaufwändig (bei größeren Projekten). Somit bleibt Model Checking:

Model Checking Idee: Abstrahieren der zu realisierenden Hard-/Software in Modell Problemstellung in ein einfaches, leicht verständliches Modell übernehmen Zusammen mit zugrunde liegender Variablenbelegung einem Model Checker übergeben Korrektheit bequem ausrechnen lassen Meist reaktives System Interaktion mit Umgebung, oft nicht terminierend Nicht Ein-/Ausgänge, sondern Zustände des Systems modellieren

Model Checking Vorteile: Automatisierte Überprüfung auch komplexer Systeme (durch Computerprogramme) Durch Simulation bzw. Test nicht (zu diesen Kosten) möglich Zustände jederzeit bekannt Fehlerpfad = Ursache bei Fehler Effizienter Entwicklungsprozess durch optimierte Fehleranalyse

Model Checking – Der Prozess Modellierung Spezifikation Verifikation Abstraktion zum Ausschluss irrelevanter und unwichtiger Details Beschreibung des Modells Logische Formel

Model Checking – Der Prozess (2) Modellierung Spezifikation Verifikation Verhalten, welches das System erfüllen muss Binary Decision Diagrams BDD, basierend auf boolescher Logik Kripke-Struktur, basierend auf temporaler Logik Model Checking = nur die Spezifizierung, die auf ein System angewendet wird, wird auf Korrektheit überprüft – nicht das System selbst Vollständigkeit der Spezifikation?

Model Checking – Der Prozess (3) Modellierung Spezifikation Verifikation Idealerweise vollkommen automatisch von Model Checker Software Praxis: Überprüfung der Ergebnisse Negative result: Fehler im Modell False negative: inkorrekte Modellierung bzw. Spezifikation Fehlerpfad = Eigenschaften im System zum Zeitpunkt des Fehlers Keine Terminierung möglich, wenn Modell zu umfangreich (für Computerspeicher) Weitere Abstraktion nötig

Kripke-Strukturen Temporale Logik Modellierung des Systems unter Berücksichtigung der Verhaltensänderung über die Zeit Einsatz bei Spezifikation nebenläufiger Systeme z.B. Reaktive Systeme (a-)synchrone Schaltungen Betriebssysteme

Exkurs Nebenläufige Systeme Gleichzeitig arbeitende Komponenten, miteinander kommunizierend Unterscheidung in Art der Ausführung Synchron: alle Komponenten führen Arbeitsschritt zu einem gegebenen Zeitpunkt aus Asynchron: zu gegebenem Zeitpunkt führt nur eine Komponente einen Arbeitsschritt aus und Kommunikation Gemeinsame Variablen, lesender und schreibender Zugriff Austausch von Nachrichten über Queues Handshaking-Protokolle

Kripke-Strukturen - Aufbau M=(S,S0,R,L) ist eine totale Transitionsrelation (für jeden Zustand s S existiert ein Folgezustand s‘ in S mit R(s,s‘)) ist eine Beschriftungsfunktion, die jeden Zustand auf eine Menge A von atomaren Aussagen (=Eigenschaften) abbildet

Kripke-Strukturen – Aufbau (2) KS schaltet und Beschriftungsfunktion L nimmt Änderungen im System in Abhängigkeit der Belegung des aktuellen Zustands vor Granularität der Transitionen beachten Zu grob, fehlen Transitionen, die in Praxis eintreten Zu fein, existieren Transitionen, die in Praxis nie eintreten Pfad Sequenz von (durch Transitionen vorgegebenen) Zuständen Π = s1s2s3… mit si S

Kripke-Struktur <> Endlicher Automat M=(S,S0,R,L) S – Menge von Zuständen S0 – Menge von Startzuständen R – Transitionsrelation L – Beschriftungs-Funktion M=(S,∑,R,S0,E) S – Menge von Zuständen ∑ - Eingabealphabet R – Transitionsrelation S0 – (Menge von) Startzuständen E - Endzustände

Kripke-Struktur - Beispiel System berechnet x:=(x+y) mod 2; x,y D={0,1} und startet bei x=1, y=1 S0(x,y) ≡ x=1 ∧ y=1 R(x,y,x‘,y‘) ≡ x‘=(x+y) mod 2 ∧ y‘=y Spezifikation als Kripke-Struktur M=(S, S0,R,L) S=D x D S0={(1,1)} R={((1,1),(0,1)), ((0,1),(1,1)), ((1,0),(1,0)), ((0,0),(0,0))} L((1,1))={x=1,y=1}, L((0,1))={x=0,y=1}, L((1,0))={x=1,y=0}, L((0,0))={x=0,y=0} Einziger Pfad (1,1)(0,1)(1,1)(0,1)… ist die einzige Berechnung des Systems

Kripke-Struktur – Beispiel 2 KS M = (S, S0, R, L) mit S={s0, s1} s0 ist Startzustand R ={(s0,s1), (s1,s0)} L(s0)= {Licht_aus} L(s1)= {Licht_an} Zu verifizierende Spezifikation: EF (Licht_an) (Licht_an) entlang ≥ Pfad erfüllt Siehe CTL

Kripke-Struktur – Beispiel 2 S(Licht_an)={s1} Menge der Zustände, bei denen „das Licht ist an“ wahr ist S(EF(Licht_an))={s0,s1} Menge der Zustände, bei denen „das Licht ist an“ auf irgendeinem Pfad in einem zukünftigen Zustand wahr ist S0 in S(EF(Licht_an)), somit trifft Spezifikation auf das System zu

Literatur Clarke, E. M. et al.: Model Checking. Cambridge, London: MIT Press, 2001 Thomas Jegust: Seminar Logik in der Informatik, 10.2003. Internet: http://www.uni-koblenz.de/~peter/LogikInformatik-WS0304/ausarbeitungen/Jegust.pdf [01.11.2006] Köbler, J.: Theoretische Informatik II, Vorlesungsskript, 22.01.2001. Martin Glinz: Fallstudie Ariane Flug 501, 1998. Internet: http://www2.informatik.uni-jena.de/~nez/rechnerarithmetik/Ariane/fallstudie_ariane_501.pdf [05.11.2006]