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
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
2 Ubersicht ¨
11. Probleme bei der Entwicklung von Computersystemen
2. Was sind Formale Methoden in der Informatik?
3. Erfolgsgeschichte Formaler Methoden
4. Aktuelle Entwicklungen und Visionen
2 Ubersicht ¨
21. Probleme bei der Entwicklung von Computersystemen
2. Was sind Formale Methoden in der Informatik?
3. Erfolgsgeschichte Formaler Methoden
4. Aktuelle Entwicklungen und Visionen
1 Computersysteme
3Beispiele
Software und/oder Hardware
Prozessoren, Steuerungen, Eingebettete Systeme Betriebssysteme, Datenbanken
Protokolle, Netzwerke
Anwendungssoftware, Internet
1 Computersysteme
4Eigenschaften
Komplexe Strukturen und Interaktionsmuster Abstraktion, Verfeinerung, Synthese
Information-Hiding: Modularisierung und Objektorientierung Sprachen: Programmier- oder Hardwarebeschreibungssprache
1 Probleme mit Computersystemen
5Tagt ¨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
1 Komplexit ¨atsexplosion
6Uber die Jahre ¨ . . .
Exponentielle Verbesserung der Prozessorleistung und Integrationsdichte Exponentielle Steigerung der ¨Ubertragungskapazit ¨at
Exponentielles Wachstum der Internetbenutzer Riesige Software-Systeme
1 Testkostenexplosion
70 % 50 % 100 %
Relative Kosten
2001 Test
und
Synthese
2 Ubersicht ¨
81. Probleme bei der Entwicklung von Computersystemen
2. Was sind Formale Methoden in der Informatik?
3. Erfolgsgeschichte Formaler Methoden
4. Aktuelle Entwicklungen und Visionen
2 Software Entwicklungsprozess
9Anforderungen
Fein-Entwurf
Implementierung Konfiguration
Grob-Entwurf
2 Hardware Entwicklungsprozess
10RTL Gatter
Transistor Layout
Architektur
2 Synthese und Test
11Verifikation Simulation Validierung
manuell werkzeugunterstützt oder
ad hoc
formal oder
Kompilation
Transformation Verfeinerung
Test Synthese
Implementierung
Spezifikation
2 Formale Methoden
12Definition
Mathematisch exaktes Konstruieren und Testen von Computersystemen
Modelle Automaten, Logik, Algebra Kalk ¨ule Vergleich, Ableitung, Rechnen
Digitale Systeme haben exakte Semantik
2 Modellierung – Hardware
13Q
Q’
D
Q
Q’
D
0 1
1
1 0 0 0
1
Synchrone Schaltung Endlicher Automat
2 Modellierung – Software
14{n ≥ 0}
Vorbedingung
i := 0; s := 0 {n ≥ 0, i = 0, s = 0}
{i ≤ n, s = ∑ij=0 j} Schleifen-Invariante while i < n do
{i < n, i ≤ n, s = ∑ij=0 j} {i < n, s = ∑ij=0 j}
i := i + 1;
{i ≤ n, s = ∑ij=0−1 j} s := s + i;
{i ≤ n, s = i+∑ij=0−1 j} {i ≤ n, s = ∑ij=0 j}
end; Terminierungs-Funktion n−i
{¬i < n, i ≤ n, s = ∑ij=0 j}
{s = ∑nj=0 j}
Nachbedingung
2 Modellierung – Software
15{n ≥ 0}
Vorbedingung
i := 0; s := 0 {n ≥ 0, i = 0, s = 0}
{i ≤ n, s = ∑ij=0 j} Schleifen-Invariante while i < n do
{i < n, i ≤ n, s = ∑ij=0 j} {i < n, s = ∑ij=0 j}
i := i + 1;
{i ≤ n, s = ∑ij=0−1 j} s := s + i;
{i ≤ n, s = i+∑ij=0−1 j} {i ≤ n, s = ∑ij=0 j}
end; Terminierungs-Funktion n−i
{¬i < n, i ≤ n, s = ∑ij=0 j}
{s = ∑nj=0 j}
Nachbedingung
2 Modellierung – Software
16{n ≥ 0}
Vorbedingung
i := 0; s := 0 {n ≥ 0, i = 0, s = 0}
{i ≤ n, s = ∑ij=0 j} Schleifen-Invariante while i < n do
{i < n, i ≤ n, s = ∑ij=0 j} {i < n, s = ∑ij=0 j}
i := i + 1;
{i ≤ n, s = ∑ij=0−1 j} s := s + i;
{i ≤ n, s = i+∑ij=0−1 j} {i ≤ n, s = ∑ij=0 j}
end; Terminierungs-Funktion n−i
{¬i < n, i ≤ n, s = ∑ij=0 j}
{s = ∑nj=0 j}
Nachbedingung
2 Exakte Modellierung
17Jedem 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
2 Formale Methoden
18Zusammenfassung
• Korrektheit ist das Ziel
• Funktionale Aspekte im Vordergrund
• Performanz h ¨aufig zweitrangig
• Algebraische Techniken oder Logik sind die Grundbausteine
2 Ubersicht ¨
191. Probleme bei der Entwicklung von Computersystemen
2. Was sind Formale Methoden in der Informatik?
3. Erfolgsgeschichte Formaler Methoden
4. Aktuelle Entwicklungen und Visionen
3 Abgrenzung
20Formale Spezifikation
Formale
Synthese Verifikation
Formale
3 Abgrenzung
21Formale Spezifikation
Formale
Synthese Verifikation Formale
Model Checking
Equivalence Checking Theorem Beweisen SAT
VDM Z
Synchrone Sprachen UML
B-Methode
ASM
3 Abgrenzung
22Formale Spezifikation
Formale
Synthese Verifikation Formale
Model Checking
Equivalence Checking Theorem Beweisen SAT
VDM Z
Synchrone Sprachen UML
B-Methode
ASM
3 Hardware Entwicklungsprozess
23RTL Gatter
Transistor Layout
Architektur
3 Equivalence Checking
24Vergleich 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
3 Equivalence Checking Flow
25RTL
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
3 Equivalence Checking am Beispiel
26c a
b
c a b
1 ?
c
b
a
3 BDDs
27Binary 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!
3 Equivalence Checking mit BDDs
28c a
b
c a b
a
1 0
b b
c
a
1 0
b b
c
3 Equivalence Checking in the Large
29f
optimiertf
Strukturelle Überlappung
gemeinsame Eingabevariablen
äquivalent ?
3 Equivalence Checking in the Large
30f
optimiertf
gemeinsame Eingabevariablen Äquivalenzen
Interne funktionale
3 Equivalence Checking in the Large
31f
optimiertf
Funktionale Überlappung
gemeinsame Eingabevariablen
3 Equivalence Checking in the Large
32f
optimiertf
gemeinsame Eingabevariablen
3 Equivalence Checking in the Large
33f
optimiertf
gemeinsame Eingabevariablen
3 Equivalence Checking in the Large
34f
optimiertf
gemeinsame Eingabevariablen
3 Equivalence Checking in the Large
35f
optimiertf
gemeinsame Eingabevariablen
3 Equivalence Checking in the Large
36f
optimiertf =
gemeinsame Eingabevariablen
3 Equivalence Checking in der Praxis
37Erfolgreichste 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
3 Model Checking
38Definition 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
3 Zustandsexplosion
39K1 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 (?)
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)
3 Symbolic Model Checking
41Kommerzielle 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
2 Ubersicht ¨
421. Probleme bei der Entwicklung von Computersystemen
2. Was sind Formale Methoden in der Informatik?
3. Erfolgsgeschichte Formaler Methoden
4. Aktuelle Entwicklungen und Visionen
4 Grenzen des Model Checking
43Erfolgswahrscheinlichkeit
automatischer Verifikation
Bits
Bits Bits
Bits Bits
100 Bits
200 300 400 500 600
0 % 50 % 100 %
Zustandsraum
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
4 Bounded Model Checking in der Praxis
45Theoretisch 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
4 Abstraktion und Kompositionale Techniken
46Erfolgswahrscheinlichkeit
automatischer Verifikation
Bits
Bits Bits
Bits Bits
100 Bits
200 300 400 500 600
0 % 50 % 100 %
Zustandsraum Einfaches
Problem
Hartes
Problem
4 Abstraktion
47Konkretes Modell Abstraktes Modell
M ≤ M 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
4 Verfeinerung und Abstraktion
48Automatische 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
4 Softwareverifikation wird Praktikabel
49Klassische 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
4 Zusammenfassung
50Kampfplatz Formale Methoden hat drei Fronten:
1. Integration in bestehende Entwicklungsprozesse
2. Kombination manueller und automatischer Verifikation (und Konstruktion) 3. Kapazit ¨atssteigerung der Kerntechnologie
4 Thesen
51These 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.