Big Software Fails #1 - Eine Tragödie der Raumfahrt - podcast episode cover

Big Software Fails #1 - Eine Tragödie der Raumfahrt

May 30, 202446 min
--:--
--:--
Download Metacast podcast app
Listen to this episode in Metacast mobile app
Don't just listen to podcasts. Learn from them with transcripts, summaries, and chapters for every episode. Skim, search, and bookmark insights. Learn more

Episode description

Willkommen bei den Coding Buddies! In der neuen Folge starten wir eine neue Tech Reihe zum Thema "Die größten Fails der Softwareentwicklung" - Dabei steigen wir mit einem absoluten Klassiker ein. Wir freue uns natürlich auch über eine kleine Spende unter: https://streamlabs.com/thecodingbuddies/tip Dies ermöglicht uns unseren Content weiter zu verbessern. Vielen Dank! Hat dir die Folge gefallen? Dann folge uns doch zusätzlich auf unseren anderen Plattformen oder schau auf unserer Website vorbei: Discord: https://discord.gg/C2Zntw6Sq4 Instagram: https://www.instagram.com/the_coding_buddies Youtube: https://www.youtube.com/@thecodingbuddies Twitch: https://www.twitch.tv/thecodingbuddies TikTok: https://www.tiktok.com/@thecodingbuddies Du hast Feedback für uns? Kontaktiere uns doch per Mail: [email protected]

Transcript

Wir schreiben das Jahr 1996 es ist Dienstag, der 4. Juni. Es ist ein klarer und sonniger Morgen, eine tropische Wärme liegt in der Luft im Ort Kuru in Französisch Guyana. Warum dieser Tag für immer in Erinnerung bleiben wird, erfährst du in dieser Folge. Coding Boys, Dein Podcast rund um Softwareentwicklung und aktueller Technews. Herzlich Willkommen. Ja, herzlich Willkommen zur neuen Folge des Coding Buddies Podcasts. Schön, dass du wieder

eingeschaltet hast. Wir sind natürlich auch mal wieder mit dabei, meine Wenigkeit, der Tino und der fantastische Fabi. Moin Fabi, Grüße dich einen wunderschönen guten Tag. Ich hoffe, es geht dir gut. Du strahlst, scheinst in bester Laune zu sein. Na klar. Warum auch nicht?

Podcast Tape? Podcast Day und es ist nicht nur ein normaler Podcast Day, sondern heute starten wir eine neue Reihe in unserem Podcast und ich hab extrem Bock auf diese Reihe. Wir haben ja ne Umfrage gemacht auf Instagram und haben die Community gefragt, was sie sich so wünschen würden. Als weiteres Format im Podcast. Und da gab es ja n sehr spannendes Ergebnis, das nicht sehr einseitig war, aber es gab trotzdem einen Gewinner.

Magst du denn mal kurz erzählen, was quasi gewonnen hat und was es mit dem neuen Format auf sich hat? Genau also gewonnen hat schwere Fehler in der Softwareentwicklung. Oder fatale Fehler, oder? Wie man es auch immer nennen mag. Und da haben wir uns überlegt, wir werden mal ein bisschen gucken, was wir für. Fehler, die in der Softwareentwicklung aufgetreten sind, die sich auch wirklich, sage ich jetzt mal, im großen Ausmaß bemerkbar gemacht haben.

Ob es da etwas gibt beziehungsweise wahrscheinlich wird es da etwas geben und da haben wir uns überlegt, da könnte man ja einfach mal eine kleine Podcastreihe draus machen. Und verschiedene Fälle von solchen fatalen Software Problemen, die aufgetreten sind, einfach mal jeweils in eine Folge packen und dann lassen wir die Folge mal so ein bisschen eintrudeln in so zwischen die anderen. Eintrudeln ist ein schönes Wort. Genau, also wir suchen uns dann quasi spannende Fälle raus und

analysieren sie ein bisschen. Schauen mal was so für Learnings man da für die Softwareentwicklung draus ziehen

kann. Das finde ich ist eigentlich auch ein spannender Punkt dabei, dass er hoffentlich nicht nur den Entwicklern, die daran beteiligt waren, daraus ein Learning ziehen konnten, sondern auch wir vielleicht und du, liebe Zuhörer, liebe Zuhörer, deswegen habe ich wirklich richtig Bock auf diese Reihe und würde sagen wir starten auch mal direkt mit dem ersten Thema und zwar haben wir uns. Wie soll ich sagen, ja, schon fast ein Klassiker rausgesucht,

oder Fabi, wie siehst du das? Das ist ein Klassiker. Also das witzige ist irgendwie. Hab ich gedacht, das ist mir gar nicht so bekannt, aber ich hab es schon mal gehört, dann wusste ich doch wieder Bescheid. Ja, tatsächlich ist dieser Fall auch im Studium behandelt worden. Ne, hattest du mir erzählt, richtig. War mal kurz angeschnitten und da hab ich mich dann wieder dran erinnert und dachte stimmt da kommt das her. Ja, und zwar wollen wir ein bisschen.

Bereich der Luft und Raumfahrttechnik gehen. Ich meine, was gibt es cooleres und uns speziell um uns ein paar Raketenstarts allgemein gesagt angucken und zwar geht es um die Entwicklung der Ariane 4 und 5 Rakete und welche fatalen Folgen das hatte. In der Einleitung habt ihr ja schon gehört, es geht um das Jahr 1996 und exakt um 4.6. Und zwar um den Raketenstart der neuen Ariane 5 Rakete. Aber ich würde sagen, das ganze mal ein bisschen einzuordnen.

Fabi, magst du da vielleicht noch so einen kleinen Rahmen? Schaffen, was es denn mit der Ariane 5 Rakete auf sich hatte beziehungsweise man hört es ja am Namen schon. Es gab Vorgänger was quasi wofür die Ariane 4 in dem Fall dann da war um das Mal einzuordnen. Genau also die Ariane Rakete an sich waren auf jeden Fall trägersysteme der europäischen Raum und Luft und Raumfahrt so rum glaube ich.

Und genau die Ariane 4, wie du schon gesagt hast, ist der Vorgänger der Ariane 5 und im Normalfall wurde mit der Ariane 4 wurden immer bestimmte Ich sag mal forschungssatelliten und auch anderes Equipment für die sage ich mal für die Wissenschaft, für die Forschung im Weltraum. In eben den Orbit geflogen und nun kam man aber an den Punkt,

das sage ich jetzt mal. Diese Satelliten wurden immer schwerer, weil die Satelliten sollten auch immer weiter raus ins All gebracht werden um halt eben bestimmte andere Erforschungen. Durchzuführen bei der Ariane 5 sollte beispielsweise dann mit dem ersten Start das Magnetfeld der Erde ein bisschen genauer erforscht werden.

Und damit man halt aber eben solche schwereren Lasten in den Orbit und auch in den weiteren Orbit bringen konnte, musste eben eine neue Trägerrakete her, die ein bisschen mehr Power hat. Und da wurde dann gesagt Okay, Pass auf, wir machen aus der Ariane 4 eine Ariane 5, die ein bisschen mehr Druck hat.

Genau also das heißt, es wurde nicht nur der Name geändert, eine 5 drauf geschrieben, sondern es gab halt auch im Prinzip neue Anforderungen und Spezifikationen an dieser Rakete. Diese wurde ja dann entwickelt und voller Vorfreude wurde halt genau dieser Tag erwartet, wo sie das erste Mal starten sollte mit der Mission. Das Magnetfeld war das was du meintest, dann habe ich das

jetzt richtig verstanden, genau. Weiter zu erforschen und quasi wieder Satelliten nach oben zu schießen, mal auf gut Deutsch. Ja, was ist allerdings passiert? Also das war ja viel Entwicklungszeit. Viel Vorfreude von mehreren Wissenschaftlern und Entwicklern.

Es wurde ja von der von der ESA quasi entwickelt, also die Europäische Weltraumorganisation, und es gab ja ein relativ abruptes Ende. Ich meine, das hat keine Minute gedauert im Moment, da habe ich mir, das hab ich mir aufgeschrieben, 37 Sekunden nach Start ist ja die Rakete einfach explodiert und hat viele Leute. Schockiert und verwundert zurückgelassen, was da denn jetzt gerade passiert ist. Gerade weil die Ariane 4 ja so unfassbar erfolgreich war,

viele, viele Flüge quasi. Absolviert hat, sage ich mal. Also ich meine. Die Ariane Fiat glaube ich 87 Flüge absolut zuverlässig gemacht und sage ich jetzt mal so. Material ins All gebracht, was dort eben benötigt wurde. Und da hat man natürlich dann auch auf die Ariane 5 gesetzt und dachte sich so, Mensch, das was die 4 kann, muss die 5 natürlich auch können.

Und wie du schon meintest, da wurde ne Menge Zeit reingesteckt, aber auch nicht nur Zeit sondern auch eine Menge Geld. Ich habe gelesen, dass das ungefähr 4 Milliarden Mark waren, die damals in dieses Projekt investiert wurden, was natürlich schon einiges an. Geld ist naja, wenn du jetzt sagst Mark Euro. Inflation Durchrechnest hätte es vielleicht noch einen Gegenwert von was 50€. Nein, also es wäre immer noch verdammt viel Geld, keine Frage, kleine Spitze, aber.

Das Interessante war also, es hat ja, es hat ja nicht nur Geld dahinter gesteckt, da waren einige Forschungsteams auch dahinter, ich glaube, 80 Forschungsteams haben an der Mission mitgewirkt und haben sich darauf vorbereitet.

Und zum Beispiel auch das Max-Planck-Institut hat ne Technik so n sogenannten Elekt, so sogenannte Elektronenkanonen Beigeliefert, in denen halt auch 15 Jahre Entwicklungszeit gesteckt hat, also nicht nur Entwicklungszeit für die Rakete, sondern auch Entwicklungszeit für andere. Techniken, die da hoch transhaltig. Waren und. Man muss sich das vorstellen, wie du schon meintest, es sind alle waren total begeistert.

Es wurde sicherlich auch angepriesen in den Medien, dass es jetzt ein Neuer, also ein Start einer neuen Rakete Zeitalter. Ist quasi. Genau. Und mit dieser Vorbereitung also zum einen hast du auf der Seite der, sage ich jetzt mal Zivilisten, Leute, die einfach nur Lust haben, die sich diesen Staat anzugucken und natürlich aber auch das gesamte Team, was eben dahinter steckt, hat natürlich große Erwartungen.

Und dann ist die Rakete los gestartet und wie du schon meintest nach kürzerem Zeit eigentlich und. Also erstmal sah alles gut aus und nach kürzester Zeit hat sich dann diese Rakete quergestellt. Ist durch diese Last die auf diese Rakete in diesem Zustand, wie sie eigentlich gar nicht fliegen sollte. Angefangen hat also auseinander zu brechen und dann wurde eben die Selbstzerstörung aktiviert.

Ne und darum waren natürlich viele lange Gesichter da, zumal ja, wie ich ja schon gesagt hab, im Endeffekt hattest du diese, diese verschiedenste Techniken, also es waren glaub ich auch sogar 4 neue entwickelte Forschungssatelliten, die halt auch extra für diesen Zweck angefertigt wurden, eben auch im Gepäck und diese ganze Technik plus die ganze Entwicklungszeit plus alles was damit hinten dran hing, also da waren ja auch die Teams, die daran forschen wollten, die hatten ja.

Gedanklich schon die nächsten 5 bis 10 Jahre Forschung ausgeplant für diesen Zweck. Das ist schon schon heftig und da kann ich mir schon vorstellen, wie man dann drauf. Ist wie fährst du drauf? Tino Naja, das ist ja auch noch der Punkt, dass du nicht nur die ganze Technik verlierst, weil sie sprichwörtlich in die Luft geht, sondern. Du hast auch eine Rakete am Himmel, die explodiert und in einzelnen Teile wieder auf die Erde fällt.

Sozusagen, du hast ja auch den diesen Gefallenaspekt dahinter, aber so weit ich das. Gelesen hab ist ja auch niemand zu Schaden gekommen. Gott sei Dank.

Aber du hast natürlich diesen riesen wirtschaftlichen und wissenschaftlichen Schaden und deine Reputation leidet natürlich auch dadrunter, wenn du dafür bekannt bist, dass du ne absolut erfolgreiche Rakete, die so oft gestartet ist, entwickelt hast und jetzt den Nachfolgeanpreist und der komplett nach 30 Sekunden da oder 37 Sekunden in die Luft geht. Ja, ist schon schwierig.

Die Frage ist, woran kann das jetzt gelegen haben, weil es sei ja wie gesagt erstmal gut aus, der Start war absolut erfolgreich und nach ungefähr dieser halben Minute kommt die Rakete von vom Kurs ab und sprengt sich selbst, was ja auch ein entscheidender Aspekt ist, dass es eine Selbstzerstörung

war. Genau das heißt die funktioniert interne genau die hat super funktioniert, weil interne Systeme entschieden haben Nähe die Flugbahn passt hier ganz und gar nicht mehr, jetzt wird die Selbstzerstörung eingeleitet. Und ja gut. Was was passiert nach so einem Schock? Dann wird es natürlich in die Aufarbeitung gehen und man versucht, diese Fehler zu finden, was da eigentlich gerade passiert ist.

Und da sind ja super interessante Sachen rausgekommen und da wollen wir ja in der heutigen Folge auch gezielt darauf eingehen, weil wir uns ja das Ganze auch hinsichtlich der Software Entwicklung anschauen wollen, und zwar wurde bei der Entwicklung der Ariane 5 sehr, sehr viel Code und allgemein von der Software von der 4 übernommen, weil. Sie ja so erfolgreich war und gut lief.

Und da liegt auch schon so der erste Knackpunkt, Du hattest ja vorhin schon gesagt, es gab ja einen Grund, dass die 5 entwickelt wurde, und zwar einfach, weil du andere Spezifikationen hattest. Das heißt, du wolltest eine höhere Traglast haben. Du brauchtest quasi eine höhere Beschleunigung. All so eine Punkte führen ja eigentlich zu einem anderen System, wenn man das jetzt mal auf abstrakter Ebene oben betrachtet.

Ne, also vergleichsweise, wenn du jetzt sagst ich hab NN Fahrzeug was sich vielleicht Leute n bisschen besser vorstellen können. Ich hab n Auto ja das hat auch viel Räder wie der Nachfolger auch haben soll, aber ich hab

einerseits. Ne 80 PS Kleinwagen und auf der anderen Seite möchte ich jetzt aber n super Sport Supersportler da 350 PS. Keine Ahnung was auf auf die Straße bringen und sag na ja gut aber das 80 PS Auto war ja ziemlich geil von der Karosserie her und so können wir doch einiges übernehmen, da wirst du ja auch an Spezifikationsgrenzen sehr wahrscheinlich stoßen oder an Anpassungen und umso interessanter aus heutiger Sicht, dass das einfach übernommen wurde. Ich mein gut, man muss sagen,

wir gehen einige Jahre zurück. Ja, also der Staat war 96 und die Entwicklung die Jahre davor. Das ist auch noch mal eine ganz andere Art und Weise der Softwareentwicklung gewesen,

muss man dazu sagen. Ja, richtig, also vielleicht gehen wir davon aus, du hast nicht die Standards wie heute, weil man lernt ja auch über die Jahre aus sämtlichen Fehlern, die in der Softwareentwicklung stattgefunden haben, und sie haben stattgefunden, sonst würden wir ja diese Reihe jetzt hier auch nicht anfangen, aber ich finde es trotzdem

interessant, dass das nicht. Nachspezifiziert wurde und genau dadurch ist auch der Software Bug quasi aufgetreten und auch gefunden oder konnte dann auch gefunden werden. Magst du da vielleicht mal drauf eingehen, was denn eigentlich der Software Fehler am Ende war, weil das resultiert ja eigentlich nur aus der fehlerhaften Spezifikation?

Ja genau. Also ich würde da zuerst noch mal ganz kurz einen Mini Schritt zurückgehen und zwar im Endeffekt diese Software, die quasi recycelt wurde von der Ariane 4 für die Ariane 5 war. Ja, im Endeffekt. Also es war ja ein bestimmtes System, was dafür genutzt wurde, und das war das sogenannte. Irs bzw. Das heißt sowas wie inercial Reference System oder ich glaube auf Deutsch übersetzt heißt das sowas wie Trägheitsnavigationssystem um das mal ganz auf den Punkt zu.

Bringen. Also ich kenne es auch nur unter Iris, in dem in dem. Fall hier genau, aber das. Dieses IS ist im Endeffekt ja, sagen wir mal, kann man sich vorstellen, eine zentrale Sensoreinheit, die halt eben auch dafür zuständig war. Quasi die Stabilität und die Navigation der Rakete zu steuern oder zu berechnen. Oder ne wie du das jetzt dir gerne vorstellen möchtest und.

Da ist dann auch schon n bisschen, der kann man sich schon vielleicht n bisschen vorstellen, was das Problem ist, wenn diese Rakete zum Beispiel sich einfach quer stellt und es um Stabilität und Navigation geht, ne? Und da war das Hauptproblem, um das kurz zusammenzufassen.

Ein Überlauf in einer Variable. Heißt, wenn man sich jetzt mal ganz laienhaft vorstellt, du möchtest vielleicht irgendwelche Berechnungen anstellen und du fährst mit einem Auto 100 und weil du gerade vorher noch das Autobeispiel genommen hast und du fährst auf einmal das Auto, kann aber mehr und fährt auf einmal zum Beispiel 100 und ein Kilometer pro Stunde, und dann würde beispielsweise der Tacho, das ist jetzt wäre jetzt dieser Überlauf, um sich das vorzustellen, würde der Tacho

von anstatt auf 101, weil das gibt es ja nicht, würde er wieder auf 0 springen so. Kannst du dir ungefähr vorstellen. Und demzufolge würdest du dir vielleicht als Fahrer denken. Ja, gut, ich. Fahre wahrscheinlich nicht 0. Jetzt auf einmal war ich fahre ja, aber wenn du einfach nur ein System hast was diese Werte nimmt und damit weiter rechnet. Dann kommt es unter Umständen zu Merkwürdigkeiten, die dann auch dafür sorgen, dass halt eben.

Sag ich jetzt mal Fehlverhalten auftreten, die eigentlich nicht auftreten sollen, ne. Ja, das ist halt auch ein ganz guter Punkt. Bevor wir mal technisch auf diese diese Konvertierung eingehen, was die, die also diesen Überlauf verursacht hat. Das ist ja genau der Punkt, warum das erst aufgetreten ist. Bei dem Übergang von der 4. Auf auf die Ariane 5, weil dieser dieser kritische Software Bug war ja scheinbar schon in der 4. Drin, weil wie gesagt, das wurde aus dem System aus dem IS

übernommen. Und konnte aber nicht festgestellt werden mit den Tests, weil wie du so schön sagtest, das Auto oder die Rakete einfach nicht so schnell werden konnte, dass dieser Bug auftritt. Richtig, das heißt um das Fahrzeug Beispiel noch mal zu nehmen, du fährst 90 Stundenkilometer max und ab 100 würdest du denn diesen Überlauf erzeugen, weil du halt von von deinen Daten nicht mehr sage ich mal oder höhere Werte speichern kannst. Dann ist dir das ja in dem Falle

wirklich egal. Du weißt, deine Software hätte da n potenziellen Bug, aber du kommst nie zu dieser Geschwindigkeit. Und jetzt hast du aber das Ding angenommen, du machst jetzt n super Sportwagen da draus oder du hast auf einmal ne Ariane 5 und die reißt genau diese Geschwindigkeit und dann tritt halt dieser Bug auf und niemand hat diesen auf dem Zettel oder weiß überhaupt, dass dieser Bug in der Software ist, weil es halt nie vorher aufgetreten ist.

Und genau das ist ja der Fall gewesen, aber das. Ding ist das Ding ist wenn. Und das fand ich auch interessant, wenn vielleicht bestimmte Bedingungen von der Ariane 5 nicht so gewesen wären, wie sie waren, sondern vielleicht sie in gewissen Grenzen ein bisschen langsamer geflogen wäre, hätte das sein können, dass dieser Bug überhaupt nicht aufgetreten wäre, sondern eventuell erst, je

nachdem. Ich hab jetzt nicht im Kopf, wie knapp quasi dieser Überlauf erzeugt wurde, aber es ist durchaus wäre durchaus möglich gewesen, dass diese dieser Fehler nicht beim ersten Start, sondern bei einem der nächsten Starts aufgetreten wäre. Und wenn man sich das mal klar macht und dazu auch noch im Hinterkopf hat, dass die Ariane 5 sogar angedacht war, vielleicht auch bemannte Raumfahrt zu machen, ist das schon. Ganz schönes Ding, das. Stimmt, und da wurde auch

hoffentlich draus gelernt. Ja, das ist n riesen Ding. Man sagt ja immer eher wie kann sowas auftreten in so sicherheitskritischen Systemen, ne und heutzutage gibt es ja so vielen. Normen und Prozesse, die genau dafür sorgen, dass sowas halt hoffentlich nicht noch mal auftreten können, weil du halt einfach so ne Spezifikation halt

doppelt absichert, sag ich mal. Oder es einfach Prozesse gibt, wie spezifiziert wird, wie Software geprüft wird, wie Abgetestet wird etc. Um halt sowas dann einfach auch finden zu können und beheben zu können, weil an sich. Man muss ja auch fairerweise sagen, der eigentliche Bug dahinter, dem da möchte ich jetzt mal drauf eingehen aus technischer Sicht, das wird jetzt mal ein bisschen technischer. Das ist sowas von klein, dass ich verstehen kann, dass man das übersieht.

Rein wenn du es Reviews und quasi auf den Code gucken würdest. Wir gehen jetzt mal nicht davon aus, dass das nicht abgetestet war et cetera, sondern einfach nur zur damaligen Zeit. Es ist, glaube ich, sehr wenig. Es war vielleicht eine Zeile Code oder so. Weil was am Ende passiert ist und diesen kritischen Fehler ausgelöst hat, war nämlich ne interne Umwandlung.

Eines Datentyps im Endeffekt. Um quasi diese horizontale Geschwindigkeit. Ich meine, es war die Geschwindigkeit. Zu repräsentieren und das an andere Systeme auch weitergeben zu können, also quasi die ermittelte Geschwindigkeit. Und dabei ist intern eine Wandlung eines 64 Bit gleitkommawertes in eine 16 bit ganzzahlung. Vorgenommen worden so, und man kann ja jetzt 1 und 1 zusammenzählen. Man hat auf der einen Seite 64 bit leitkomma.

Und dieser Wert, der da quasi gemessen wurde, wird dann intern in eine 16 bit ganzzahl umgewandelt, um dann diesen Wert quasi zu repräsentieren. Die Geschwindigkeit und die andere Systeme zu geben und da 64 bit Speicherplatz auf der einen Seite und 16 bit auf der anderen. Da ist es eigentlich schon vorprogrammiert, weil wenn du dir überlegst 16 bit jetzt lass mich nicht lügen, was sind das 32000 paar zerquetschte was der Max wert ist.

Und bei 64 Bit bist du ja im viel viel höheren Bereich. Klar, du hast jetzt noch Nachkommastellen, aber dennoch, also es reicht halt nicht aus, um diese Zahl repräsentieren zu können und genau dadurch ist ja dieser Überlauf. Entstanden. Und. Das muss ich sagen, kann halt schon übersehen werden. Also allein schon. Also ja, und. Jein. Aus damaliger Sicht sicherlich, aus heutiger Sicht wahrscheinlich eher weniger. Aber was man sagt, ja immer, kann nicht sein.

Und dann passiert es doch. Was, was ich gerade nicht direkt auf dem Schirm habe, ist war vorher auch schon eine Umwandlung von also bei der Ariane 4 eine Umwandlung von einer Gleitkommazahlen eine Ganzzahl, weil rein theoretisch ist das ja schon potenzieller Datenverlust. Auf der einen Seite und auf der anderen Seite hast du natürlich einen deutlich größeren Daten. Sage ich jetzt mal im Verhältnis von von 64 bit auf 16. Also das sind ja, das ist ja auch schon ein deutlicher Unterschied.

Absolut. Natürlich. Also so wie ich es verstanden habe, gab es das schon bei der Ariane 4. Das wurde übernommen und es ist halt nur nie aufgefallen, weil diese Geschwindigkeit nicht erreicht werden konnten. Ja also du hast quasi diesen Bug mit in die neue Rakete genommen. Das ist schon krass, natürlich. Ja, das ist absolut krass, weil dadurch ist es ja nie aufgefallen, oder beziehungsweise wurde nie da ne Fehlerbehandlung dann vorgenommen.

Was ist wenn dieser Überlauf stattfindet oder was, wie können wir das überhaupt verhindern? Du hast ja da mehrere Möglichkeiten. Du kannst ja sagen, OK, wahrscheinlich ist meine Konvertierung nicht sinnvoll, dass ich jetzt von 64 bit auf 16 Bit runter gehe, was der Grund dahinter ist, ist mir jetzt zumindestens nicht bekannt. Vielleicht ja kann viele Gründe haben. Vielleicht wollten sie ne andere Datenrepräsentation haben, vielleicht haben andere Systeme andere Datentypen erwartet.

Sie weiß ja, wie es ist manchmal ne mit Schnittstellen. Und. Vermutlich war das auch eine Schnittstelle. Also genau dieser Geschwindigkeitswert von sag ich jetzt mal der Rakete ne das System zu dem IRS System. Und dadurch, dass das IRS System ja gleich geblieben ist, mehr oder weniger.

Und die Rakete sich ja verändert hat, wurde da halt eben dann, wie du ja auch schon meintest, n anderer Wert, n anderer Maximalwert auch übergeben, weil ich hab mir mal angeguckt, was der Geschwindigkeitsunterschied von den beiden Ariane Raketen war und die Ariane 4 hat einfach ungefähr eine Maximalgeschwindigkeit von 28 000 Kilometer pro Stunde gehabt und die Ariane 5 ungefähr roundabout 36000 Kilometer pro Stunde. Also das ist schon.

Ein ordentlicher Unterschied, wenn man da von 8000 Kilometer pro Stunde ausgeht. Also Vergleich mal. 28 000 bei der Ariane 4. Was hatte ich gesagt? 16 bit integer sind ja auf jeden Fall 32 000 noch was oder? Wahrscheinlich wahrscheinlich wurde aber in Meter pro Sekunde an der Stelle gerechnet. Deswegen kann ich mir jedenfalls vorstellen, dass diese Zahlen jetzt vielleicht, ich kann es

nicht im Kopf umrechnen. Das wär jetzt super witzig, weil wir jetzt so direkt so 5 zahlen, da raushauen dann eher gut Leute da das. War der Bug. Das war der Bug. Einer ist wie gesagt, wir haben natürlich keinen Einblick über die internen Rechnungen da, aber das ist soweit quasi als Ursache. Des Softwarefehlers quasi identifiziert worden. Auch von den Entwicklern selbst und. Ja, es ist absolut verständlich, dass das zu diesem Fehler dann

führen kann. Und ja, was am Ende dann zu der Explosion geführt hat, ist natürlich, dass diese fehlerhaften Ergebnisse zu einer Korrektur der Flugbahn geführt hat, obwohl nicht zu korrigieren, war eigentlich die Rakete sich dann so extrem geneigt hat und andere Systeme der Rakete entschieden haben, so, hier stimmt was ganz und gar nicht, Selbstzerstörung in 321 und damit. War's das auch schon mit dem ersten Start der Ariane 5? Hatte dann doch ein vorzeitiges, sehr schnelles Ende, aber.

Was kann man daraus lernen, ist die Frage und vor allem würde mich noch interessieren, das könnten wir noch mal diskutieren, wie hätte man es vermeiden können, jetzt wo man weiß okay da gab es einen Software Bug, es war ein Konvertierungsfehler, der hat zum Überlauf geführt, was übrigens ein sehr klassisches Problem ist, gerade auch im Embedded Bereich. Was hätte man tun können, um das zu verhindern? Na also erstmal.

Was, was mir auf jeden Fall auch noch so n bisschen im Kopf rumschwirrt, ist halt eben, dass zwar auf der einen Seite zwar lange daran entwickelt wurde, auf der anderen Seite aber eben halt auch. Bei gerade in solchen Forschungsbereichen ist zwar eine lange Entwicklungszeit, wurde zwar veranschlagt, aber diese Entwicklungszeit ist ja

trotzdem. Du hast ja immer noch dahinter diesen Punkt, dass jemand sagt, aber bitte nicht so lang, also und bitte nicht so teuer und demzufolge hast du ja trotzdem zwar bei einer langen und aufwendigen Entwicklung einer neuen Rakete beispielsweise auf Papier erst mal etwas, wo man sich vielleicht sagt, Boah, das hat nicht lange gedauert, oder das hat ja echt eine Menge Kosten in Anspruch genommen.

Nur wahrscheinlich. Halt im Verhältnis zu wenig Kosten veranschlagt bzw zu wenig Zeit veranschlagt, weil. Genau. Beispielsweise. Durch zeitkritische Aspekte, weil etwas schneller fertig wurde, habe ich auch gelesen, dass sozusagen die. Die Zeit von den Testen von Komponenten zwar soweit gemacht wurde, also zum Beispiel wurde das IAS nochmal getestet, was ja

Probleme am Ende hatte. Diesen Bug hatte nur halt eben einzeln und unabhängig von den anderen Spezifikationen, das heißt bestimmte Sachen wurden einzeln getestet, die Rakete wurde einzeln getestet, also diese Komponenten wurden halt separat auch sehr sehr gründlich unter die Lupe genommen, bloß halt dann an manchen Stellen eben nicht so im Verbund wie sie dann am Ende in der Realität sage ich jetzt mal wirklich zum Einsatz kam. Und das war auch.

Hat dazu geführt, dass im Endeffekt auch die dieser Bug wieder zum Einsatz kam. Ist halt Tests testen ist da halt auch ein spannendes spannender Punkt, weil man kann ja nicht sagen, dass sie dieses System nicht getestet haben, ist ja jetzt nicht so ein Fall von ungefähr ein ungetestete Software. Natürlich geht was schief. Das Problem ist einfach, dass man aus der Erfahrung von der Ariane 4, so verstehe ich das dementsprechend auch bei der 5.

Also mal blöd gesagt, die Testfälle übernommen hat. Und halt genau diese neuen Anforderungen nicht in den Grenzfällen Abgetestet hat. Also quasi man hat das mit den Geschwindigkeiten getestet, aber natürlich nicht unter der Prämisse, dass sie so hoch werden können oder wären dann auf jeden Fall wären durch die leistungsstärkere Rakete. Man kann sagen, man hätte es verhindern können durch.

Sorgfältigeres Abtesten, das wäre auf jeden Fall eine Take Home message, sage ich mal, die man daraus ziehen könnte. Was natürlich auch noch ein Punkt ist. Und der ist auch enorm wichtig. Das ist jetzt natürlich wieder auf höherer Ebene, nicht unbedingt auf der Software Ebene ist natürlich, diese Spezifikation zu übernehmen, in den größten Teilen, macht einerseits Sinn, wenn man sagt Okay das war. Sehr erfolgreich mit der Ariane 4 und viele Systeme davon behalten wir wie sie sind.

Entschuldigt aber nicht, dass man nicht quasi Sachen. Erneut spezifiziert oder adaptiert und da gab es ja dann anscheinend auch große Mängel, dass zum Beispiel das mit diesen Geschwindigkeiten nicht berücksichtigt wurde, das heißt, da hätte man einfach auch erneut das Ganze, das ganze gesamte Gesamtsystem spezifizieren müssen, oder wie siehst du das?

Sehe ich auch so. Was ich in dem Zuge mir angeguckt hatte ist, ich weiß nicht, also es ist ja natürlich, ich finde es auch schwer nachzuvollziehen, dass man sagt okay. Wir testen das Halt nicht unter neuen Spezifikationen wie du meinst. Oder beziehen das nicht ins Kalkül mit ein.

Und genau in dem Zusammenhang gibt es ja auch nicht nur die rein logischen Faktoren. Sondern es können ja auch zum Beispiel psychologische Faktoren hinzukommen, wie zum Beispiel ein sogenannter confirmation Bias. Dir das was sagt, das ist ja im Endeffekt die psychologische Tendenz, Informationen so zu interpretieren.

Dass sie bestehende Überzeugungen bestätigen, das heißt, es wurde so darauf gepocht oder oder es es wurde so darauf vertraut, dass diese Ariane 4 oder dieses IIAS der Ariane 4 so gute Arbeit. Geleistet hat am Ende, dass man im Endeffekt wahrscheinlich gesagt hat, wir können Zeit und Geld sparen und und müssen sozusagen nicht noch mal eine Neuentwicklung dieses dieser IAS Software machen und das finde ich halt interessant, weil das auch.

Sag ich jetzt mal in vielen Punkten, die auch bei manchen Ausfällen in technischen Zusammenhängen. Stattgefunden haben auch solche Biases, also solche Tendenzen, solche Verschiebungen. Psychologisch sag ich jetzt mal zum Einsatz kommen, und das ist interessant, weil das sind genau Punkte, wo man sich oftmals denkt, das kann doch einfach nicht sein. Und rückblickend ist es genauso passiert, und das ist manchmal sehr, sehr. Schwierig zu greifen, aber. Gehen wir mal weg von den

psychologischen. Sachen. Aber du weißt doch, wie man so schön sagt, Never Change your running System. Das dachten sie sich auch damals und ist leider nicht ganz so geil gelaufen, ne? Genau. Ja genau, also die Spezifikation ist auf jeden Fall auch noch so n Punkt die zu adaptieren ne

absolut wichtig. Das wär denn so schon der zweite Punkt den ich jetzt mal so mit dir zusammen daraus schlussfolgern würde, wenn ich das jetzt so richtig mitgezählt hab, das heißt natürlich die Testabdeckung und wie gesagt auf Anforderungsebene die Spezifikationen anzupassen, was noch ein spannender Punkt ist. Du kannst ja nicht nur sagen, wir versuchen diesen Fehler zu vermeiden im vor. Oder wir testen dann, um ihn zu erkennen.

Du müsstest den Bug ja auch noch fixen und da das finde ich, ist halt ziemlich spannend, schwierig zu beurteilen, wenn man die Software ansich nicht wirklich kennt. Was ich da als erstes hinterfragen würde ist, warum wurde auf einen 16 bit integer runtergegangen Ganzzahl also was der Grund ist und warum man nicht vielleicht einen größeren Datentyp, der Halt größere Werte repräsentieren kann. Verwendet hat. Aber das kannst du dir vielleicht sogar auch beantworten, oder?

Also mindestens eine Vermutung hast du locker gerade, also wenn die. Frage ist, wenn es jetzt wirklich an mangelnden Speicherplatz lag, weil es so ein eingebettetes System ist, weiß ich. Also ja, kann sein. Und OK, gehen wir mal davon aus, das ist n gutes Gedankenspiel. Gehen wir mal davon aus, sie wollten sie hatten nicht den Speicherplatz und mussten haben halt gesagt OK wir haben jetzt hier 16 bit die wir repräsentieren können. Könnte man ja trotzdem.

Das ganze abfangen Überlauf, das auf jeden Fall. Also man hätte prüfen können, ob es quasi zu einem Überlauf kommt. Und in dem Falle verschiedene Fehler, also Behandlungen durchführen können. Also entweder man lässt es eskalieren, sozusagen sagt OK, wir haben hier falsche Werte. Oder man hätte es so sättigen können. Ist auch so ne Strategie die es gibt. Das heißt bevor du nen Überlauf zulässt. Lieferst du den Maximalwert

zurück, so das als Sättigung. Also du bist ja gerade an dem Punkt, dass du sagst, OK, wir sind jetzt nicht im was, wie können wir die Fehler im Vorfeld vermeiden, sondern was ist, wenn wir vielleicht n Fehler nicht gefunden haben während den Tests und ein Fehler operativ während der Mission nenne ich das jetzt mal als alter Raumfahrer ganz professionell. Während der Auftritt. Naja, war gut, dass das eine schließt ja das andere nicht aus.

Also du kannst ja im Vorfeld alles Mögliche da spezifizieren und abtesten, aber es klingt ja schon so, dass es Sensordaten sind und auch so ein Sensor kann ja mal fehlerhafte Daten senden oder also übermitteln und dann ist es ja immer noch gefährlich, da kannst du ja fünfmal abtesten, dass du mit diesen Werten nur in dem Bereich spezifiziert, es kommen nur Werte in dem Bereich, weil der Sensor genau diesen Wertebereich hat, dann testest du ab, dass Du innerhalb dieses Bereiches damit

klar kommst. Du solltest. Aber auch Abtestens was es, wenn mehr oder weniger kommt, also außerhalb deines Bereichs und dementsprechend. Deiner Software ne Fehlerbehandlung einbauen, das heißt mit den entsprechenden Testfällen hätten sie das auch 100 Pro gemacht, aber da sie gar nicht an diese Fälle gedacht haben oder nicht damit gerechnet haben, gab es halt nicht diese Fehlerbehandlung und deswegen war ich gerade mal gedanklich. Was hätte man tun können? Wenn denn doch solche Werte

ankommen. Nee, das ist ist auch auf jeden Fall glaub ich NN sehr, sehr wichtiger Punkt und ich find es gut, dass du das noch mal explizit mit den Sensordaten gesagt hast, weil ich glaube, jeder der schon mal mit oder das erste Mal mit Sensordaten gearbeitet hat, wundert sich wieso auf einmal Sachen Auftreten oder Werte kommen, die man nicht erwartet. Hat. Also da sprechen wir beide aus eigener Erfahrung und ich glaube, das geht wahrscheinlich fast jedem so.

Und genau an der Stelle solche Exception Handlings, wie man dann im Endeffekt damit umgeht und was eventuell vielleicht dann auch eine Richtige. Sag ich jetzt mal. Richtiges Resultat wäre oder eine richtige Aktion wäre, die man darauf macht, sei mal dahingestellt, weil es ist halt auch wieder fraglich. Wenn du jetzt zum Beispiel bei der Ariane eine Geschwindigkeit hast, die du theoretisch nicht in deiner Datenstruktur einfangen kannst.

Und dann aber den Maximalwert annimmst, könnte es vielleicht unter Umständen auch schwierig sein, gerade weil solche Regelungen im Verhältnis zu den tatsächlichen physikalischen Gegebenheiten natürlich sehr, sehr. Labil auch sein Können, sag ich mal.

Ne, also Kleinigkeiten können schon Probleme auslösen, deswegen ist es auf jeden Fall ne sehr sehr wichtige n sehr sehr wichtiger Punkt ne Fehlerbehandlung zu haben vielleicht ich will mich nicht aus nicht zu weit aus dem Fenster lehnen, aber vielleicht hätte das auch noch nichts gebracht, da hätte wahrscheinlich einfach auch die Spezifikation gefehlt, aber es ist auf jeden Fall ein sehr sehr wichtiger Punkt, der auf jeden Fall in Betracht gezogen werden

sollte und das finde ich gut. Ich hatte noch überlegt was man zum Beispiel auch eine Art Redundanz bringen kann. Weil du könntest ja auch zum Beispiel sagen Okay, angenommen, jetzt wieder angenommen, ist natürlich auch, wie das Ding das IS funktioniert gut, aber fällt vielleicht aus anderen Gründen

aus. In dem Fall war es ja eine Art Kettenreaktion, weil es zu diesem Überlauf gekommen sind und dann halt eben Werte falsch weitergegeben wurden, Fehlerzustände erreicht wurden, vielleicht auch wirklich quasi der Programmcode mit einer mit dem Error abgeflogen ist. Man weiß es nicht oder ich weiß es auf jeden Fall nicht. Aber wenn sowas passiert unter Umständen oder auch aus anderen Gründen, dann ist es vielleicht auch wichtig oder gut, eine

Redundanz zu haben. Das heißt, wenn ein System ausfällt, hast du ein zweites System, was genau das gleiche macht, was aber an der Stelle übernehmen könnte. Ja, also das ist natürlich so n, also Redundanz hinsichtlich der funktionalen Sicherheit ist ja n ganz großes Thema und auch oft eingesetzt. Das macht ja auch Sinn, dass du auch zum Beispiel Sachen einfach von 2 unabhängigen Instanzen messen lässt. Dass du einfach ne ausfällebene

hast oder ne kontrollebene? Ja, ist halt die Frage, ob das redundante System dann an der Stelle geholfen hätte oder dann einfach nur zweimal der fehlerhafte Wert weitergegeben worden wäre oder das eine System sagt so. Ja, nee, ist richtig was das andere gerechnet hat, hab ich ja

auch rausbekommen. Ne, also weil ich glaube in diesem Gesamtsystem hat keiner also einen erkennbaren Fehler gemacht, sondern es wurde einfach davon ausgegangen, dass das die korrekten Werte sind und demnach auch wurde davon ausgegangen, dass diese Flugbahn drastisch verlassen wird. Evtl. Orte in der Umgebung gefährdet sind. Und deswegen hat sie sich dann am Ende gesprengt. Nicht, dass sie irgendwo da noch

rein kracht sozusagen. Ja, wie gesagt, diese Fehlerbehandlung hätte man erkennen können.

Auch möglich gewesen. Wir hatten jetzt ja mal so ein paar Sachen besprochen, was man machen könnte, ist halt schwierig zu beurteilen, wenn man die gesamte Software dahinter nicht kennt, was ich nur spannend finde ist, das hätte halt auch in der Ariane 4 Halt schon drin sein können und müssen und wäre dann ja auch adaptiert worden auf die 5, was denn immer noch dieses Spezifikationsproblem hat, aber es ist halt schon erstaunlich, dass in der vierten.

Ich davon ausgegangen wurde, dass dieser Wert einen Überlauf haben könnte. Und deshalb ist es auf jeden Fall unglaublich wichtig und ich glaube, diese diese Lehre wurde auf jeden Fall auch daraus gezogen, dass es unglaublich wichtig ist, bei einem neuen System oder bei einer neuen Anwendung wirklich die Gegebenheiten zu spezifizieren und da auch nochmal in punkto Anforderungen sehr, sehr wichtig, welche Anforderungen an eine Software von den gegebenen Umständen quasi. Angebracht werden.

Und das ist auf jeden Fall eine Sache, die, glaube ich, auch dieser Fall für die Zukunft der Softwareentwicklung sehr, sehr relevant war. Was ich zum Beispiel auch gelernt habe im Studium, weil das genau auch ein Beispiel im Fachspezifikationstechnik war. Es ist. Am Anfang auch schon meinte. Es wird dann auch zur Lehre rangezogen und es ist ja auch richtig so. Und zum Abschied noch eine positive Nachricht.

Ich glaube so knapp ein Jahr später ein Paar, ein Jahr und ein paar Monate gab es ja den nächsten Start der Ariane 5 erfolgreich und sie ist ja auch bis heute noch im Einsatz, obwohl jetzt auch. Glaube ich schon. An der 6 entwickelt wird seit einer Weile, das habe ich aber nicht genau auf dem Schirm, das habe ich nur irgendwann mal gelesen, aber. Meine. Ich meine, dass die Ariane 5 jetzt auch den, also diese Art von Rakete, auch ihren letzten Start jetzt schon hatte.

Okay genau, aber na dann. Finger Cross für die 6, würde ich sagen. Also weiß ich jetzt gerade nicht hundertprozentig oder er kommt bald, aber auf jeden Fall. Die Ariane 5 ist auf jeden Fall nicht mehr so richtig. Aber sie hatte noch ihre Zeit, das nochmal so als positiven Abschluss. Man hat also auch wirklich daraus gelernt. Ich meine gut, diese Fehler wurden ja identifiziert und dann ja auch sichtlich behoben, hoffe ich. Genau.

Ich glaube halt auch, dass also, dass auch diese so Testverfahren gerade auch in Zusammenhang mit entsprechenden Komponenten verbundstest, dass sowas auch einfach zukünftig dadurch eben auch gepusht hat, auch genauso wie du meintest, die sag ich

jetzt mal Fehler Behandlung für. Also dass man auf eine höhere Robustheit gegenüber verschiedenen Werten hat, vielleicht auch für Ausreißer. Ja, da gibt es ja wie gesagt, hatte ich ja eingangs erwähnt, dass es unfassbar viele Prozesse und Normen mittlerweile dazu gibt, gerade auch im Bereich Funktionale Sicherheit zum Beispiel und?

Auch Standards. Ja, genau, und das ist ja auch einfach richtig, weil das sind sehr sicherheitskritische Systeme und da ist es auch wichtig, nach diesen Prozessen zu entwickeln. Und genau solche Sachen sind halt auch, und das wie gesagt. Ein sehr, sehr großer Vorfall dieser Ariane 5, die genau solche Sachen halt auch wirklich nochmal für. Genau für diese Sachen noch mal sensibilisiert hat. Ja, man kommt in Folge werden.

Genau. Und demzufolge war es natürlich in dem Moment eine absolute Tragödie, also zumindest finanziell und von dem ganzen Effort, der dahinter gesteckt hat. Zum Glück nicht, weil Menschenleben auf dem Spiel gestanden haben und niemand hat nicht. Wurde verletzt und demzufolge am Ende eigentlich was meinst du Glück im Unglück gewesen ist. Ja. Ja. Ja, also Tino, Ich glaube, wir haben ein bisschen über die Ariane 5. Sag ich jetzt mal.

Die Story. Genau, die Story über die Ariane 5 einmal ein bisschen aufbereitet. Hat mir sehr viel Spaß gemacht, war sehr interessant, hat auch Spaß gemacht im Vorfeld, dazu rüber zu recherchieren. Und mit dir darüber zu sprechen. Vielen Dank dafür. Bitte, bitte, vielen Dank an dich, aber ich finde auch das Format sehr cool. Ich freue mich, dass das auch gewählt wurde von der Community, weil ich echt Bock hab, mich mit diesen Fällen zu beschäftigen und natürlich auch zu zu

erkrösen. Warum es dazu gekommen ist, das finde ich halt immer spannend und oftmals sind es dann halt sowas wie ja Überlauf im Wertebereich, wo du dir denkst, warum zur Hölle. Aber ja sowas passiert. Aber du weißt ja auch manchmal selber, wenn man an einer Software schreibt, dann die Git commit Message aufmacht und guckt wer das war und auf einmal steht man selber da drin. Zum Glück nicht bei der Ariane 5.

Genau. Dann würde ich sagen, schließe ich jetzt diese Folge und wenn dir die Folge gefallen hat, dann lass uns gerne ein Like da oder empfehle auch gerne die Folge 2 oder 3 Freunden oder Freundinnen weiter. Das würde uns natürlich sehr gefallen, wenn du natürlich Anmerkungen zu dieser Folge hast oder Feedback, dann lass uns sehr sehr gerne über die Podcast Mail zukommen, das würde uns

auch sehr viel helfen. Genau den Podcast, Die Podcast Mail und auch unsere anderen Plattformen findest du in den Shownotes und in diesem Sinne würde ich sagen, bis zur nächsten Folge deine Coaling. Buddies gemeinsam besser.

Transcript source: Provided by creator in RSS feed: download file
For the best experience, listen in Metacast app for iOS or Android
Open in Metacast