34
software engineering Der Traum von fehlerfreier Software Prof. Dr. Stefan Leue Universität Konstanz Lehrstuhl für Software Engineering [email protected] http://www.inf.uni-konstanz.de/~soft 22. Oktober 2005 Copyright © Stefan Leue 2005

Der Traum von fehlerfreier Software - uni- · PDF file© Stefan Leue 2005 2 software engineering Der Weg hierher... 1990 Diplom in Informatik und Wirtschaftswissenschaften Universität

Embed Size (px)

Citation preview

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. ..."

12© Stefan Leue 2005 softw

are

engineering

Software-Fehlverhalten

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

25© Stefan Leue 2005 softw

are

engineering

Model-Checking

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

33© Stefan Leue 2005 softw

are

engineering

Software-Versagen?

34© Stefan Leue 2005 softw

are

engineering

Vielen Dank für Ihre Aufmerksamkeit!