Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Formale Techniken Eduard Sauerbrei

Ähnliche Präsentationen


Präsentation zum Thema: "WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Formale Techniken Eduard Sauerbrei"—  Präsentation transkript:

1 WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Formale Techniken Eduard Sauerbrei

2 2 WIRTSCHAFTS INFORMATIKAgenda Motivation Verifikation ­ Hoare-Kalkül ­ Model Checking ­ Bounded Model Checking Symbolischer Test Zusammenfassung

3 3 WIRTSCHAFTS INFORMATIKMotivation Anteil der SW-Kosten höher als der HW-Kosten. Längere Lebensdauer der Software (SW). SW-Kosten hoch in der Wartungsphase, insb. durch die Fehlerbehebung. Kosten im Falle von SW-Versagen (HW-Verlust, Schadensersatzansprüche etc.). SW soll wenige Fehler beinhalten oder gar fehlerfrei sein formale Techniken zum Beweis von Korrektheit der SW

4 4 WIRTSCHAFTS INFORMATIK Korrektheit der SW Partielle Korrektheit ­ Programm liefert das richtige Ergebnis ­ Annahme: Programm terminiert Totale Korrektheit ­ Programm partiell korrekt ­ Beweis: Programm terminiert (Terminationsbeweis)

5 5 WIRTSCHAFTS INFORMATIK Formale Techniken (Einordnung)

6 6 WIRTSCHAFTS INFORMATIK Formale Techniken (Eigenschaften) Programmcode enthält alle wichtigen Informationen. Wirkungen von Programmen auf hohem Abstraktionsniveau mit mathematischen Mitteln ermittelt keine Ausführung einer Programminstanz Verzicht auf stichprobenartige Tests

7 7 WIRTSCHAFTS INFORMATIKVerifikation Ziel: Beweis der Konsistenz zw. der Spezifikation und Implementierung Spezifikation beschreibt formal die geforderten Eigenschaften des Programms formal: ­ temporallogische Ausdrücke (Bounded Model Checking) ­ Ein-/ Ausgangszusicherungen (Hoare-Kalkül) Außerdem notwendig: formal spezifizierte Semantik der Programmiersprache

8 8 WIRTSCHAFTS INFORMATIK Hoare-Kalkül (Allgemein) Halb-automatisches Verifikationsverfahren Programm: Sequenz von Zuständen und Pfaden Zustände: als Variablenwerte repräsentiert Gültige logische Aussagen in Bezug auf Variablen als Zusicherungen (assertions) bezeichnet Spezifikation des Programms: Eingangs- und Ausgangszusicherung des Programms {Q} S {R}

9 9 WIRTSCHAFTS INFORMATIKZusicherungen Vor der Ausführung einer Anweisung S gilt die Vorbedingung Q Nach der Ausführung von S gilt die Nachbedingung R boolsche Ausdrücke (Prädikatenlogik) über Variablenwerte (Zustände) des Programms Allquantor und Existenzquantor

10 10 WIRTSCHAFTS INFORMATIK Semantik / Beweisregeln WHILE-Sprache mit folgenden Konstrukten ­ Arithmetische Ausdrücke ­ Boolsche Ausdrücke ­ Programmanweisungen (Zuweisung, skip-, if-, while-Konstrukte) Axiomatische Semantik 6 Beweisregeln

11 11 WIRTSCHAFTS INFORMATIK Zuweisungsaxiom (A1) gegeben: Nachbedingung R gesucht: passende Vorbedingung R A x Vorgehen: alle Vorkommen von x in R durch A zu ersetzen

12 12 WIRTSCHAFTS INFORMATIK IF-Regel (A2) gegeben: ­ zwei Programmstücke S 1, S 2 ­ Q, R und Bedingung B Falls im Zähler in angegebener Form Zusammenfassung zum Nenner möglich

13 13 WIRTSCHAFTS INFORMATIK Konsequenzregel (A3, A4) gegeben: ­ Programmanweisung S ­ Q und R Q kann durch schärfere Vorbedingung Q ersetzt werden (A3) R kann durch schwächere Nachbedingung R ersetzt werden (A4)

14 14 WIRTSCHAFTS INFORMATIK Sequenzregel (A5) gegeben: ­ Programmanweisungen S 1, S 2 ­ Q ist Nachbedingung von S 1 und Vorbedingung von S 2 S 1 und S 2 können als Sequenz geschrieben werden ohne die Bedingung Q

15 15 WIRTSCHAFTS INFORMATIK WHILE- Regel (A6) gegeben: ­ Schleifeninvariante P und Bedingung B S wird solange wiederholt, bis die B nicht mehr erfüllt ist

16 16 WIRTSCHAFTS INFORMATIKSchleifeninvariante Zusicherung an der Schnittstelle einer Schleife Ergibt unabhängig von der Anzahl der Schleifendurchläufe immer eine wahre Aussage Gilt vor und nach der Ausführung der Schleife Geeignete Invariante kann nicht automatisch gefunden werden. Wird Meistens aus der Nachbedingung abgeleitet. Richtige Invariante? Beweis durch vollständige Induktion

17 17 WIRTSCHAFTS INFORMATIKBeispiel {x > 0 y > 0} z := 0; n := x; while n > 0 do begin z := z + y; n := n – 1; end; {(z = x * y) (n = 0) (y > 0)} Programm zur Multiplikation von zwei positiven ganzen Zahlen Schleifeninvariante: ( z + ny = xy) (n >= 0) (y > 0).

18 18 WIRTSCHAFTS INFORMATIKBeispiel {x > 0 y > 0} z := 0; n := x; {(z + ny = xy) (n >= 0) (y > 0)} while n > 0 do begin z := z + y; n := n – 1; end; {(z = x * y) (n = 0) (y > 0)} Programm zur Multiplikation von zwei positiven ganzen Zahlen Schleifeninvariante: ( z + ny = xy) (n >= 0) (y > 0).

19 19 WIRTSCHAFTS INFORMATIKBeispiel Q {x > 0 y > 0} z := 0; n := x; {(z + ny = xy) (n >= 0) (y > 0)} while n > 0 do begin z := z + y; n := n – 1; end; R{(z = x * y) (n = 0) (y > 0)} Herleitung der Eingangszusicherung Q aus der Ausgangszusicherung R durch Anwendung der Regeln partielle Korrektheit bewiesen.

20 20 WIRTSCHAFTS INFORMATIKBeispiel Q {x > 0 y > 0} z := 0; n := x; Inv{(z + ny = xy) (n >= 0) (y > 0)}

21 21 WIRTSCHAFTS INFORMATIKBeispiel Q {x > 0 y > 0} z := 0; (A1) n := x; Inv {(z + ny = xy) (n >= 0) (y > 0)}

22 22 WIRTSCHAFTS INFORMATIKBeispiel Q {x > 0 y > 0} z := 0; {(z + xy = xy) (x >= 0) (y > 0)} (A1) n := x; Inv {(z + ny = xy) (n >= 0) (y > 0)}

23 23 WIRTSCHAFTS INFORMATIKBeispiel Q {x > 0 y > 0} (A1) z := 0; {(z + xy = xy) (x >= 0) (y > 0)} (A1) n := x; Inv {(z + ny = xy) (n >= 0) (y > 0)}

24 24 WIRTSCHAFTS INFORMATIKBeispiel Q {x > 0 y > 0} {(0 + xy = xy) (x >= 0) (y > 0)} (A1) z := 0; {(z + xy = xy) (x >= 0) (y > 0)} (A1) n := x; Inv {(z + ny = xy) (n >= 0) (y > 0)}

25 25 WIRTSCHAFTS INFORMATIKBeispiel Q {x > 0 y > 0} {(0 + xy = xy) (x > 0) (x = 0) (y > 0)} {(0 + xy = xy) (x >= 0) (y > 0)} (A1) z := 0; {(z + xy = xy) (x >= 0) (y > 0)} (A1) n := x; Inv {(z + ny = xy) (n >= 0) (y > 0)}

26 26 WIRTSCHAFTS INFORMATIKBeispiel Q {x > 0 y > 0} (A3) {(0 + xy = xy) (x > 0) (x = 0) (y > 0)} {(0 + xy = xy) (x >= 0) (y > 0)} (A1) z := 0; {(z + xy = xy) (x >= 0) (y > 0)} (A1) n := x; Inv {(z + ny = xy) (n >= 0) (y > 0)}

27 27 WIRTSCHAFTS INFORMATIKBeispiel Q {x > 0 y > 0} {(0 + xy = xy) (x > 0) (y > 0)} (A3). {(0 + xy = xy) (x > 0) (x = 0) (y > 0)} {(0 + xy = xy) (x >= 0) (y > 0)} (A1) z := 0; {(z + xy = xy) (x >= 0) (y > 0)} (A1) n := x; Inv{(z + ny = xy) (n >= 0) (y > 0)} Damit das obere Teil des Programms (rückwärts) bewiesen

28 28 WIRTSCHAFTS INFORMATIKBeispiel Bei der Ausführung des Schleifenrumpfes, d.h. B gilt: Inv{(z + ny = xy) (n >= 0) (y > 0)} while n > 0 do begin B=(n>0){(z + ny = xy) (n > 0) (y > 0)} z := z + y; n := n – 1; (A1, A5){(z+y + (n-1)y = xy) (n-1 > 0) (y > 0)} wg. n-1{(z + ny = xy) (n >= 0) (y > 0)} = Inv!

29 29 WIRTSCHAFTS INFORMATIKBeispiel Wenn die Schleifenbedingung B nicht gilt: Inv{(z + ny = xy) (n >= 0) (y > 0)} while n > 0 do begin... end; {(z + ny = xy) (n >= 0) (n >0) (y > 0)} R{(z = x * y) (n = 0) (y > 0)} Damit der untere Teil des Programms, sowie die partielle Korrektheit des gesamten Programms bewiesen.

30 30 WIRTSCHAFTS INFORMATIK Terminationsfunktion t Notwendig, um beweisen zu können, dass die Schleife terminiert (totale Korrektheit) Wird jedem Schleifendurchlauf zugeordnet Wertbereich: ganzzahlige nicht-negative Zahlen Mit jedem Schleifendurchlauf sollte der Wert kleiner werden streng monoton fallende Folge Schleife terminiert Für obiges Beispiel t = n Schleife terminiert Programm total korrekt!

31 31 WIRTSCHAFTS INFORMATIK Bounded Model Checking (Allgemein 1/2) BMC ist ein automatisches Verifikationsverfahren Verifikation von zustandsbasierten nebenläufigen Systemen Für reaktive Systeme verwendet, welche nicht terminieren z.B. Kommunikationsprotokolle, Betriebssysteme auch für eingebettete Systeme Systemverhalten durch Zustände beschrieben Zustände als Bitfolge dargestellt Zustände und Zustandsübergänge als Kripke-Strukturen beschrieben und als gerichteter Graph modelliert

32 32 WIRTSCHAFTS INFORMATIK Bounded Model Checking (Allgemein 2/2) Idee: nur endlich lange Pfade betrachten und daraus das Verhalten des Systems bei unendlich langen Pfaden schließen Vorgehen: entlang der Pfade im Baum überprüfen, ob die Eigenschaft erfüllt wird. Ergebnis des Verfahrens: ­ gezeigt, dass die Eigenschaften (logische Formeln) erfüllt werden, oder ­ Gegenbeispiel Verbesserung der Systems

33 33 WIRTSCHAFTS INFORMATIKKripke-Modell Quintupel M= M = (S, I, T, A, l )

34 34 WIRTSCHAFTS INFORMATIK Beispiel: Kripke-Modell

35 35 WIRTSCHAFTS INFORMATIK Temporallogische Ausdrücke Bilden die Spezifikation, d.h. gewünschte Eigenschaften als temporallogische Ausdrücke angegeben Temporallogik ist um die Temporaloperatoren (TO) erweiterte Aussagenlogik TO erlauben Aussagen über zukünftiges Verhalten des Systems Verschiedene zeitliche Modelle liegen zugrunde: ­ Verzweigte Zeit: Computation Tree Logic ­ Lineare Zeit: Linear Temporal Logic (LTL)

36 36 WIRTSCHAFTS INFORMATIKLTL-Operatoren Bilden die Spezifikation Temporallogische Aussagen werden in aussagenlogische übersetzt Entscheidbarkeitsproblem der Aussagenlogik

37 37 WIRTSCHAFTS INFORMATIKSAT-Tools Vorteil der Übersetzung in aussagenlogisches Problem: schnelle und effiziente Prüfung durch SAT-Tools SAT-Verfahren bilden Variationen des Davis-Putman- Algorithmus

38 38 WIRTSCHAFTS INFORMATIK Symbolischer Test (1/3) Symbolische Ausführung eines Programms Variablen des Programms statt konkreter mit symbolischen Werten versehen Anschließend Ausführung durch einen Interpreter künstliche Umgebung es werden Wertbereiche abgedeckt kein Stichprobencharakter Aber: es wird kein mathematischer Korrektheitsbeweis erbracht

39 39 WIRTSCHAFTS INFORMATIK Symbolischer Test (2/3) Ergebnis der Ausführung: Baum von Anweisungen (symbolischer Ausführungsbaum) Wurzel: Programmbeginn Blätter: ­ Pfadbedingung (logische Ausdrücke) ­ symbolischer Wert der Ausgabevariablen Pfadbedingung: gibt an, wie die Eingaben sein müssen, um den Wert der Ausgabevariablen zu bekommen

40 40 WIRTSCHAFTS INFORMATIK Symbolischer Test (3/3) Bedingungen für den ST: ­ Kleine Anzahl von Pfaden (keine Schleifen mit Abbruchbedingung im Schleifenkörper) ­ Vermeidung von bestimmten Datenstrukturen, z.B. Fließpunktdatentypen Korrektheit gezeigt bei ­ Überdeckung zw. Eingabebereich und Pfadbedingungen sowie ­ Übereinstimmung zw. Ergebnisausdrücken und Spezifikation

41 41 WIRTSCHAFTS INFORMATIK Zusammenfassung (1) Hoare-Kalkül: ­ Problematisch neben Schleifen sind die Rekursionen vollständige Induktion ­ Höherer Aufwand bei umfangreichen und komplexen Programmen Beweis manchmal unmöglich ­ Kein Verzicht auf konventionelles Testen z.B. Gleitpunktarithmetik ­ Halb-automatisch (Invarianten, Beweise) viele Werkzeuge ­ Menschlicher Irrtum beim Beweis Verifikation kann Fehler beinhalten

42 42 WIRTSCHAFTS INFORMATIK Zusammenfassung (2) BMC: ­ Nicht Terminierung, sondern Erfüllung von best. Eigenschaften im Vordergrund (Lebendigkeit, Sicherheit) keine totale Korrektheit ­ Partielle Korrektheit mit vollständiger Sicherheit nicht beweisbar Schließen von nicht-terminierenden auf terminierende Systeme ­ Schneller als z.B. das Symbolic Model Checking ­ Automatisches Verfahren Werkzeugunterstützung gegeben (SATO, PROVE) Symbolischer Test ­ Kein Korrektheitsbeweis nur Fehleraufdeckung ­ Eingabebereiche überprüft größere Leistungsfähigkeit im Ggs. zu konventionellen Tests ­ Maschineneigenschaften nicht berücksichtigt z.B. Fließpunktzahlen ­ Kein Verzicht auf konventionelle Tests ­ Einsatz als Testdatengenerator

43 43 WIRTSCHAFTS INFORMATIK Zusammenfassung (3) höhere Sicherheit bzgl. der Fehlerfreiheit ggü. den konventionellen Testverfahren Bei alle Verfahren Compilerfehler möglich damit vollständige Fehlerfreiheit der SW durch alleinige Anwendung nicht erreichbar für sicherheits- und funktionskritische Bereiche


Herunterladen ppt "WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Formale Techniken Eduard Sauerbrei"

Ähnliche Präsentationen


Google-Anzeigen