|
Rubrik: Tagesberichte |
English Version Print-Version |
Interview mit ETH-Professor Bertrand Meyer zur Konferenz über Verified Software. Fehlerfreie Software |
Mitte Oktober fand an der ETH eine einwöchige Konferenz zum Thema „Verified Software: Theories, Tools, Experiments“ statt. (1) „ETH Life“ sprach mit Bertrand Meyer, dem Organisator der Konferenz und ETH-Professor für Software Engineering. Herr Meyer, was ist gute Software? Bertrand Meyer: Einfach gesagt: Was immer den Nutzer zufrieden stellt. Wenn beispielsweise das Programm Photoshop hin und wieder abstürzt, ist es für Sie vielleicht immer noch eine gute Software, solange Sie damit Ihre Ziele erreichen. Anderseits sollte aber beispielsweise eine Software zur Kontrolle des Flugzeugs unter keinen Umständen abstürzen.
Wo liegen denn die Gründe, dass auch heute noch viele Computer „abstürzen“? Meyer: Am Ende ist jeder Absturz auf einen Programmierfehler zurückzuführen. Ein typisches Beispiel ist der „Buffer overflow“. Das passiert, wenn das Programm mittels eines falschen Indexes auf ein Element zugreifen will. Beispielsweise wenn ich nach dem fünfzigsten Buchstaben im Kürzel „ETH“ frage. Eine andere grosse Fehlerquelle ist die zunehmende Komplexität. Der Quellcode moderner Betriebssysteme umfasst teilweise Dutzende von Millionen Zeilen. Daher sind Betriebssysteme viel komplexer als die meisten anderen Ingenieur-Systeme. Um Fehler zu vermeiden tendieren Computerwissenschaftler darum zu mehr Einfachheit. Sicher ist ein Teil der enormen Komplexität selbst verschuldet. Allerdings kommt ein grosser Teil der Komplexität auch vom Bedürfnis, die Aussenwelt möglichst realistisch zu behandeln. Wo liegen mögliche Risiken des Einsatzes fehlerhafter Software? Die meisten Software-Fehler führen weder zu Todesfällen noch zu spektakulären Schlagzeilen. Viel häufiger sind unerklärliche Programmabstürze, fehlerhafte Resultate und überlange Rechenzeiten. Das amerikanische Institute of Standards hatte kürzlich die Schäden durch ungenügend getestete Software auf jährlich 60 Milliarden Dollar geschätzt – allein für die USA. Anderseits kann fehlerhafte Software tatsächlichen auch zu Todesfällen führen. Einer der am besten untersuchten Zwischenfälle ist die Therac-25 Bestrahlungs-Therapie. Aufgrund eines Software-Fehlers wurden zahlreiche Patienten mit einer falschen Strahlendosis bestrahlt, was schliesslich zu sieben Toten führte. |
Wie entsteht fehlerhafte Software? Durch Investitionen in die falschen Werkzeuge oder durch die Verwendung veralteter Programmiersprachen aus Gewohnheit oder aus Bequemlichkeit. Häufig entstehen Fehler auch dadurch, dass anstelle eines sauberen Entwicklungsansatzes unkoordiniert drauflos programmiert wird. Was war das Ziel der Konferenz zu „Verified Software“, die Mitte Oktober an der ETH stattfand? Wir wollten die Software-Entwickler darauf aufmerksam machen, dass die Fortschritte in der Verifizierung von Software schon so weit fortgeschritten sind, dass wir heute sehr nah an fehlerfreier Software dran sind und darum ernsthaft über deren Einsatz diskutieren sollten. Die Konferenz basierte auf dem Konzept der „Grand Challenge“ von Tony Hoare. Worin besteht diese grosse Herausforderung? In den letzten fünf Jahren reiste Tony Hoare um die Welt, um alle davon zu überzeugen, dass die Zeit reif sei für einen gross angelegten, koordinierten Ansatz zur Verbesserung der Software-Qualität. Hoare rechnet mit einer 15-jährigen Projektzeit, analog etwa dem Grossprojekt der Entschlüsselung des menschlichen Erbguts. Die Konferenz hier an der ETH bildete den Höhepunkt seiner Vorbereitungsarbeiten und den Start der „Grand Challenge“. Was ist der Beitrag Ihrer Forschung zur „Grand Challenge“? Die von mir über die Jahre entwickelte Programmiersprache Eiffel ist beispielsweise eine Ansammlung von Musterfällen der Software-Entwicklung, optimiert auf die Erzielung hoher Software-Qualität. Eiffel wird heute in einigen grösseren Verteidigungs- und Finanz-Applikationen eingesetzt. Eiffel ist aber auch ein Forschungs-Instrument, das wir im Projekt „Grand Challenge“ einsetzen, als Basis für die Entwicklung und die Verifizierung von Software. Zudem setzen wir Eiffel auch zu Unterrichtszwecken ein, beispielsweise im Informatik-Studium der ETH. |
||||||
Fussnoten:
Sie können zu diesem Artikel ein Feedback schreiben oder die bisherigen lesen. |