Ariane5 Absturz
 
StartSeite | Neues | TestSeite | ForumSeite | Teilnehmer | Kategorien | Index | Hilfe | Einstellungen | Ändern

Ein kurzer (englischer) Bericht zu Ariane 5 ist hier nachzulesen:
http://www.siam.org/siamnews/general/ariane.htm
Programmiert wurde in Ada. Bei einer Typumwandlung gab es einen Überlauf, der eine Exception auslöste. Da man davon ausging, daß eine Exception nur auf einen Hardwarefehler zurückzuführen ist, wurde auf das Backup-System geschaltet, das ein paar Millisekunden später mit dem gleichen Fehler ausfiel. -- [MichaelButscher]


Einige zusätzliche Details:


Was hätte den Absturz eventuell vermeiden können (rein spekulativ -- HelmutLeitner):

Nur weiss ich nicht, ob diese Spekulationen von Außenstehenden sinnvoll sind. -- AxelPreukschas.

Der Code wurde ursprünglich für die Ariane 4 geschrieben. Für deren Flugbahn hatte der Programmierer wohl bewiesen, dass kein Overflow auftreten kann bzw. der Overflow auf ein defektes System hinweisen würde. Seine Fehlerbehandlung war also absolut korrekt; kein noch so hoher Aufwand an formaler Überprüfung und systematischer Behandlung von Exceptions hätte daran etwas ändern können. Eine Ariane 4, die diesen Rechenfehler produzierte, hätte korrekterweise gesprengt werden müssen, auch wenn ein spezieller Handler die Exception abgefangen hätte, hätte er daraufhin explizit die Sprengung auslösen müssen.

Der einzige Weg, das Problem bei der Umstellung auf die Ariane 5 zu erkennen, hätte darin bestanden, den geführten Beweis zu überprüfen. Ich nehme stark an, das wurde eingespart; bei diesem Projekt gab es bestimmt genug Papierdoku, die zur Beweisüberprüfung zur Verfügung gestanden hätte.

Wäre natürlich toll, wenn man die Beweise computerverständlich führen könnte, mit so einem automatischen Beweisprüfer. Der müsste den Beweis dann unter veränderten Ausgangsbedingungen leicht erneut prüfen können. Aber so ein formaler Beweis ist sicher enorm aufwändig. Weiß eigentlich jemand, ob man den Ausfall durch eine Simulation hätte vorher sehen können? -- HenningThielemann

Es würde reichen, wenn die Assertion (dass die Bahnabweichung klein genug ist) formalisiert würde. Wenn der Beweis nicht compilerverständlich geführt werden kann, muss eben die Assertion explizit ins System hineingesteckt werden; damit gibt es eine prominente Stelle, an der die impliziten, manuell zu checkenden Annahmen zusammenlaufen. Solche Systeme lassen sich sogar im Typchecker eines Compilers integrieren, obwohl das alles noch etwas experimentiell ist (vgl. SpracheCayenne).

Unanbhängig davon fragt man sich, warum der Fehler bei keiner Simulation auftrat. Man muss ja fast annehmen, dass keine Simulation stattgefunden hat.

Steht hier vielleicht etwas Brauchbares? -> Design by Contract: The Lessons of Ariane by Jean-Marc Jézéquel and BertrandMeyer
Critique of "Put it in the contract: The lessons of Ariane" by Ken Garlington

Der Artikel von BertrandMeyer ließt sich fast wie eine Werbebroschüre für DesignByContract und besitzt leider kaum Tiefgang. Der Artikel von Garlington hingegen geht sehr fundiert auf die Behauptungen von Meyer ein und stellt diese in Zusammenhang mit den Beobachtungen der Untersuchungskommission. Er kommt zu dem Schluss, dass es für diesen speziellen Fall keinen Hinweis darauf gibt, dass DesignByContract den Fehler tatsächlich verhindert oder auch nur die Wahrscheinlichkeit dafür gehoben hätte, ohne jedoch den Anspruch zu erheben, die Sinnhaftigkeit von DBC im Allgemeinen zu untersuchen. IMO ein sehr lesenswertes Papier, da es recht gezielt auf die verschiedenen Probleme des Ariane5 Projektes eingeht, die letztendlich zu diesem Debakel geführt haben. -- IljaPreuß


KategorieException
StartSeite | Neues | TestSeite | ForumSeite | Teilnehmer | Kategorien | Index | Hilfe | Einstellungen | Ändern
Text dieser Seite ändern (zuletzt geändert: 31. August 2005 18:19 (diff))
Suchbegriff: gesucht wird
im Titel
im Text