• Keine Ergebnisse gefunden

Formale Methoden zur Lösung von Komplexitäts- und Qualitätsproblemen: effektives Testen mit mathematischer Genauigkeit

N/A
N/A
Protected

Academic year: 2021

Aktie "Formale Methoden zur Lösung von Komplexitäts- und Qualitätsproblemen: effektives Testen mit mathematischer Genauigkeit"

Copied!
53
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Research Collection

Educational Material

Formale Methoden zur Lösung von Komplexitäts- und Qualitätsproblemen

effektives Testen mit mathematischer Genauigkeit

Author(s):

Biere, Armin Publication Date:

2001

Permanent Link:

https://doi.org/10.3929/ethz-a-004258281

Rights / License:

In Copyright - Non-Commercial Use Permitted

This page was generated automatically upon download from the ETH Zurich Research Collection. For more information please consult the Terms of use.

ETH Library

(2)

Formale Methoden zur L ¨ osung von Komplexit ¨ats- und Qualit ¨atsproblemen

Effektives Testen mit Mathematischer Genauigkeit

21. Mai 2001, Einf ¨uhrungsvorlesung ETH Z ¨urich

Prof. Dr. Armin Biere, Institut f ¨ur Computersysteme, ETH Z ¨urich http://www.inf.ethz.ch/personal/biere

(3)

2 Ubersicht ¨

1

1. Probleme bei der Entwicklung von Computersystemen

2. Was sind Formale Methoden in der Informatik?

3. Erfolgsgeschichte Formaler Methoden

4. Aktuelle Entwicklungen und Visionen

(4)

2 Ubersicht ¨

2

1. Probleme bei der Entwicklung von Computersystemen

2. Was sind Formale Methoden in der Informatik?

3. Erfolgsgeschichte Formaler Methoden

4. Aktuelle Entwicklungen und Visionen

(5)

1 Computersysteme

3

Beispiele

Software und/oder Hardware

Prozessoren, Steuerungen, Eingebettete Systeme Betriebssysteme, Datenbanken

Protokolle, Netzwerke

Anwendungssoftware, Internet

(6)

1 Computersysteme

4

Eigenschaften

Komplexe Strukturen und Interaktionsmuster Abstraktion, Verfeinerung, Synthese

Information-Hiding: Modularisierung und Objektorientierung Sprachen: Programmier- oder Hardwarebeschreibungssprache

(7)

1 Probleme mit Computersystemen

5

Tagt ¨aglicher Kampf

Textverarbeitung oder Tabellenkalkulation st ¨urzt ab Neuinstallation erforderlich nach System-Update

Katastrophen

Absturz der Ariane 5 Intel-Pentium Fehler

Ausfall eines Web-Server

(8)

1 Komplexit ¨atsexplosion

6

Uber die Jahre ¨ . . .

Exponentielle Verbesserung der Prozessorleistung und Integrationsdichte Exponentielle Steigerung der ¨Ubertragungskapazit ¨at

Exponentielles Wachstum der Internetbenutzer Riesige Software-Systeme

(9)

1 Testkostenexplosion

7

0 % 50 % 100 %

Relative Kosten

2001 Test

und

Synthese

(10)

2 Ubersicht ¨

8

1. Probleme bei der Entwicklung von Computersystemen

2. Was sind Formale Methoden in der Informatik?

3. Erfolgsgeschichte Formaler Methoden

4. Aktuelle Entwicklungen und Visionen

(11)

2 Software Entwicklungsprozess

9

Anforderungen

Fein-Entwurf

Implementierung Konfiguration

Grob-Entwurf

(12)

2 Hardware Entwicklungsprozess

10

RTL Gatter

Transistor Layout

Architektur

(13)

2 Synthese und Test

11

Verifikation Simulation Validierung

manuell werkzeugunterstützt oder

ad hoc

formal oder

Kompilation

Transformation Verfeinerung

Test Synthese

Implementierung

Spezifikation

(14)

2 Formale Methoden

12

Definition

Mathematisch exaktes Konstruieren und Testen von Computersystemen

Modelle Automaten, Logik, Algebra Kalk ¨ule Vergleich, Ableitung, Rechnen

Digitale Systeme haben exakte Semantik

(15)

2 Modellierung – Hardware

13

Q

Q’

D

Q

Q’

D

0 1

1

1 0 0 0

1

Synchrone Schaltung Endlicher Automat

(16)

2 Modellierung – Software

14

{n ≥ 0}

Vorbedingung

i := 0; s := 0 {n ≥ 0, i = 0, s = 0}

{in, s = ∑ij=0 j} Schleifen-Invariante while i < n do

{i < n, in, s = ∑ij=0 j} {i < n, s = ∑ij=0 j}

i := i + 1;

{in, s = ∑ij=01 j} s := s + i;

{in, s = i+∑ij=01 j} {in, s = ∑ij=0 j}

end; Terminierungs-Funktion ni

i < n, in, s = ∑ij=0 j}

{s = ∑nj=0 j}

Nachbedingung

(17)

2 Modellierung – Software

15

{n ≥ 0}

Vorbedingung

i := 0; s := 0 {n ≥ 0, i = 0, s = 0}

{in, s = ∑ij=0 j} Schleifen-Invariante while i < n do

{i < n, in, s = ∑ij=0 j} {i < n, s = ∑ij=0 j}

i := i + 1;

{in, s = ∑ij=01 j} s := s + i;

{in, s = i+∑ij=01 j} {in, s = ∑ij=0 j}

end; Terminierungs-Funktion ni

i < n, in, s = ∑ij=0 j}

{s = ∑nj=0 j}

Nachbedingung

(18)

2 Modellierung – Software

16

{n ≥ 0}

Vorbedingung

i := 0; s := 0 {n ≥ 0, i = 0, s = 0}

{in, s = ∑ij=0 j} Schleifen-Invariante while i < n do

{i < n, in, s = ∑ij=0 j} {i < n, s = ∑ij=0 j}

i := i + 1;

{in, s = ∑ij=01 j} s := s + i;

{in, s = i+∑ij=01 j} {in, s = ∑ij=0 j}

end; Terminierungs-Funktion ni

i < n, in, s = ∑ij=0 j}

{s = ∑nj=0 j}

Nachbedingung

(19)

2 Exakte Modellierung

17

Jedem modellhaften Ablauf steht ein realer Ablauf gegen ¨uber

Modell entspricht

System

Jedes reale Verhalten spiegelt sich im Modell wider

Informatik hat im Prinzip exakte Modelle

(20)

2 Formale Methoden

18

Zusammenfassung

• Korrektheit ist das Ziel

• Funktionale Aspekte im Vordergrund

• Performanz h ¨aufig zweitrangig

• Algebraische Techniken oder Logik sind die Grundbausteine

(21)

2 Ubersicht ¨

19

1. Probleme bei der Entwicklung von Computersystemen

2. Was sind Formale Methoden in der Informatik?

3. Erfolgsgeschichte Formaler Methoden

4. Aktuelle Entwicklungen und Visionen

(22)

3 Abgrenzung

20

Formale Spezifikation

Formale

Synthese Verifikation

Formale

(23)

3 Abgrenzung

21

Formale Spezifikation

Formale

Synthese Verifikation Formale

Model Checking

Equivalence Checking Theorem Beweisen SAT

VDM Z

Synchrone Sprachen UML

B-Methode

ASM

(24)

3 Abgrenzung

22

Formale Spezifikation

Formale

Synthese Verifikation Formale

Model Checking

Equivalence Checking Theorem Beweisen SAT

VDM Z

Synchrone Sprachen UML

B-Methode

ASM

(25)

3 Hardware Entwicklungsprozess

23

RTL Gatter

Transistor Layout

Architektur

(26)

3 Equivalence Checking

24

Vergleich von Schaltungen

Register Transfer Level (RTL) versus Gatter Gatter versus Gatter

haupts ¨achlich kombinatorisch

Wozu?

Fehler bei manuellen ¨Anderungen Fehler beim Zusammenf ¨ugen

Fehler in Synthesewerkzeugen

(27)

3 Equivalence Checking Flow

25

RTL

a_0 = (b_0 + c_0) * (!b_0 + !c_0) a_1 = . . .

a = b + c

. . .

A0 = B0*!C0 + !B0*C0 Equivalence Checker

Gatter-Ebene

. . . Synthese + Optimierung

Compiler

(Interne Synthese)

A1 = . . . Synthese Werkzeug

Vergleich auf

(28)

3 Equivalence Checking am Beispiel

26

c a

b

c a b

1 ?

c

b

a

(29)

3 BDDs

27

Binary Decision Diagrams [Bryant86]

Kanonische Graphendarstellung f ¨ ur boolesche Funktionen

Effiziente Algorithmen f ¨ur Operationen auf booleschen Funktionen.

Wichtige Datenstruktur in Electronic Design Automation

Grosser Anteil am Erfolg von (Symbolic) Model Checking!

(30)

3 Equivalence Checking mit BDDs

28

c a

b

c a b

a

1 0

b b

c

a

1 0

b b

c

(31)

3 Equivalence Checking in the Large

29

f

optimiert

f

Strukturelle Überlappung

gemeinsame Eingabevariablen

äquivalent ?

(32)

3 Equivalence Checking in the Large

30

f

optimiert

f

gemeinsame Eingabevariablen Äquivalenzen

Interne funktionale

(33)

3 Equivalence Checking in the Large

31

f

optimiert

f

Funktionale Überlappung

gemeinsame Eingabevariablen

(34)

3 Equivalence Checking in the Large

32

f

optimiert

f

gemeinsame Eingabevariablen

(35)

3 Equivalence Checking in the Large

33

f

optimiert

f

gemeinsame Eingabevariablen

(36)

3 Equivalence Checking in the Large

34

f

optimiert

f

gemeinsame Eingabevariablen

(37)

3 Equivalence Checking in the Large

35

f

optimiert

f

gemeinsame Eingabevariablen

(38)

3 Equivalence Checking in the Large

36

f

optimiert

f =

gemeinsame Eingabevariablen

(39)

3 Equivalence Checking in der Praxis

37

Erfolgreichste Methode: K ¨uhlmann-Algorithmus (ehem. IBM)

Kommerzielle Equivalence Checker von Verplex, Synopsys, Cadence, . . . Hausinterne Equivalence Checker bei Intel, IBM, Siemens, . . .

Million-Gates-Designs

Trotzdem nur Laufzeiten im Bereich Sekunden bis Stunden

Problematisch: Schaltkreispaare ohne interne ¨Aquivalenzen (Multiplizierer)

Erfolgsgeschichte Formaler Methoden

(40)

3 Model Checking

38

Definition Algorithmisches vollst ¨andiges Durchsuchen des Zustandraumes eines Systems nach unspezifizierten Abl ¨aufen.

• Spezifikation von Abl ¨aufen mit Temporaler Logik oder Automaten

• Sicherheitseigenschaften: Zusicherungen, Invarianten

• Lebendigkeitseigenschaften: Deadlockfreiheit, Reaktivit ¨at

• Automatische Konstruktion von Gegenbeispielen

(41)

3 Zustandsexplosion

39

K1 K2 K3 K4

M

|M| = |K1| × |K2| × |K3| × |K4|

Gesamtzustandszahl multiplikativ in der Anzahl Zust ¨ande pro Komponente 32Bit-Prozessor mit 4 Registern hat 2128 = 232·232·232·232 Zust ¨ande

Exponentieller großer Zustandsraum in der Gr ¨oße der Systembeschreibung Model Checking inh ¨arent Exponentiell (?)

(42)

3 Symbolic Model Checking

40

[McMilan] bzw. [Coudert,Madre]

Symbolische Repr ¨asentation des Modells und Mengen von Zust ¨anden durch:

1. Boolesche Kodierung

2. Interpretation von Mengen durch charakteristische boolesche Funktionen 3. Repr ¨asentation von booleschen Funktionen durch BDDs

Oft exponentielle Reduktion m ¨oglich: 1020 Zust ¨ande und mehr Kaum noch Erfolgsaussichten bei mehr als 1000 Zustandbits (16 mal 64-Bit Register)

(43)

3 Symbolic Model Checking

41

Kommerzielle Model Checker erh ¨altlich: Cadence, Verplex, . . .

Weit kleinere Kapazit ¨at als Equivalence Checker (NP vs PSPACE) Kleinere Systeme (hunderte Zustandbits) oft machbar

Typische Modulgr ¨osse (tausende Zustandbits) noch nicht beherrschbar Expertenwissen und aufwendige manuelle Abstraktionen erforderlich

Eingeschr ¨ankte Erfolgsstory Formaler Methoden

(44)

2 Ubersicht ¨

42

1. Probleme bei der Entwicklung von Computersystemen

2. Was sind Formale Methoden in der Informatik?

3. Erfolgsgeschichte Formaler Methoden

4. Aktuelle Entwicklungen und Visionen

(45)

4 Grenzen des Model Checking

43

Erfolgswahrscheinlichkeit

automatischer Verifikation

Bits

Bits Bits

Bits Bits

100 Bits

200 300 400 500 600

0 % 50 % 100 %

Zustandsraum

(46)

4 Bounded Model Checking

44

[Biere et.al.]

Symbolic Model Checking mit SAT statt BDDs

SAT = aussagenlogische Erf ¨ullbarkeit

SAT Prozeduren: immense technische Fortschritte in letzter Zeit!

Formeln mit 100.000 Variablen, 1.000.000 Unterformeln entscheidbar!

Approximation von Symbolic Model Checking Problemen mit SAT

Aufrollen der symbolisch, aber nicht kanonisch repr ¨asentierten ¨Ubergangsrelation

(47)

4 Bounded Model Checking in der Praxis

45

Theoretisch vollst ¨andig, begrenzt durch Durchmesser des Zustandraumes Vollst ¨andiger als Testen aber dennoch nicht vollst ¨andig in der Praxis!

Auch grosse Systeme (> 1000 Zustandbits) liefern Antworten

Besser als BDDs, wenn viele Gegenbeispiel-Sequenzen vorhanden sind!

Erste Integrationsversuche in kommerzielle Model Checker

Etabliert sich neben BDDs als Standardtechnik

(48)

4 Abstraktion und Kompositionale Techniken

46

Erfolgswahrscheinlichkeit

automatischer Verifikation

Bits

Bits Bits

Bits Bits

100 Bits

200 300 400 500 600

0 % 50 % 100 %

Zustandsraum Einfaches

Problem

Hartes

Problem

(49)

4 Abstraktion

47

Konkretes Modell Abstraktes Modell

MM 0

Fehlersequenz π von M ⇒ Fehlersequenz π von M0 G ¨ultigkeit: M |= f ⇐ G ¨ultigkeit: M0 |= f

Konstruktion der Abstraktion: automatisch oder manuell

Spurious Counterexamples: Gegenbeispiel in M0 trotz G ¨ultigkeit in M

(50)

4 Verfeinerung und Abstraktion

48

Automatische Abstraktionen: Symmetrie syntaktische oder semantische Kriterien

Schrittweise automatische Abstraktion: Lokalisierung etc.

starte mit maximal abstraktem Modell

falls Model Checking erfolgreich ist die Eigenschaft g ¨ultig

ansonsten verfeinere Abstraktion an Hand des Gegenbeispiels Manuelle Abstraktionen, automatisch bewiesen

Einbettung von Model Checker in Theorem Beweiser (z.B. PVS)

Aufbohren eines Model Checker zum Theorem Beweiser (z.B. Cadence SMV) Aussagenlogische Induktion mit SAT

(51)

4 Softwareverifikation wird Praktikabel

49

Klassische Programmverifikation mit Theorem-Beweisern ist zu schwierig?

Statische Analyse eher f ¨ur Optimierungen (prinzipiell unvollst ¨andig) Explicit Model Checking f ¨ur kleine Software-Systeme (z.B. SPIN)

Neue Trends zur Integration von Model Checking und Static Analysis Bandera und SLAM: schrittweise automatische Abstraktion

Neue Trends zur Integration von Static Checking und Theorem Beweisen ESC/Java: unvollst ¨andige und inkorrekte Programmverifikation

(52)

4 Zusammenfassung

50

Kampfplatz Formale Methoden hat drei Fronten:

1. Integration in bestehende Entwicklungsprozesse

2. Kombination manueller und automatischer Verifikation (und Konstruktion) 3. Kapazit ¨atssteigerung der Kerntechnologie

(53)

4 Thesen

51

These 1 Ohne Formale Methoden werden wir in K ¨urze im Testaufwand ersticken.

These 2 Nur Anwendungsorientierung bringt Formale Methoden weiter. Der Prozess des Anwenders steht im Mittelpunkt.

These 3 Formale und praktikable Sprachen f ¨ur Spezifikation und Implementie- rung auch auf abstraktem Niveau sind gesucht (SW + HW).

These 4 Formal unterst ¨utzte Verfeinerung (top-down) in Kombination mit forma- ler Verifikation (bottom-up) ist der n ¨achste logische Schritt.

Referenzen

ÄHNLICHE DOKUMENTE

The software verification tools use many techniques for automated proving, in particular:. • Superposition provers (e.g.,

The basic problem of static program analysis: virtually all interesting program properties are

 Model-checking allows us to show to show properties of systems by enumerating the system’s states, by modelling systems as finite state machines, and expressing properties

Produces the same results for all possible invocations of M independent of possible callers and parameter values.

The basic problem: the system state can quickly get huge, and the basic complexity of the problem is horrendous, leading to so-called state explosion. But the use of abstraction

Spin translates the automata into a C program, which performs the actual model-checking. Supports LTL

Equilibrium checking is concerned with establishing whether a given temporal logic formula φ is satisfied in some or all equilibrium computations of a multi-agent system – that

According to condition AC 1 it is necessary to know that there exists a coun- terexample trace which leads to the violation of the considered non-reachability property. In addition,