Presentations

Der Traum von fehlerfreier Software

Antrittsvorlesung von Prof. Dr. Stefan Leue

Samstag, 22.10.2005, 14:15 Uhr, Raum R 513

Abstract

Software ist der Werkstoff der Wissens- und Informationsgesellschaft. Viele Bereiche des täglichen Lebens sind in zunehmendem Maße von Softwaresystemen geprägt. In technischen Systemen (z. B. Auto, Eisenbahn, Flugzeug) übernimmt Software die Systemführerschaft. Dies bedeutet eine zunehmende ökonomische Abhängigkeit von korrekt funktionierender Software, also Software, die sich entsprechend vorher festgelegter Anforderungen verhält. Software-Fehlfunktionen kosten der Gesellschaft Milliardenbeträge. So hat der durch einen Software-Fehler verursachte Absturz einer Ariane 5 Rakete Satelliten im Wert von rd. $500 Millionen zerstört. Das amerikanische National Institute for Standards and Technology schätzt, dass 2001 in den USA durch fehlerhafte Software ein Schaden von $ 60 Mrd. entstanden ist, das entspricht ungefähr 0,6% des amerikanischen Bruttosozialprodukts. Relativ gesehen ähnliche Zahlen werden für Deutschland erwartet. Gleichzeitig entwickelt sich die Softwareindustrie in Deutschland zu einem ähnlich bestimmenden Faktor, wie es bereits der Automobilbau ist. Im Jahre 2002 waren in den Bereichen Software und IT-Dienstleistungen ca. 400 000 Menschen beschäftigt, etwa halb so viel wie in der Automobilbranche. Dabei hat der Informations- und Kommunikationssektor Wachstumsraten vorzuweisen, die weit über denen anderer Wirtschaftszweige liegen. Etwa 30% der Wertschöpfung im Automobil gehen von der im wesentlichen softwaregetriebenen Elektronik aus.

Neben den ökonomischen Aspekten sind natürlich die ethischen Anforderungen an korrekte Software zu nennen, besonders im sicherheitskritischen Systembereich. Klassisch ist hierbei ein einige Jahre zurück liegender Unfall, bei dem ein auf dem Beifahrersitz transportiertes Baby trotz softwaregesteuerter Deaktivierung des Airbags bei einem Unfall von diesem erschlagen wurde. Dabei war ein Fehler in der Kontrollsoftware für die nicht erwünschte Auslösung verantwortlich.

Klassische Mechanismen zur Qualitätssicherung von Softwaresystemen sehen während des Entwicklungsprozesses Maßnahmen wie Softwaretesten und manuelle Inspektionen des erstellten Codes vor. Während diese Techniken gut dazu geeignet sind, antizipierte Softwarefehler für Systeme moderater Komplexität zu entdecken, stellt die enorme Systemkomplexität insbesondere von eingebetteten Softwaresystemen, die leicht mehrere Millionen Zeilen Code erreichen kann, diese Techniken vor schwer zu lösende Herausforderungen. Der Lehrstuhl für Software Engineering der Universität Konstanz entwickelt automatisierte Verfahren, welche durch systematische Suchmethoden versuchen, Konfigurationen eines komplexen Softwaresystems zu finden, die nicht erwünschten Eigenschaften und damit also Fehlern entsprechen. Hierfür wird während der Entwicklung entweder direkt der Code oder ein Konzeptmodell des Codes verwendet, so dass die Fehlerkonfiguration "in vitro" erkannt wird und nicht erst im tatsächlichen Einsatz zu potentiell teuren oder gar lebensgefährdenden Fehlern führt. Die Automatisierung ist dabei besonders wichtig, damit diese Überprüfungähnlich der Rechtschreibhilfe im Textverabeitungsprogramm im Hintergrund laufen kann und den Softwareentwickler lediglich über gefundene Fehlerkonfigurationen informiert.

Slides

Download the slides in pdf.

Lecture Recording

You can download the audio recording in mp3 (128kbps, 10.3MB).

You can download the recording encoded in different qualities. In this case, You need a LECTURNITY Player to view the recording.

You can also view the recording online. You need Real Player or Windows Media Player to be installed on your computer.