Top Banner
Formale Programmverifikation Referentin: Kirsten Hradek
213

Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

Aug 26, 2019

Download

Documents

vuongthu
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

Formale Programmverifikation

Referentin: Kirsten Hradek

Page 2: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

2

Formale Programmverifikation

Page 3: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

2

Formale Programmverifikation

• Einführung/Motivation

Page 4: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

2

Formale Programmverifikation

• Einführung/Motivation

• Softwareverifikation am Beispiel desHoare-Kalküls

Page 5: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

2

Formale Programmverifikation

• Einführung/Motivation

• Softwareverifikation am Beispiel desHoare-Kalküls

• Überblick über verschiedeneVerifikationsmethoden

Page 6: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

2

Formale Programmverifikation

• Einführung/Motivation

• Softwareverifikation am Beispiel desHoare-Kalküls

• Überblick über verschiedeneVerifikationsmethoden

• Rechnerunterstützte Verifikationsmethoden

Page 7: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

2

Formale Programmverifikation

• Einführung/Motivation

• Softwareverifikation am Beispiel desHoare-Kalküls

• Überblick über verschiedeneVerifikationsmethoden

• Rechnerunterstützte Verifikationsmethoden

• Möglichkeiten und Grenzen der SV

Page 8: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

3

Formale Programmverifikation

• Einführung/Motivation

• Softwareverifikation am Beispiel desHoare-Kalküls

• Überblick über verschiedeneVerifikationsmethoden

• Rechnerunterstützte Verifikationsmethoden

• Möglichkeiten und Grenzen der SV

Page 9: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

4

Das Grundproblem:

Page 10: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

4

Das Grundproblem:Qualitätskrise

Page 11: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

4

Das Grundproblem:Qualitätskrise

Software wird zur Benutzung freigegeben, nicht wennsie nachweislich korrekt ist, sondern wenn dieHäufigkeit, mit der neue Fehler entdeckt werden, aufein für die Geschäftsleitung akzeptables Niveaugesunken ist. DAVID L. PARNAS

Page 12: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

4

Das Grundproblem:Qualitätskrise

Software wird zur Benutzung freigegeben, nicht wennsie nachweislich korrekt ist, sondern wenn dieHäufigkeit, mit der neue Fehler entdeckt werden, aufein für die Geschäftsleitung akzeptables Niveaugesunken ist. DAVID L. PARNAS

Jedes sechste DV-Projekt wurde ohne jeglichesErgebnis abgebrochen, alle Projekte überzogen dieZeit- und Kostenrahmen um 100-200% und auf 100ausgelieferte Programmzeilen kommen im Durchschnittdrei Fehler. TOM DE MARCOS

Page 13: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

5

Was bedeutet überhauptProgrammverifikation?

Page 14: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

5

Was bedeutet überhauptProgrammverifikation?

Definition:Programmverifikation ist ein systematischer Ansatzzum Nachweis der Fehlerfreiheit von Programmen.Dabei wird bewiesen, daß ein vorgegebenesProgramm bestimmte wünschenswerteEigenschaften besitzt.

(Apt/Olderog, 1998, 1)

Page 15: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

6

Welche Fehler können auftreten?

Page 16: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

6

Welche Fehler können auftreten?

• Syntaktische Fehler

Page 17: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

6

Welche Fehler können auftreten?

• Syntaktische Fehler

• Semantische Fehler

Page 18: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

7

Programmverifikation zurQualitätssicherung?

Page 19: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

7

Programmverifikation zurQualitätssicherung?

• Einsetzbarkeit in der Praxis?

Page 20: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

7

Programmverifikation zurQualitätssicherung?

• Einsetzbarkeit in der Praxis?

• Effizienz?

Page 21: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

7

Programmverifikation zurQualitätssicherung?

• Einsetzbarkeit in der Praxis?

• Effizienz?

• Aufwand?

Page 22: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

7

Programmverifikation zurQualitätssicherung?

• Einsetzbarkeit in der Praxis?

• Effizienz?

• Aufwand?

• Kosten?

Page 23: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

7

Programmverifikation zurQualitätssicherung?

• Einsetzbarkeit in der Praxis?

• Effizienz?

• Aufwand?

• Kosten?

• Handhabbarkeit?

Page 24: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

7

Programmverifikation zurQualitätssicherung?

• Einsetzbarkeit in der Praxis?

• Effizienz?

• Aufwand?

• Kosten?

• Handhabbarkeit?

• Vorteile gegenüber anderen Methoden?

Page 25: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

8

Programmverifikation?

Page 26: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

9

Formale Programmverifikation

• Einführung/Motivation

• Softwareverifikation am Beispiel desHoare-Kalküls

• Überblick über verschiedeneVerifikationsmethoden

• Rechnerunterstützte Verifikationsmethoden

• Möglichkeiten und Grenzen der SV

Page 27: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

10

Spezifikation

Page 28: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

10

Spezifikation• Präzise Darstellung und Beschreibung der

Eigenschaften, der Verhaltensweisen, desZusammenwirkens und des Aufbaus von(bestehenden oder zu entwickelnden) Modellen,Programmen oder Systemen

Page 29: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

10

Spezifikation• Präzise Darstellung und Beschreibung der

Eigenschaften, der Verhaltensweisen, desZusammenwirkens und des Aufbaus von(bestehenden oder zu entwickelnden) Modellen,Programmen oder Systemen

• Ziele:

Page 30: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

10

Spezifikation• Präzise Darstellung und Beschreibung der

Eigenschaften, der Verhaltensweisen, desZusammenwirkens und des Aufbaus von(bestehenden oder zu entwickelnden) Modellen,Programmen oder Systemen

• Ziele:- klareres Verständnis des Problems, seinerEigenschaften und Lösungen

Page 31: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

10

Spezifikation• Präzise Darstellung und Beschreibung der

Eigenschaften, der Verhaltensweisen, desZusammenwirkens und des Aufbaus von(bestehenden oder zu entwickelnden) Modellen,Programmen oder Systemen

• Ziele:- klareres Verständnis des Problems, seinerEigenschaften und Lösungen- (absolutes) Vergleichsmaß, ob ein System dengewünschten Anforderungen genügt

Page 32: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

10

Spezifikation• Präzise Darstellung und Beschreibung der

Eigenschaften, der Verhaltensweisen, desZusammenwirkens und des Aufbaus von(bestehenden oder zu entwickelnden) Modellen,Programmen oder Systemen

• Ziele:- klareres Verständnis des Problems, seinerEigenschaften und Lösungen- (absolutes) Vergleichsmaß, ob ein System dengewünschten Anforderungen genügt- beschreibt zusätzliche Aspekte wie Zuverlässigkeit,Robustheit, zeitl. Verhalten

Page 33: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

11

Beweisbare Eigenschaften (1):

Page 34: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

11

Beweisbare Eigenschaften (1):

Partielle Korrektheit:Ein Programm heißt partiell korrekt, falls es nacheiner korrekten Eingabe im Falle der Termination miteiner erwarteten Ausgabe endet.

Page 35: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

11

Beweisbare Eigenschaften (1):

Partielle Korrektheit:Ein Programm heißt partiell korrekt, falls es nacheiner korrekten Eingabe im Falle der Termination miteiner erwarteten Ausgabe endet.

Totale Korrektheit:Ein Programm heißt total korrekt, falls es nach einerkorrekten Eingabe terminiert, und zwar mit einererwarteten Ausgabe.

Page 36: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

12

Beweisbare Eigenschaften (2):

Page 37: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

12

Beweisbare Eigenschaften (2):

z.B. Parallele Programme:

Page 38: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

12

Beweisbare Eigenschaften (2):

z.B. Parallele Programme:

• Interferenzfreiheit

Page 39: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

12

Beweisbare Eigenschaften (2):

z.B. Parallele Programme:

• Interferenzfreiheit

• Deadlock-Freiheit

Page 40: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

12

Beweisbare Eigenschaften (2):

z.B. Parallele Programme:

• Interferenzfreiheit

• Deadlock-Freiheit

• Korrektheit unter Fairneß-Annahmen

Page 41: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

12

Beweisbare Eigenschaften (2):

z.B. Parallele Programme:

• Interferenzfreiheit

• Deadlock-Freiheit

• Korrektheit unter Fairneß-Annahmen

• ...

Page 42: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

13

Das Hoaresche Beweissystem

Page 43: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

13

Das Hoaresche Beweissystem

• Hoare, 1969

Page 44: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

13

Das Hoaresche Beweissystem

• Hoare, 1969

• Floyd 1967: Flußdiagramme

Page 45: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

13

Das Hoaresche Beweissystem

• Hoare, 1969

• Floyd 1967: Flußdiagramme

• Grundlage: Prädikatenlogik, induktive

Zusicherungs-Methode

Page 46: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

13

Das Hoaresche Beweissystem

• Hoare, 1969

• Floyd 1967: Flußdiagramme

• Grundlage: Prädikatenlogik, induktive

Zusicherungs-Methode

• WHILE-Programme

Page 47: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

13

Das Hoaresche Beweissystem

• Hoare, 1969

• Floyd 1967: Flußdiagramme

• Grundlage: Prädikatenlogik, induktive

Zusicherungs-Methode

• WHILE-Programme

--> Hoare-Kalkül

Page 48: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

14

Die Sprache:

Page 49: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

14

Die Sprache:

•Leere Anweisung: skip

Page 50: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

14

Die Sprache:

•Leere Anweisung: skip

•Wertzuweisung: u:=t

Page 51: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

14

Die Sprache:

•Leere Anweisung: skip

•Wertzuweisung: u:=t

•sequentielle Komposition: S1;S2

Page 52: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

14

Die Sprache:

•Leere Anweisung: skip

•Wertzuweisung: u:=t

•sequentielle Komposition: S1;S2

•bedingte Anweisung: if B then S1 else S2 fi

Page 53: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

14

Die Sprache:

•Leere Anweisung: skip

•Wertzuweisung: u:=t

•sequentielle Komposition: S1;S2

•bedingte Anweisung: if B then S1 else S2 fi

•Schleife: while B do S1 od

Page 54: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

15

Die Semantik:

Page 55: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

15

Die Semantik:Definition allgemein:Abbildung von Anfangszuständen in Endzustände:

Page 56: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

15

Die Semantik:Definition allgemein:Abbildung von Anfangszuständen in Endzustände:

M’S÷: ✟→ P(✟) Abbildung von Anfangszustä

Page 57: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

15

Die Semantik:Definition allgemein:Abbildung von Anfangszuständen in Endzustände:

M’S÷: ✟→ P(✟) Abbildung von Anfangszustä

Ansätze:

Page 58: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

15

Die Semantik:Definition allgemein:Abbildung von Anfangszuständen in Endzustände:

M’S÷: ✟→ P(✟) Abbildung von Anfangszustä

Ansätze:• Übersetzersemantik (Rückführung auf bekannteProgrammiersprache)

Page 59: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

15

Die Semantik:Definition allgemein:Abbildung von Anfangszuständen in Endzustände:

M’S÷: ✟→ P(✟) Abbildung von Anfangszustä

Ansätze:• Übersetzersemantik (Rückführung auf bekannteProgrammiersprache)• denotationelle Semantik (Darstellung derZustandsänderungen mit Hilfe von Konfigurationen)

Page 60: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

15

Die Semantik:Definition allgemein:Abbildung von Anfangszuständen in Endzustände:

M’S÷: ✟→ P(✟) Abbildung von Anfangszustä

Ansätze:• Übersetzersemantik (Rückführung auf bekannteProgrammiersprache)• denotationelle Semantik (Darstellung derZustandsänderungen mit Hilfe von Konfigurationen)• operationelle Semantik (Darstellung derZustandsänderungen mit Hilfe von semantischen Funktionen)

Page 61: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

15

Die Semantik:Definition allgemein:Abbildung von Anfangszuständen in Endzustände:

M’S÷: ✟→ P(✟) Abbildung von Anfangszustä

Ansätze:• Übersetzersemantik (Rückführung auf bekannteProgrammiersprache)• denotationelle Semantik (Darstellung derZustandsänderungen mit Hilfe von Konfigurationen)• operationelle Semantik (Darstellung derZustandsänderungen mit Hilfe von semantischen Funktionen)• axiomatische Semantik (Darstellung der Auswirkungen vonZustandsänderungen auf die Eigenschaften von Zuständen)

Page 62: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

16

Axiomatischer Ansatz:Hoare-Tripel

Page 63: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

16

Axiomatischer Ansatz:Hoare-Tripel

{p} S {q}

Page 64: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

16

Axiomatischer Ansatz:Hoare-Tripel

{p} S {q}Bedeutung:

Page 65: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

16

Axiomatischer Ansatz:Hoare-Tripel

{p} S {q}Bedeutung:Wenn für das Programm vor der Ausführung derAnweisung S die „Vorbedingung“ p gilt und dieAnweisung terminiert, dann gilt danach die„Nachbedingung“ q.

Page 66: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

16

Axiomatischer Ansatz:Hoare-Tripel

{p} S {q}Bedeutung:Wenn für das Programm vor der Ausführung derAnweisung S die „Vorbedingung“ p gilt und dieAnweisung terminiert, dann gilt danach die„Nachbedingung“ q.

Page 67: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

17

Korrektheit (2)

Page 68: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

17

Korrektheit (2)

{p} S {q} heißt partiell korrekt, wenn jedeterminierende Berechnung von S, die in einem p-Zustand startet, in einem q-Zustand terminiert.

Page 69: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

17

Korrektheit (2)

{p} S {q} heißt partiell korrekt, wenn jedeterminierende Berechnung von S, die in einem p-Zustand startet, in einem q-Zustand terminiert.

{p} S {q} heißt total korrekt, wenn jedeBerechnung von S, die in einem p-Zustandstartet, terminiert und ihren Endzustand q erfüllt.

Page 70: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

18

Korrektheit (3)

Page 71: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

18

Korrektheit (3)Definition:Eine Korrektheitsformel {p} S {q} gilt imSinne der partiellen (bzw. totalen)Korrektheit,~{p} S {q} (bzw. ~tot {p} S {q}),falls M’S÷(’p÷) ` ’q÷bzw

Mtot’S÷ (’p÷) ` ’q÷

Page 72: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

19

Das Hoare-Kalkül (1)

Page 73: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

19

Das Hoare-Kalkül (1)

Beweissystem PD:

Page 74: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

19

Das Hoare-Kalkül (1)

Beweissystem PD:

AXIOM 1: Skip-Anweisung

Page 75: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

19

Das Hoare-Kalkül (1)

Beweissystem PD:

AXIOM 1: Skip-Anweisung

{p} skip {q}

Page 76: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

19

Das Hoare-Kalkül (1)

Beweissystem PD:

AXIOM 1: Skip-Anweisung

{p} skip {q}

AXIOM 2: Wertzuweisung

Page 77: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

19

Das Hoare-Kalkül (1)

Beweissystem PD:

AXIOM 1: Skip-Anweisung

{p} skip {q}

AXIOM 2: Wertzuweisung{p(u:=t)} u:=t {p}

Page 78: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

20

Das Hoare-Kalkül (2)

Page 79: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

20

Das Hoare-Kalkül (2)

REGEL 3: Sequentielle Komposition

Page 80: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

20

Das Hoare-Kalkül (2)

REGEL 3: Sequentielle Komposition

{p} S1 {r}, {r} S2 {q}

Page 81: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

20

Das Hoare-Kalkül (2)

REGEL 3: Sequentielle Komposition

{p} S1 {r}, {r} S2 {q} {p} S1;S2 {q}

Page 82: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

20

Das Hoare-Kalkül (2)

REGEL 3: Sequentielle Komposition

{p} S1 {r}, {r} S2 {q} {p} S1;S2 {q}

REGEL 4: Bedingte Anweisung:

Page 83: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

20

Das Hoare-Kalkül (2)

REGEL 3: Sequentielle Komposition

{p} S1 {r}, {r} S2 {q} {p} S1;S2 {q}

REGEL 4: Bedingte Anweisung:

{p . B} S1 {q},{p . ÕB} S2 {q}

Page 84: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

20

Das Hoare-Kalkül (2)

REGEL 3: Sequentielle Komposition

{p} S1 {r}, {r} S2 {q} {p} S1;S2 {q}

REGEL 4: Bedingte Anweisung:

{p . B} S1 {q},{p . ÕB} S2 {q} {p} if B then S1 else S2 fi {q}

Page 85: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

21

Das Hoare-Kalkül (3)

Page 86: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

21

Das Hoare-Kalkül (3)

REGEL 5: Schleife:

Page 87: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

21

Das Hoare-Kalkül (3)

REGEL 5: Schleife:

_____{p . B} S {p}______

Page 88: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

21

Das Hoare-Kalkül (3)

REGEL 5: Schleife:

_____{p . B} S {p}______{p} while B do S od {p . Õ B}

Page 89: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

21

Das Hoare-Kalkül (3)

REGEL 5: Schleife:

_____{p . B} S {p}______{p} while B do S od {p . Õ B}

REGEL 6: Konsequenzregel:

Page 90: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

21

Das Hoare-Kalkül (3)

REGEL 5: Schleife:

_____{p . B} S {p}______{p} while B do S od {p . Õ B}

REGEL 6: Konsequenzregel:ptp1, {p1} S {q1}, q1tq

Page 91: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

21

Das Hoare-Kalkül (3)

REGEL 5: Schleife:

_____{p . B} S {p}______{p} while B do S od {p . Õ B}

REGEL 6: Konsequenzregel:ptp1, {p1} S {q1}, q1tq {p} S {q}

Page 92: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

22

Beispiele zur Anwendung des Beweissystems PD (1):

Page 93: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

22

Beispiele zur Anwendung des Beweissystems PD (1):

S ≡ x:=x+1; y:=y+1

Page 94: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

23

Beispiele zur Anwendung des Beweissystems PD (2):

Page 95: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

23

Beispiele zur Anwendung des Beweissystems PD (2):

DIV ≡ quo:=0; rem:= x; S0,

Page 96: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

23

Beispiele zur Anwendung des Beweissystems PD (2):

DIV ≡ quo:=0; rem:= x; S0,wobei S0 ≡ while rem ú y do rem:=rem-y; quo:=quo+1 od,

Page 97: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

23

Beispiele zur Anwendung des Beweissystems PD (2):

DIV ≡ quo:=0; rem:= x; S0,wobei S0 ≡ while rem ú y do rem:=rem-y; quo:=quo+1 od,

Page 98: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

24

Page 99: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

25

Das Hoare-Kalkül (4)

Page 100: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

25

Das Hoare-Kalkül (4)Totale Korrektheit:

Page 101: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

25

Das Hoare-Kalkül (4)Totale Korrektheit:

REGEL 7: Schleife II:

Page 102: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

25

Das Hoare-Kalkül (4)Totale Korrektheit:

REGEL 7: Schleife II:{p .B} S {p},

Page 103: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

25

Das Hoare-Kalkül (4)Totale Korrektheit:

REGEL 7: Schleife II:{p .B} S {p},{p .B. t = z} S {t<z},

Page 104: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

25

Das Hoare-Kalkül (4)Totale Korrektheit:

REGEL 7: Schleife II:{p .B} S {p},{p .B. t = z} S {t<z}, p tt m0,_______________

Page 105: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

25

Das Hoare-Kalkül (4)Totale Korrektheit:

REGEL 7: Schleife II:{p .B} S {p},{p .B. t = z} S {t<z}, p tt m0,_______________{p} while B do S od {p .ÕB}

Page 106: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

25

Das Hoare-Kalkül (4)Totale Korrektheit:

REGEL 7: Schleife II:{p .B} S {p},{p .B. t = z} S {t<z}, p tt m0,_______________{p} while B do S od {p .ÕB}

(wobei t int-Ausdruck; z int-Variable, die nicht in p, B, t, Svorkommt)

Page 107: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

26

Das Hoare-Kalkül (5)

Page 108: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

26

Das Hoare-Kalkül (5)

Totale Korrektheit:

Page 109: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

26

Das Hoare-Kalkül (5)

Totale Korrektheit:

Beweissystem TD:

Page 110: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

26

Das Hoare-Kalkül (5)

Totale Korrektheit:

Beweissystem TD:

AXIOME 1,2 und REGELN 3, 4, 6, 7

Page 111: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

27

Beispiele zur Anwendung des Beweissystems PD (3):

DIV ≡ quo:=0; rem:= x; S0,wobei S0 ≡ while rem ú y do rem:=rem-y; quo:=quo+1 od,

Page 112: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

28

Eigenschaften von PD und TD

Page 113: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

28

Eigenschaften von PD und TD

• Korrektheit

Page 114: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

28

Eigenschaften von PD und TD

• Korrektheit

• Vollständigkeit

Page 115: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

29

Systematische Entwicklungkorrekter Programme (1)

Page 116: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

29

Systematische Entwicklungkorrekter Programme (1)

• Dijkstra (19??)

Page 117: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

29

Systematische Entwicklungkorrekter Programme (1)

• Dijkstra (19??)

• Regeln aus den Regeln der Programmverifikation

abgeleitet

z.B. Spezifikation von Problemen in der Form

{p} S {q}

Page 118: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

29

Systematische Entwicklungkorrekter Programme (1)

• Dijkstra (19??)

• Regeln aus den Regeln der Programmverifikation

abgeleitet

z.B. Spezifikation von Problemen in der Form

{p} S {q}

• syst. Entwicklung von Schleifen

S≡T; while B do R od- Schleifeninvariante -

Page 119: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

30

Systematische Entwicklungkorrekter Programme (2)

Page 120: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

30

Systematische Entwicklungkorrekter Programme (2)

Allgemeines Vorgehen:

Page 121: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

30

Systematische Entwicklungkorrekter Programme (2)

Allgemeines Vorgehen:

1. Beschreiben des funktionalen Verhaltens eines

Programmes: formale Spezifikation

Page 122: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

30

Systematische Entwicklungkorrekter Programme (2)

Allgemeines Vorgehen:

1. Beschreiben des funktionalen Verhaltens eines

Programmes: formale Spezifikation

2. Beschreibung der Sicherheitsanforderungen

Page 123: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

30

Systematische Entwicklungkorrekter Programme (2)

Allgemeines Vorgehen:

1. Beschreiben des funktionalen Verhaltens eines

Programmes: formale Spezifikation

2. Beschreibung der Sicherheitsanforderungen

3. Nachweis der Sicherheit und Validierung von

Spezifikationen

Page 124: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

30

Systematische Entwicklungkorrekter Programme (2)

Allgemeines Vorgehen:

1. Beschreiben des funktionalen Verhaltens eines

Programmes: formale Spezifikation

2. Beschreibung der Sicherheitsanforderungen

3. Nachweis der Sicherheit und Validierung von

Spezifikationen

4. Implementierung und deren Verifikation

Page 125: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

31

Formale Programmverifikation

• Einführung/Motivation

• Softwareverifikation am Beispiel desHoare-Kalküls

• Überblick über verschiedeneVerifikationsmethoden

• Rechnerunterstützte Verifikationsmethoden

• Möglichkeiten und Grenzen der SV

Page 126: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

32

Weiterentwicklung des Hoare-Kalküls (1)

Page 127: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

32

Weiterentwicklung des Hoare-Kalküls (1)

AXIOM A1: Invarianz:

Page 128: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

32

Weiterentwicklung des Hoare-Kalküls (1)

AXIOM A1: Invarianz: {p} S {p}

Page 129: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

32

Weiterentwicklung des Hoare-Kalküls (1)

AXIOM A1: Invarianz: {p} S {p}

REGEL A2: Disjunktion:

Page 130: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

32

Weiterentwicklung des Hoare-Kalküls (1)

AXIOM A1: Invarianz: {p} S {p}

REGEL A2: Disjunktion: {p} S {q}, {r} S {q}

Page 131: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

32

Weiterentwicklung des Hoare-Kalküls (1)

AXIOM A1: Invarianz: {p} S {p}

REGEL A2: Disjunktion: {p} S {q}, {r} S {q} {p - r} S {q}

Page 132: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

32

Weiterentwicklung des Hoare-Kalküls (1)

AXIOM A1: Invarianz: {p} S {p}

REGEL A2: Disjunktion: {p} S {q}, {r} S {q} {p - r} S {q}

REGEL A3: ∃ -Einführung:

Page 133: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

32

Weiterentwicklung des Hoare-Kalküls (1)

AXIOM A1: Invarianz: {p} S {p}

REGEL A2: Disjunktion: {p} S {q}, {r} S {q} {p - r} S {q}

REGEL A3: ∃ -Einführung: _{p} S {q}_

Page 134: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

32

Weiterentwicklung des Hoare-Kalküls (1)

AXIOM A1: Invarianz: {p} S {p}

REGEL A2: Disjunktion: {p} S {q}, {r} S {q} {p - r} S {q}

REGEL A3: ∃ -Einführung: _{p} S {q}_ {∃ x: p} S {q}

Page 135: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

32

Weiterentwicklung des Hoare-Kalküls (1)

AXIOM A1: Invarianz: {p} S {p}

REGEL A2: Disjunktion: {p} S {q}, {r} S {q} {p - r} S {q}

REGEL A3: ∃ -Einführung: _{p} S {q}_ {∃ x: p} S {q}

(...)

Page 136: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

33

Weiterentwicklung des Hoare-Kalküls (2)

Page 137: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

33

Weiterentwicklung des Hoare-Kalküls (2)

• andere deterministische Programme

Page 138: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

33

Weiterentwicklung des Hoare-Kalküls (2)

• andere deterministische Programme

• parallele Programme

Page 139: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

33

Weiterentwicklung des Hoare-Kalküls (2)

• andere deterministische Programme

• parallele Programme

• nichtdeterministische Programme

Page 140: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

33

Weiterentwicklung des Hoare-Kalküls (2)

• andere deterministische Programme

• parallele Programme

• nichtdeterministische Programme

• verteilte Programme

Page 141: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

34

Beweissysteme - Ansätze:

Page 142: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

34

Beweissysteme - Ansätze:• Unterschiedliche Semantiken:

Page 143: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

34

Beweissysteme - Ansätze:• Unterschiedliche Semantiken:

Page 144: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

34

Beweissysteme - Ansätze:• Unterschiedliche Semantiken:

Page 145: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

34

Beweissysteme - Ansätze:• Unterschiedliche Semantiken:

• operational

Page 146: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

34

Beweissysteme - Ansätze:• Unterschiedliche Semantiken:

• operational• denotational

Page 147: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

34

Beweissysteme - Ansätze:• Unterschiedliche Semantiken:

• operational• denotational• algebraisch

Page 148: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

34

Beweissysteme - Ansätze:• Unterschiedliche Semantiken:

• operational• denotational• algebraisch• ...

Page 149: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

34

Beweissysteme - Ansätze:• Unterschiedliche Semantiken:

• operational• denotational• algebraisch• ...

• Unterschiedliche Logiken

Page 150: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

34

Beweissysteme - Ansätze:• Unterschiedliche Semantiken:

• operational• denotational• algebraisch• ...

• Unterschiedliche Logiken

• Prädikaten-Logik

Page 151: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

34

Beweissysteme - Ansätze:• Unterschiedliche Semantiken:

• operational• denotational• algebraisch• ...

• Unterschiedliche Logiken

• Prädikaten-Logik• algorithmische Logik

Page 152: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

34

Beweissysteme - Ansätze:• Unterschiedliche Semantiken:

• operational• denotational• algebraisch• ...

• Unterschiedliche Logiken

• Prädikaten-Logik• algorithmische Logik• dynamische Logik

Page 153: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

34

Beweissysteme - Ansätze:• Unterschiedliche Semantiken:

• operational• denotational• algebraisch• ...

• Unterschiedliche Logiken

• Prädikaten-Logik• algorithmische Logik• dynamische Logik• LCF-Logik

Page 154: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

34

Beweissysteme - Ansätze:• Unterschiedliche Semantiken:

• operational• denotational• algebraisch• ...

• Unterschiedliche Logiken

• Prädikaten-Logik• algorithmische Logik• dynamische Logik• LCF-Logik• ...

Page 155: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

34

Beweissysteme - Ansätze:• Unterschiedliche Semantiken:

• operational• denotational• algebraisch• ...

• Unterschiedliche Logiken

• Prädikaten-Logik• algorithmische Logik• dynamische Logik• LCF-Logik• ...

• Rechnerunterstützte Verifikationsmethoden

Page 156: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

34

Beweissysteme - Ansätze:• Unterschiedliche Semantiken:

• operational• denotational• algebraisch• ...

• Unterschiedliche Logiken

• Prädikaten-Logik• algorithmische Logik• dynamische Logik• LCF-Logik• ...

• Rechnerunterstützte Verifikationsmethoden• ...

Page 157: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

35

Formale Programmverifikation

• Einführung/Motivation

• Softwareverifikation am Beispiel desHoare-Kalküls

• Überblick über verschiedeneVerifikationsmethoden

• Rechnerunterstützte Verifikationsmethoden

• Möglichkeiten und Grenzen der SV

Page 158: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

36

RechnerunterstützteVerifikationsmethoden

Page 159: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

36

RechnerunterstützteVerifikationsmethoden

• KIV

Page 160: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

36

RechnerunterstützteVerifikationsmethoden

• KIV• LCF-System

Page 161: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

36

RechnerunterstützteVerifikationsmethoden

• KIV• LCF-System• Stanford-Verifier

Page 162: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

36

RechnerunterstützteVerifikationsmethoden

• KIV• LCF-System• Stanford-Verifier• PL/CV2 Proof Checker

Page 163: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

36

RechnerunterstützteVerifikationsmethoden

• KIV• LCF-System• Stanford-Verifier• PL/CV2 Proof Checker• Boyer-Moore-System

Page 164: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

36

RechnerunterstützteVerifikationsmethoden

• KIV• LCF-System• Stanford-Verifier• PL/CV2 Proof Checker• Boyer-Moore-System• ...

Page 165: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

36

RechnerunterstützteVerifikationsmethoden

• KIV• LCF-System• Stanford-Verifier• PL/CV2 Proof Checker• Boyer-Moore-System• ...

t Dialogsysteme

Page 166: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

37

KIV

Page 167: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

37

KIV

• Unterstützungswerkzeug zur Entwicklung korrekterSoftware

Page 168: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

37

KIV

• Unterstützungswerkzeug zur Entwicklung korrekterSoftware

• graphische Oberfläche

Page 169: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

37

KIV

• Unterstützungswerkzeug zur Entwicklung korrekterSoftware

• graphische Oberfläche

• unterstützt:

Page 170: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

37

KIV

• Unterstützungswerkzeug zur Entwicklung korrekterSoftware

• graphische Oberfläche

• unterstützt:• Spezifikationsentwicklung

Page 171: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

37

KIV

• Unterstützungswerkzeug zur Entwicklung korrekterSoftware

• graphische Oberfläche

• unterstützt:• Spezifikationsentwicklung• Nachweis von Sicherheitseigenschaften

Page 172: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

37

KIV

• Unterstützungswerkzeug zur Entwicklung korrekterSoftware

• graphische Oberfläche

• unterstützt:• Spezifikationsentwicklung• Nachweis von Sicherheitseigenschaften• Implementierung

Page 173: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

37

KIV

• Unterstützungswerkzeug zur Entwicklung korrekterSoftware

• graphische Oberfläche

• unterstützt:• Spezifikationsentwicklung• Nachweis von Sicherheitseigenschaften• Implementierung• Verifikation

Page 174: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

38

KIV - Spezifikationsentwicklung

Page 175: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

38

KIV - Spezifikationsentwicklung

• Aufbauend auf element. algebr. Spezifikationenkönnen große modulare Spezifikationen erstelltwerden

Page 176: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

38

KIV - Spezifikationsentwicklung

• Aufbauend auf element. algebr. Spezifikationenkönnen große modulare Spezifikationen erstelltwerden

• Automat. Überprüfung der syntakt. Korrektheit

Page 177: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

38

KIV - Spezifikationsentwicklung

• Aufbauend auf element. algebr. Spezifikationenkönnen große modulare Spezifikationen erstelltwerden

• Automat. Überprüfung der syntakt. Korrektheit

• Visualisierung als Entwicklungsgraphen, darüberBearbeitung, Verwaltung möglich

Page 178: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

38

KIV - Spezifikationsentwicklung

• Aufbauend auf element. algebr. Spezifikationenkönnen große modulare Spezifikationen erstelltwerden

• Automat. Überprüfung der syntakt. Korrektheit

• Visualisierung als Entwicklungsgraphen, darüberBearbeitung, Verwaltung möglich

• große Bibliothek wiederverwendbarerStandardspezifikationen

Page 179: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

39

KIV- Beweisen inSpezifikationen

Page 180: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

39

KIV- Beweisen inSpezifikationen

• Weitgehend automatisiert, jedoch an vielen StellenInteraktion des Benutzers erforderlich

Page 181: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

39

KIV- Beweisen inSpezifikationen

• Weitgehend automatisiert, jedoch an vielen StellenInteraktion des Benutzers erforderlich

• Beweisgang graphisch visualisiert; darüberVerwaltung, Modifikation, Dokumentationmöglich

Page 182: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

39

KIV- Beweisen inSpezifikationen

• Weitgehend automatisiert, jedoch an vielen StellenInteraktion des Benutzers erforderlich

• Beweisgang graphisch visualisiert; darüberVerwaltung, Modifikation, Dokumentationmöglich

• Korrektheitsmanagement (verwaltetBeweispflichten, verhindert z.B. zyklischesverwenden von Lemmata)

Page 183: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

40

KIV- Implementierung &Verifikation

Page 184: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

40

KIV- Implementierung &Verifikation

• Korrektheitsmanagement

Page 185: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

40

KIV- Implementierung &Verifikation

• Korrektheitsmanagement

• Beweiskomponente (zu 80-90% automatisch)

Page 186: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

40

KIV- Implementierung &Verifikation

• Korrektheitsmanagement

• Beweiskomponente (zu 80-90% automatisch)

• Beweisstrategie ergänzt um spezielleBeweisregeln für Programme

Page 187: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

40

KIV- Implementierung &Verifikation

• Korrektheitsmanagement

• Beweiskomponente (zu 80-90% automatisch)

• Beweisstrategie ergänzt um spezielleBeweisregeln für Programme

• Automatische Löschung der von Korrekturenbetroffenen Beweise

Page 188: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

40

KIV- Implementierung &Verifikation

• Korrektheitsmanagement

• Beweiskomponente (zu 80-90% automatisch)

• Beweisstrategie ergänzt um spezielleBeweisregeln für Programme

• Automatische Löschung der von Korrekturenbetroffenen Beweise

• Strategie zur Wiederverwendung früherer Beweise(Ersparnis von ~90% des Aufwands)

Page 189: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

41

KIV- Anwendungen

Page 190: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

41

KIV- Anwendungen

• Zusammenarbeit mit über 10 Behörden,Institutionen, Firmen

Page 191: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

41

KIV- Anwendungen

• Zusammenarbeit mit über 10 Behörden,Institutionen, Firmen

• Pilotanwendungen in:

Page 192: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

41

KIV- Anwendungen

• Zusammenarbeit mit über 10 Behörden,Institutionen, Firmen

• Pilotanwendungen in: • Raumfahrt

Page 193: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

41

KIV- Anwendungen

• Zusammenarbeit mit über 10 Behörden,Institutionen, Firmen

• Pilotanwendungen in: • Raumfahrt• Medizintechnik

Page 194: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

41

KIV- Anwendungen

• Zusammenarbeit mit über 10 Behörden,Institutionen, Firmen

• Pilotanwendungen in: • Raumfahrt• Medizintechnik• Automobiltechnik

Page 195: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

41

KIV- Anwendungen

• Zusammenarbeit mit über 10 Behörden,Institutionen, Firmen

• Pilotanwendungen in: • Raumfahrt• Medizintechnik• Automobiltechnik• Bahntechnik

Page 196: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

41

KIV- Anwendungen

• Zusammenarbeit mit über 10 Behörden,Institutionen, Firmen

• Pilotanwendungen in: • Raumfahrt• Medizintechnik• Automobiltechnik• Bahntechnik

• Crash-Control-Software für Airbag

Page 197: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

41

KIV- Anwendungen

• Zusammenarbeit mit über 10 Behörden,Institutionen, Firmen

• Pilotanwendungen in: • Raumfahrt• Medizintechnik• Automobiltechnik• Bahntechnik

• Crash-Control-Software für Airbag• Compilerverifikation

Page 198: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

41

KIV- Anwendungen

• Zusammenarbeit mit über 10 Behörden,Institutionen, Firmen

• Pilotanwendungen in: • Raumfahrt• Medizintechnik• Automobiltechnik• Bahntechnik

• Crash-Control-Software für Airbag• Compilerverifikation

• ...

Page 199: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

42

Formale Programmverifikation

• Einführung/Motivation

• Softwareverifikation am Beispiel desHoare-Kalküls

• Überblick über verschiedeneVerifikationsmethoden

• Rechnerunterstützte Verifikationsmethoden

• Möglichkeiten und Grenzen der SV

Page 200: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

43

Programmverifikation zurQualitätssicherung?

• Einsetzbarkeit in der Praxis?

• Notwendigkeit?

• Aufwand?

• Kosten?

• Handhabbarkeit?

• Vorteile gegenüber anderen Methoden?

Page 201: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

44

Probleme

Page 202: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

44

Probleme• Es kann nur bewiesen werden, was auch

spezifiziert wurde!

Page 203: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

44

Probleme• Es kann nur bewiesen werden, was auch

spezifiziert wurde!

• v.a. bei größeren Programmen sehraufwendig (-> teuer?)

Page 204: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

44

Probleme• Es kann nur bewiesen werden, was auch

spezifiziert wurde!

• v.a. bei größeren Programmen sehraufwendig (-> teuer?)

• spezielle logische u. mathematischeKenntnisse erforderlich (-> Spezialisten?)

Page 205: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

44

Probleme• Es kann nur bewiesen werden, was auch

spezifiziert wurde!

• v.a. bei größeren Programmen sehraufwendig (-> teuer?)

• spezielle logische u. mathematischeKenntnisse erforderlich (-> Spezialisten?)

• Robustheit, Zuverlässigkeit, zeitl. Verhaltenschwer formalisierbar

Page 206: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

45

ABER:

Page 207: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

45

ABER:• Es wird stets die Korrektheit für ALLE

Eingaben bewiesen (-> Gewißheit)

Page 208: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

45

ABER:• Es wird stets die Korrektheit für ALLE

Eingaben bewiesen (-> Gewißheit)

• frühzeitige Aufdeckung von Fehlernmöglich (-> erspart Zeit und Geld)

Page 209: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

45

ABER:• Es wird stets die Korrektheit für ALLE

Eingaben bewiesen (-> Gewißheit)

• frühzeitige Aufdeckung von Fehlernmöglich (-> erspart Zeit und Geld)

• Mittlerweile gute rechnerunterstützteVerfahren

Page 210: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

45

ABER:• Es wird stets die Korrektheit für ALLE

Eingaben bewiesen (-> Gewißheit)

• frühzeitige Aufdeckung von Fehlernmöglich (-> erspart Zeit und Geld)

• Mittlerweile gute rechnerunterstützteVerfahren

• Kooperation mit Universitäten möglich

Page 211: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

45

ABER:• Es wird stets die Korrektheit für ALLE

Eingaben bewiesen (-> Gewißheit)

• frühzeitige Aufdeckung von Fehlernmöglich (-> erspart Zeit und Geld)

• Mittlerweile gute rechnerunterstützteVerfahren

• Kooperation mit Universitäten möglich

• gerade bei kritischen AnwendungenSoftwareverifikation unabdingbar

Page 212: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

46

These:

Softwareverifikation ist eine

Frage der Qualität!

Page 213: Formale Programmverifikation - Universität Freiburg · Jedes sechste DV-Projekt wurde ohne jegliches Ergebnis abgebrochen, alle Projekte überzogen die Zeit- und Kostenrahmen um

47

Programmverifikation!