Warum ist Ariane 5 beim Erstflug explodiert?

 

 

Was geschah mit Flug 501?

 

 

 

 

Wie es hätte sein sollen...

Wie es war

Chronik der Ereignisse

 


Quelle

 

Lions, J.L. (1996). ARIANE 5 Flight 501 Failure. Report by the Inquiry Board. Paris: ESA.

 


Schaden

  bei Gesamtkosten des Projekts von 1987 bis 1998 von 6700 M Euro

 

Spurensicherung zur Klärung
der Unglücksursache


Was können wir daraus lernen für Software Engineering?

 

Spezifikation und Entwurf

Spezifikation: Bestehende Software darf nicht unbesehen für eine neue Aufgabe wiederverwendet werden. Vorher muss geprüft werden, ob ihre Fähigkeiten den Anforderungen der neuen Aufgabe entsprechen.

Dokumentation: Die Fähigkeiten einer Software sowie alle Annahmen, die sie über ihre Umgebung macht, müssen dokumentiert sein. Andernfalls ist die Prüfung auf Wiederverwendbarkeit extrem aufwendig.

Design by Contract: Kooperieren zwei Software-Komponenten miteinander, so müssen eindeutige Zusammenarbeitsregeln definiert, dokumentiert und eingehalten werden: Wer liefert wem was unter welchen Bedingungen.

Fehlerbehandlung: Jede potentielle Fehlersituation in einer Software muss entweder behandelt werden oder die Gründe für die Nichtbehandlung müssen so dokumentiert werden, dass die Gültigkeit der dabei getroffenen Annahmen überprüfbar ist.

Software &endash; Hardware: Mehrfache identische Auslegung von Systemen hilft nicht gegen logische Fehler in der Software.

Sicherheit: Bei Störungen in sicherheitskritischen Systemen ist Abschalten nur dann eine zulässige Maßnahme, wenn dadurch wieder ein sicherer Zustand erreicht wird.

 

Qualitätsmanagement

Test: Bei der Prüfung von Software, die aus mehreren Komponenten besteht, genügt es nicht, jede Komponente nur isoliert für sich zu prüfen.

Umfangreiche Systemtests unter möglichst realistischen Bedingungen sind notwendig.

Review: Jedes Programm muss - neben einem sorgfältigen Test - durch kompetente Fachleute inspiziert werden, weil insbesondere die Erfüllbarkeit und Adäquatheit von Annahmen und Ergebnissen häufig nicht testbar ist.

Effektivität: Software, die nicht benötigt wird, sollte auch nicht benutzt werden.

 

Projektführung

Risikomanagement: Die Risiken erkennen, angemessene technische Maßnahmen (siehe oben) planen, durchsetzen und überprüfen.

 


98-10-22, 2001-11-12 Martin Glinz Institut für Informatik der Universität Zürich