43
WIRTSCHAFTSINFORMATIK Westfälische Wilhelms- Universität Münster WIRTSCHAFTS INFORMATIK Formale Techniken Formale Techniken Eduard Sauerbrei [email protected]

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

Embed Size (px)

Citation preview

Page 1: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Formale Techniken Eduard Sauerbrei eddie@uni-muenster.de

WIR

TS

CH

AF

TS

INF

OR

MA

TIK

WestfälischeWilhelms-Universität Münster

WIRTSCHAFTSINFORMATIK

Formale TechnikenFormale Techniken

Eduard Sauerbrei

[email protected]

Page 2: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Formale Techniken Eduard Sauerbrei eddie@uni-muenster.de

2

WIRTSCHAFTSINFORMATIK

AgendaAgenda

Motivation

Verifikation

Hoare-Kalkül

Model Checking

Bounded Model Checking

Symbolischer Test

Zusammenfassung

Page 3: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Formale Techniken Eduard Sauerbrei eddie@uni-muenster.de

3

WIRTSCHAFTSINFORMATIK

MotivationMotivation

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

Page 4: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Formale Techniken Eduard Sauerbrei eddie@uni-muenster.de

4

WIRTSCHAFTSINFORMATIK

Korrektheit der SWKorrektheit der SW

Partielle Korrektheit

Programm liefert das richtige Ergebnis

Annahme: Programm terminiert

Totale Korrektheit

Programm partiell korrekt

Beweis: Programm terminiert (Terminationsbeweis)

Page 5: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Formale Techniken Eduard Sauerbrei eddie@uni-muenster.de

5

WIRTSCHAFTSINFORMATIK

Formale Techniken (Einordnung)Formale Techniken (Einordnung)

Formale Techniken

analytischeQualitätssicherungsverfahren

testendeVerfahren

verifizierendeVerfahren

(Verifikation)

analysierendeVerfahren

Hoare-Kalkülsymbolischer

TestBounded Model

Checking

Page 6: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Formale Techniken Eduard Sauerbrei eddie@uni-muenster.de

6

WIRTSCHAFTSINFORMATIK

Formale Techniken (Eigenschaften)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

Page 7: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Formale Techniken Eduard Sauerbrei eddie@uni-muenster.de

7

WIRTSCHAFTSINFORMATIK

VerifikationVerifikation

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

Page 8: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Formale Techniken Eduard Sauerbrei eddie@uni-muenster.de

8

WIRTSCHAFTSINFORMATIK

Hoare-Kalkül (Allgemein)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}

Formale Techniken

Hoare-Kalkülsymbolischer

TestBounded Model

Checking

Page 9: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Formale Techniken Eduard Sauerbrei eddie@uni-muenster.de

9

WIRTSCHAFTSINFORMATIK

ZusicherungenZusicherungen

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

Formale Techniken

Hoare-Kalkülsymbolischer

TestBounded Model

Checking

Page 10: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Formale Techniken Eduard Sauerbrei eddie@uni-muenster.de

10

WIRTSCHAFTSINFORMATIK

Semantik / BeweisregelnSemantik / Beweisregeln

WHILE-Sprache mit folgenden Konstrukten

Arithmetische Ausdrücke

Boolsche Ausdrücke

Programmanweisungen (Zuweisung, skip-, if-, while-Konstrukte)

Axiomatische Semantik

6 Beweisregeln

Formale Techniken

Hoare-Kalkülsymbolischer

TestBounded Model

Checking

Page 11: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Formale Techniken Eduard Sauerbrei eddie@uni-muenster.de

11

WIRTSCHAFTSINFORMATIK

Zuweisungsaxiom (A1)Zuweisungsaxiom (A1)

Formale Techniken

Hoare-Kalkülsymbolischer

TestBounded Model

Checking

gegeben: Nachbedingung R

gesucht: passende Vorbedingung RAx

Vorgehen: alle Vorkommen von x in R durch A zu

ersetzen

}{:}{ RAxR xA

Page 12: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Formale Techniken Eduard Sauerbrei eddie@uni-muenster.de

12

WIRTSCHAFTSINFORMATIK

IF-Regel (A2)IF-Regel (A2)Formale Techniken

Hoare-Kalkülsymbolischer

TestBounded Model

Checking

gegeben:

zwei Programmstücke S1, S2

Q, R und Bedingung B

Falls im Zähler in angegebener Form

Zusammenfassung zum Nenner möglich

}{}{

}{}{},{}{

21

21

RSelseSthenBifQ

RSBQRSBQ

Page 13: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Formale Techniken Eduard Sauerbrei eddie@uni-muenster.de

13

WIRTSCHAFTSINFORMATIK

Konsequenzregel (A3, A4)Konsequenzregel (A3, A4)Formale Techniken

Hoare-Kalkülsymbolischer

TestBounded Model

Checking

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)

}{}{

'},'{}'{,'

RSQ

RRRSQQQ

Page 14: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Formale Techniken Eduard Sauerbrei eddie@uni-muenster.de

14

WIRTSCHAFTSINFORMATIK

Sequenzregel (A5)Sequenzregel (A5)Formale Techniken

Hoare-Kalkülsymbolischer

TestBounded Model

Checking

gegeben:

Programmanweisungen S1, S2

Q‘ ist Nachbedingung von S1 und Vorbedingung von S2

S1 und S2 können als Sequenz geschrieben werden ohne

die Bedingung Q‘

}{,}{

}{}'{},'{}{

21

21

RSSQ

RSQQSQ

Page 15: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Formale Techniken Eduard Sauerbrei eddie@uni-muenster.de

15

WIRTSCHAFTSINFORMATIK

WHILE- Regel (A6)WHILE- Regel (A6)Formale Techniken

Hoare-Kalkülsymbolischer

TestBounded Model

Checking

gegeben:

Schleifeninvariante P und Bedingung B

S wird solange wiederholt, bis die B nicht mehr erfüllt ist

}{}{

}{}{

BPSdoBwhileP

PSBP

Page 16: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Formale Techniken Eduard Sauerbrei eddie@uni-muenster.de

16

WIRTSCHAFTSINFORMATIK

SchleifeninvarianteSchleifeninvarianteFormale Techniken

Hoare-Kalkülsymbolischer

TestBounded Model

Checking

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

Page 17: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Formale Techniken Eduard Sauerbrei eddie@uni-muenster.de

17

WIRTSCHAFTSINFORMATIK

BeispielBeispielFormale Techniken

Hoare-Kalkülsymbolischer

TestBounded Model

Checking

{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).

Page 18: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Formale Techniken Eduard Sauerbrei eddie@uni-muenster.de

18

WIRTSCHAFTSINFORMATIK

BeispielBeispielFormale Techniken

Hoare-Kalkülsymbolischer

TestBounded Model

Checking

{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).

Page 19: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Formale Techniken Eduard Sauerbrei eddie@uni-muenster.de

19

WIRTSCHAFTSINFORMATIK

BeispielBeispielFormale Techniken

Hoare-Kalkülsymbolischer

TestBounded Model

Checking

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.

Page 20: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Formale Techniken Eduard Sauerbrei eddie@uni-muenster.de

20

WIRTSCHAFTSINFORMATIK

BeispielBeispielFormale Techniken

Hoare-Kalkülsymbolischer

TestBounded Model

Checking

Q {x > 0 y > 0}

z := 0;

n := x;

Inv {(z + ny = xy) (n >= 0) (y > 0)}

Page 21: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Formale Techniken Eduard Sauerbrei eddie@uni-muenster.de

21

WIRTSCHAFTSINFORMATIK

Beispiel Beispiel Formale Techniken

Hoare-Kalkülsymbolischer

TestBounded Model

Checking

Q {x > 0 y > 0}

z := 0;

(A1) n := x;

Inv {(z + ny = xy) (n >= 0) (y > 0)}

Page 22: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Formale Techniken Eduard Sauerbrei eddie@uni-muenster.de

22

WIRTSCHAFTSINFORMATIK

BeispielBeispielFormale Techniken

Hoare-Kalkülsymbolischer

TestBounded Model

Checking

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)}

Page 23: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Formale Techniken Eduard Sauerbrei eddie@uni-muenster.de

23

WIRTSCHAFTSINFORMATIK

BeispielBeispielFormale Techniken

Hoare-Kalkülsymbolischer

TestBounded Model

Checking

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)}

Page 24: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Formale Techniken Eduard Sauerbrei eddie@uni-muenster.de

24

WIRTSCHAFTSINFORMATIK

BeispielBeispielFormale Techniken

Hoare-Kalkülsymbolischer

TestBounded Model

Checking

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)}

Page 25: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Formale Techniken Eduard Sauerbrei eddie@uni-muenster.de

25

WIRTSCHAFTSINFORMATIK

BeispielBeispielFormale Techniken

Hoare-Kalkülsymbolischer

TestBounded Model

Checking

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)}

Page 26: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Formale Techniken Eduard Sauerbrei eddie@uni-muenster.de

26

WIRTSCHAFTSINFORMATIK

BeispielBeispielFormale Techniken

Hoare-Kalkülsymbolischer

TestBounded Model

Checking

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)}

Page 27: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Formale Techniken Eduard Sauerbrei eddie@uni-muenster.de

27

WIRTSCHAFTSINFORMATIK

BeispielBeispielFormale Techniken

Hoare-Kalkülsymbolischer

TestBounded Model

Checking

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

Page 28: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Formale Techniken Eduard Sauerbrei eddie@uni-muenster.de

28

WIRTSCHAFTSINFORMATIK

BeispielBeispielFormale Techniken

Hoare-Kalkülsymbolischer

TestBounded Model

Checking

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!

Page 29: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Formale Techniken Eduard Sauerbrei eddie@uni-muenster.de

29

WIRTSCHAFTSINFORMATIK

BeispielBeispielFormale Techniken

Hoare-Kalkülsymbolischer

TestBounded Model

Checking

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.

Page 30: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Formale Techniken Eduard Sauerbrei eddie@uni-muenster.de

30

WIRTSCHAFTSINFORMATIK

Terminationsfunktion tTerminationsfunktion tFormale Techniken

Hoare-Kalkülsymbolischer

TestBounded Model

Checking

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!

Page 31: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Formale Techniken Eduard Sauerbrei eddie@uni-muenster.de

31

WIRTSCHAFTSINFORMATIK

Bounded Model CheckingBounded Model Checking(Allgemein 1/2)(Allgemein 1/2) Formale Techniken

Hoare-Kalkülsymbolischer

TestBounded Model

Checking

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

Page 32: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Formale Techniken Eduard Sauerbrei eddie@uni-muenster.de

32

WIRTSCHAFTSINFORMATIK

Bounded Model CheckingBounded Model Checking(Allgemein 2/2)(Allgemein 2/2) Formale Techniken

Hoare-Kalkülsymbolischer

TestBounded Model

Checking

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

Page 33: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Formale Techniken Eduard Sauerbrei eddie@uni-muenster.de

33

WIRTSCHAFTSINFORMATIK

Kripke-ModellKripke-Modell

Quintupel M= M = (S, I, T, A, l )

Formale Techniken

Hoare-Kalkülsymbolischer

TestBounded Model

Checking

Page 34: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Formale Techniken Eduard Sauerbrei eddie@uni-muenster.de

34

WIRTSCHAFTSINFORMATIK

Beispiel: Kripke-ModellBeispiel: Kripke-Modell

Page 35: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Formale Techniken Eduard Sauerbrei eddie@uni-muenster.de

35

WIRTSCHAFTSINFORMATIK

Temporallogische Temporallogische AusdrückeAusdrücke Formale Techniken

Hoare-Kalkülsymbolischer

TestBounded Model

Checking

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)

Page 36: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Formale Techniken Eduard Sauerbrei eddie@uni-muenster.de

36

WIRTSCHAFTSINFORMATIK

LTL-OperatorenLTL-OperatorenFormale Techniken

Hoare-Kalkülsymbolischer

TestBounded Model

Checking

Bilden die Spezifikation

Temporallogische Aussagen werden in aussagenlogische übersetzt Entscheidbarkeitsproblem der Aussagenlogik

Page 37: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Formale Techniken Eduard Sauerbrei eddie@uni-muenster.de

37

WIRTSCHAFTSINFORMATIK

SAT-ToolsSAT-ToolsFormale Techniken

Hoare-Kalkülsymbolischer

TestBounded Model

Checking

Vorteil der Übersetzung in aussagenlogisches Problem:

schnelle und effiziente Prüfung durch SAT-Tools

SAT-Verfahren bilden Variationen des Davis-Putman-

Algorithmus

Page 38: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Formale Techniken Eduard Sauerbrei eddie@uni-muenster.de

38

WIRTSCHAFTSINFORMATIK

Symbolischer Test (1/3)Symbolischer Test (1/3)Formale Techniken

Hoare-Kalkülsymbolischer

TestBounded Model

Checking

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

Page 39: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Formale Techniken Eduard Sauerbrei eddie@uni-muenster.de

39

WIRTSCHAFTSINFORMATIK

Symbolischer Test (2/3)Symbolischer Test (2/3)Formale Techniken

Hoare-Kalkülsymbolischer

TestBounded Model

Checking

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

Page 40: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Formale Techniken Eduard Sauerbrei eddie@uni-muenster.de

40

WIRTSCHAFTSINFORMATIK

Symbolischer Test (3/3)Symbolischer Test (3/3)Formale Techniken

Hoare-Kalkülsymbolischer

TestBounded Model

Checking

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

Page 41: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Formale Techniken Eduard Sauerbrei eddie@uni-muenster.de

41

WIRTSCHAFTSINFORMATIK

Zusammenfassung (1)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

Page 42: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Formale Techniken Eduard Sauerbrei eddie@uni-muenster.de

42

WIRTSCHAFTSINFORMATIK

Zusammenfassung (2)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

Page 43: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Formale Techniken Eduard Sauerbrei eddie@uni-muenster.de

43

WIRTSCHAFTSINFORMATIK

Zusammenfassung (3)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