wirtschaftsinformatik westfälische wilhelms-universität münster wirtschafts informatik formale...
TRANSCRIPT
WIR
TS
CH
AF
TS
INF
OR
MA
TIK
WestfälischeWilhelms-Universität Münster
WIRTSCHAFTSINFORMATIK
Formale TechnikenFormale Techniken
Eduard Sauerbrei
2
WIRTSCHAFTSINFORMATIK
AgendaAgenda
Motivation
Verifikation
Hoare-Kalkül
Model Checking
Bounded Model Checking
Symbolischer Test
Zusammenfassung
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
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)
5
WIRTSCHAFTSINFORMATIK
Formale Techniken (Einordnung)Formale Techniken (Einordnung)
Formale Techniken
analytischeQualitätssicherungsverfahren
testendeVerfahren
verifizierendeVerfahren
(Verifikation)
analysierendeVerfahren
Hoare-Kalkülsymbolischer
TestBounded Model
Checking
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
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
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
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
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
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
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
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
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
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
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
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).
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).
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.
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)}
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)}
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)}
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)}
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)}
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)}
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)}
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
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!
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.
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!
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
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
33
WIRTSCHAFTSINFORMATIK
Kripke-ModellKripke-Modell
Quintupel M= M = (S, I, T, A, l )
Formale Techniken
Hoare-Kalkülsymbolischer
TestBounded Model
Checking
34
WIRTSCHAFTSINFORMATIK
Beispiel: Kripke-ModellBeispiel: Kripke-Modell
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)
36
WIRTSCHAFTSINFORMATIK
LTL-OperatorenLTL-OperatorenFormale Techniken
Hoare-Kalkülsymbolischer
TestBounded Model
Checking
Bilden die Spezifikation
Temporallogische Aussagen werden in aussagenlogische übersetzt Entscheidbarkeitsproblem der Aussagenlogik
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
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
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
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
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
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
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