der traum von fehlerfreier software - uni- · pdf file© stefan leue 2005 2 software...
TRANSCRIPT
softw
are
engineering
Der Traum von fehlerfreier Software
Prof. Dr. Stefan LeueUniversität Konstanz
Lehrstuhl für Software Engineering
[email protected]://www.inf.uni-konstanz.de/~soft
22. Oktober 2005
Copyright © Stefan Leue 2005
2© Stefan Leue 2005 softw
are
engineering
Der Weg hierher...1990
Diplom in Informatik und WirtschaftswissenschaftenUniversität Hamburg
1991 - 1995Promotion Dr. phil.-nat.
Universität Bern1995 - 2000
Assistant / Associate Professor University of Waterloo, Kanada
1998 Member of Technical Staff
Bell Laboratories, USA2000-2004
Professur für Rechnernetze und TelematikUniversität Freiburg
seit 2004Lehrstuhl für Angewandte Informatik / Software Engineering
Universität Konstanz
3© Stefan Leue 2005 softw
are
engineering
♦ Wissenschaftliche MitarbeiterInnen
8Husain Aljazzar
8Alin Stefanescu
8Evghenia Stegantova
8Wei Wei
8NN1
8NN2
Lehrstuhl für Software Engineering
4© Stefan Leue 2005 softw
are
engineering
Informations- und Kommunikationssektor
Quelle: IT-Forschung 2006 - Förderprogramm Informations- und KommunikationstechnikBMBF, 2002
5© Stefan Leue 2005 softw
are
engineering
Informations- und Kommunikationssektor
Quelle: IT-Forschung 2006 - Förderprogramm Informations- und KommunikationstechnikBMBF, 2002
6© Stefan Leue 2005 softw
are
engineering
Bedeutung von Software♦ Werkstoff der Informationsgesellschaft
Quelle: IT-Forschung 2006 - Förderprogramm Informations- und KommunikationstechnikBMBF, 2002
7© Stefan Leue 2005 softw
are
engineering
Ökonomische Bedeutung von Software♦ Werkstoff der Informationsgesellschaft8Markt für Software-Produkte
– Deutschland: 16,5 Mrd. € (2001)– Europa: 57 Mrd. € (2001)
8Brutto-Wertschöpfung durch Softwareentwicklung und -anpassung– ca. 25 Mrd. € (2001)
8Martvolumen aller Produkte, die von Software abhängen, Primär- und Sekundärbranchen
– ca. 500 Mrd. € (2001)
♦ Beschäftigtenzahlen in Deutschland8Hardware, Software, IT-Dienstleistungen (ohne Medien):
– 820.000 (2000)8davon Software und IT-Dienstleistungen
– 400.000 (2001, geschätzt)8Vergleich: Automobilindustrie
– 746.000 (2000, im Mittel)
8© Stefan Leue 2005 softw
are
engineering
Software-Krise♦ Umfrage in IEEE Software, 1995830% aller Softwareprojekte werden abgebrochen
850% aller Softwareprojekte überschritten ihr Budget um mind. 150%
8nur 60% der ursprünglich geplanten Funktionalität ist in demendgültigen Produkt
♦ ...aber wir produzieren doch erfolgreich hochgradigkomplexe Softwaresysteme, die gut funktionieren?8Airbus A380
8Toll Collect
8SAP R/3
8 ...
9© Stefan Leue 2005 softw
are
engineering
Software-"Erkältung"♦ Daher: es könnte noch besser gehen8 "... bisher setzen nur 30% der Unternehmen systematische Prozesse
bei der Softwareentwicklung ein,,,"
8Allerdings:
– Deutschland international zweitklassig in den Bereichen derEntwicklung Betriebssysteme, Web-Systeme, Informationssysteme, etc.
– Weltweit führend bei Entwicklung eingebetteter Softwaresysteme
iFlugzeugbau (EADS)
iAutomobilbau (Bosch, BMW, Daimler-Chrysler,...)
iSchienenverkehrstechnik
und hier auch weltweit führend in den Softwareprozessen!
♦ Softwaregesteuerte Flugzeuge?8bisher kein Todesfall in Flugzeugen durch fehlerhafte Software!
10© Stefan Leue 2005 softw
are
engineering
Software-Fehler und -Ausfälle (IEEE 729)♦ Software-Fehler (fault)8durch einen Menschen verursachter Fehler (error) in einem Software-
bezogenen Arbeitsschritt, z. B.
– fehlerhafte Anforderungen,
– fehlerhafter Entwurf oder
– fehlerhafte Programmierung,
welcher zu einem falschen Programmzustand führt
♦ Software-Ausfall, Software-Fehlverhalten (failure)8beobachtete Abweichung des Systems von seinem geforderten
Verhalten
11© Stefan Leue 2005 softw
are
engineering
Software-Fehlverhalten
"... Schuld an der Abrechnungspanne sei die Texteingabehilfe. Das Einfügen eines Apostrophs zum Beispiel bewirke, dass die SMS statt der regulären 19 Cent bis zu 80 Cent koste. Vier Jahre lang sei unerkannt geblieben, dass die Software bei einigen SonderzeichenFehler verursache. ..."
13© Stefan Leue 2005 softw
are
engineering
Software-Fehlverhalten
"... Doch erst ein herbeieilender Wachmann konnte mit dem beherzten Zertrümmern einer Scheibe den Minister befreien. "Wir konnten kaum noch Atmen, weil die Klimaanlage ausgefallen war", sagte Jaovisidha später zu Reportern. ... Schuld an der Panne sei ein Fehler des Bordcomputers gewesen. "Es war äußerst unangenehm, weil nichts mehr funktionierte und alles verschlossen war." ..."
14© Stefan Leue 2005 softw
are
engineering
Ökonomische Effekte von Software Fehlern♦ Kosten Unzulänglicher Software-Test-Infrastruktur8Studie des National Institute for Standards and Technology (NIST,
USA)– Kosten $59.5, entspricht etwa 0.6% des US-
Bruttoinlandsproduktes– potentielle Einsparungen $22.2 entsprechen etwa 0.2% des US-
Bruttoinlandsproduktes8Schätzung Europa: Kosten €20 Mrd.
♦ Kosten des softwarebedingten Ariane-5 Absturzes8$500 Mio.
♦ Kosten von SW-Fehlern in Eingebetteten Systemen mit hoher Replikation8ADAC (2003): 144 Rückrufaktionen aufgrund fehlerhafter
Bordelektronik, betroffen waren 940.000 Fahrzeuge
15© Stefan Leue 2005 softw
are
engineering
Software-Fehler in sicherheitskritischen Systemen
"... Tritt bei diesem Quersummen-Check ein Fehler auf, schaltet das Gerät sofort auf ein Notlaufprogramm um; dazu bedient es sich der fest in die Steuerplatte eingebrannten Basisdaten. ... Auf dieser Behelfsebene existiert jedoch nur noch ein simpler Steuerbefehl: Im Falle eines Aufpralls werden alle Airbags gezündet. Die einprogrammierte Deaktivierung ist dann Makulatur. ..."
16© Stefan Leue 2005 softw
are
engineering
Warum ist Softwareproduktion so schwierig?♦ Enorme Komplexität8mittlere eingebettete technische Systeme (z. B. Auto)
– ca. 500.000 - 2.000.000 Zeilen Code8grosse Softwaresysteme (z.B. Windows XP, Telefon-
Vermittlungsstellen)– > 50 Mio. Zeilen Code
♦ Einfache Formbarkeit8 führt zu "code-and-fix"
♦ Diskrete Natur8Korrektheit kann nicht, wie in anderen ingenieurwissenschaftlichen
Disziplinen, approximiert werden
♦ Fortwährende Änderungen der Anforderungen8 "Erst als ich das System das erste Mal sah, wusste ich, dass dies
nicht das war, was ich wollte."
17© Stefan Leue 2005 softw
are
engineering
Software-Prozess (Wasserfall)
Systementwurf
Anforderungen
Entwurf
Implemen-tierung
Wartung
Integration undTesten
18© Stefan Leue 2005 softw
are
engineering
Software-Qualitätssicherung♦ Testen8spielen mit der Software
8antizipieren der möglichen Fehler
♦ Code-Inspektion8Computer spielen
8Vermeidung typischer Programmierfehler
8Einhaltung von Programmierkonventionen
8antizipieren möglicher Fehler
♦ Formale Verifikation8Theorembeweisen
8Model Checking ("Modellprüfverfahren")
19© Stefan Leue 2005 softw
are
engineering
Software-Fehler♦ Software ist Text8zu einem grossen Teil von Hand geschrieben
8Code-Inspektion– bei Entscheidungen alle Fälle abgedeckt?
8Testen– systematisches Testen der Boundary Conditions
displayScreen( 0 );
displayScreen( 1 );
displayScreen( 9 );
displayScreen( 10 );
displayScreen( 11 ); ...
public void displayScreen ( int objectCount ){ ...
if objectCount < 10 displayScreenDetailed();
if objectCount > 10displayScreenOverview();
...}
20© Stefan Leue 2005 softw
are
engineering
♦ Komplexe Softwaresysteme besitzen gleichzeitig arbeitende (= "nebenläufige") Komponenten
8Frage: gehen Max und Paul immer so miteinander um, dass sie sichnie gegenseitig blockieren?
iMax verlangt Cola und gibt erst dann SchokoladeiPaul verlangt Schokolade und gibt erst dann Cola
Software-Fehler
21© Stefan Leue 2005 softw
are
engineering
Software-Fehler♦ Das Modell als textuelles Programm (Auszug):
proctype Max(chan AnPaul, VonPaul ){Maxistgrosszuegig:
atomic {if:: true && true ->
AnPaul!Schokolade;goto Maxistkleinlich;
fi}
Maxistkleinlich:atomic {
if:: VonPaul?[Cola] && true ->
VonPaul?PaulanMax_msg;AnPaul!Schokolade;goto Maxbetruegt
fi}
Maxbetruegt:atomic {
if:: VonPaul?[Cola] && true ->
VonPaul?PaulanMax_msg;goto Maxistkleinlich
fi}
}
proctype Paul(chan AnMax, VonMax ){Paulistgrosszuegig:
atomic {if:: true && true ->
AnMax!Cola;goto Paulistkleinlich
fi}
Paulistkleinlich:atomic {
if:: VonMax?[Schokolade] && true ->
VonMax?MaxanPaul_msg;AnMax!Cola;goto Paulbetruegt
fi}
Paulbetruegt:atomic {
if:: VonMax?[Schokolade] && true ->
VonMax?MaxanPaul_msg;goto Paulistkleinlich
fi}
}
22© Stefan Leue 2005 softw
are
engineering
Software-Fehler
♦ Testen? Inspektion?8Modell nicht mehr intuitiv nachvollziehbar8daher verhalten nicht antizipierbar
inicht inspizierbarinicht testbar
8außerdem: "Testing can always only show the presence of bugs, butnever their absence" (E. W. Dijkstra)
8daher: vollständige, automatisierte Suchmethode
23© Stefan Leue 2005 softw
are
engineering
Model Checking♦ Model Checking von Expliziten Zustandräumen8systematische Erzeugung aller Konfigurationen (= Zustände) des
Softwaresystems8systematische Erzeugung aller möglichen Schritte (Schokolade,
Cola) des Systems (= Zustandsübergänge)
AnPaul!Schoko
AnPaul!Schoko
AnMax!Cola
24© Stefan Leue 2005 softw
are
engineering
Counterexample with Depth-First Search (DFS)♦ Model Checking von expliziten Zustandsräumen8durchsuchen aller erreichbaren Konfigurationen nach "schlechten"
Konfigurationen– hier: Konfigurationen, die blockieren, also keinen Nachfolger
haben8der Weg zu einer solchen Fehler-Konfiguration heißt Fehlerpfad
– hilfreich zur Fehlerbehebung
AnPaul!Schoko
AnPaul!Schoko
AnMax!Cola
AnMax!Cola
26© Stefan Leue 2005 softw
are
engineering
Model Checking
"... hat eine noch formalere Methode zur Fehlersuche die Schwelle zur industriellen Anwendung auf Software überschritten: das "Model-Checking". Ähnlich wie eine Ampel nicht gleichzeitig für den Straßenverkehr und den Fußgängerüberweg Grün zeigen darf, lassen sich auch für Software-Module kritische Zustände beschreiben, die sie nicht gleichzeitig mit anderen Programmteilen annehmen dürfen. Model-Checking versucht zu beweisen, dass verbotene Kombinationen nie gemeinsam auftreten - oder bricht mit einem solchen Fehlerbeispiel ab..."
27© Stefan Leue 2005 softw
are
engineering
Der Weg zur Industriellen Praxis?
"Intel setzt diese Methode heute zur Überprüfung komplexer Schaltungs-Layouts ein. Auch Microsoft greift für Gerätetreiber zu Model-Checking-Tools, bestätigt Tony Hoare vom Microsoft Research Center in Cambridge. 'Die Treiber werden oft von Fremdfirmen geschrieben, aber im Betriebssystemkern ausgeführt, und können ernsthafte Auswirkungen haben, wenn sie fehlerträchtig sind.'"
28© Stefan Leue 2005 softw
are
engineering
Projects♦ DMC8Directed Model Checking
♦ DiRePro8Directed Model Checking in the Analysis of Real-Time and
Probabilitstic Systems– associate membership in SFB TR 14 "AVACS"– contribution to AVACS projects S3 and R3
♦ VisADyn8Visualization and Analysis of Dynamic Software Systems
– Graduiertenkolleg "Explorative Analysis and Visualization of Large Information Spaces"
♦ IMCOS 8 Incomplete Model Checking for Concurrent, Object-Oriented Systems
29© Stefan Leue 2005 softw
are
engineering
DMC
♦ Directed Model Checking8explicit state model checking is state space search8ways to be smarter than just DFS?
– heuristics guided search (best-first, A*, IDA*,...)– adequate heuristic estimates
8shorter or even optimally short counterexamples– improved error explanation
8 for some analyses improved scalability
informed, heuristic search (best-first, A*,...)
A* directed search
gO
expansion criterion:s ∈ O with min. g(s) + h(s)
DFS(Depth First Search)
g(s)
h(s)
30© Stefan Leue 2005 softw
are
engineering
DiRePro♦ Analysis of Continuous Time Markov Chains8 for instance, SCSI-2 based computing sytems8combined functional and dependability analysis
The probability to reach a state s violating a state proposition ϑ, i.e., satisfying ϕ := ¬ ϑ, within the time interval [0, t], does not exceed a probability p ∈ [0, 1]:
8CSL model checking does not produce counterexamples
8use heuristic search (Z*) to maximize timed run probability
P<p : Transient probability does not exceed p.♦· t : Timed reachability within [0, t]
Depth-First Search (DFS)Path-length optimizing search(BFS, Best-First, A*)
we want this!
31© Stefan Leue 2005 softw
are
engineering
IMCOS
♦ Buffer Boundedness for Asynchronous ConcurrentObject-Oriented Models8 inherently desired property (model sanity)8necessary precondition for finite-state analyzability8undecidable
– develop semi-test based on gross overapproximation of model
♦ Application8analysis of UML 2.0 / UML-RT models8developed tool directly linked to IBM Rational Rose RT
© Stefan Leue 2005 softw
are
engineering
UML-RT model (from RoseRT)UMLUML--RT modelRT model (from RoseRT)
Verification of UML-RT models
Java code on transitions
capsule
hierarchical state machine
port
Propertye.g.
deadlock-freedom,LTL formula
PropertyPropertye.g.
deadlock-freedom,LTL formula
Abstractions + Translation to BIR
Java model checker(Bogor) + extensions specialized for UML-RT
IMCOS