Programowanie to poważna sprawa, w błędy w nim mogą drogo kosztować. Tak było w przypadku bugu w softwarze rakiety Ariane 5. Jeden błąd w kodzie zniszczył wiele lat pracy inżynierów.
Z kosmodromu położonego u wybrzeży Gujany Francuskiej 4 czerwca 1996 roku startowała rakieta Ariane 5. Był to efekt 10 lat pracy. Lot odbywał się w ramach bezzałogowej misji naukowej Cluster. Jej celem miało być badanie ziemskiej magnetosfery. 10 lat pracy pociągało za sobą także spore koszty osiągające 7 mld dolarów.
Projekt był wspólnym przedsięwzięciem państw stowarzyszonych w ESA (Europejskiej Agencji Kosmiczne). Jednak największym beneficjentem powodzenia całego przedsięwzięcia miał być Paryż.
I chociaż wydawało się, że wszystko jest pod kontrolą i powodzenie projektu jest pewne, to szybko okazało się, że jest zupełnie inaczej.
30 sekund po starcie rakieta zboczyła z kursu. Po 7 sekundach przechyliła się już o 90 stopni. A po kolejnych 2 sekundach rozpadła się na wysokości 3,7 km.
To zdarzenie opóźniło badania magnetosfery o 4 lata i wygenerowało straty w wysokości 370 mln dolarów.
Dlatego też przeprowadzono drobiazgowe śledztwo mające wyjaśnić, dlaczego doszło do tej katastrofy. Okazało się, że winne było oprogramowanie napisane w języku Ada. Doszło w nim do przeciążenia w systemie nawigacyjnym SRI. Stało się tak w wyniku częściowego skopiowania oprogramowania Ariane 5 z jej poprzedniczki – Ariane 4. W poprzedniej rakiecie używano 16-bitowej wersji kodu, w późniejszej – wersji 64-bitowej.
Skutkiem tego było konwertowanie przez oprogramowanie Ariane 5 64-bitowych wartości zmiennoprzecinkowych na 16-bitową liczbę całkowitą ze znakiem. W efekcie powstawała zbyt duża liczba, a błąd programistyczny integer overflow (przekroczenie zakresu liczb całkowitych) prowadził do przeciążenia pamięci. Co wymusiło na systemie autodestrukcję rakiety.
A wszystko przez to, że przy przenoszeniu oprogramowania nie sprawdzono jego założeń. Nie przeprowadzono też testów oraz symulacji komputerowych.
To wyraźnie pokazuje, że kody mają realne przełożenie na życie. A błędy w nich ukryte mogą skutkować wielomilionowymi stratami.
Źródło: www.dobreprogramy.pl