Zio-09-wyk-Slajd6
Problemy z Oprogramowaniem(1)
Innym przykładem tragicznego w skutkach błędu w oprogramowaniu była katastrofa śmigłowca Chinook, który rozbił się o Mull of Kintyre w czerwcu 1994 roku. Tragedia ta kosztowała życie 29 osób (żołnierzy RAF oraz kilkoro najlepszych specjalistów do spraw antyterroryzmu).
Początkowo, jako przyczynę katastrofy podawano błąd pilota. Analiza specjalistów magazynu Computer Weekly z 1997 roku spowodowała ponowną analizę przyczyn katastrofy, doprowadzając w końcu w roku 2002 do podważenia przez Izbę Lordów pierwotnej wersji wydarzeń. Kontrowersyjna decyzja dotyczyła oceny systemu FADEC (ang. Full Authority Digital Engine Control), odpowiedzialnego za kontrolę pracy silników helikoptera. Pierwotnie, FADEC dysponował dwoma niezależnymi podsystemami sterowania: system podstawowy, oparty o rozwiązanie elektroniczne oraz system zapasowy, bazujący na konwencjonalnym, bardziej „analogowym” rozwiązaniu. Jednakże ze względu na presję czasu i fascynację brytyjskiego MON nowinkami technologicznymi zrezygnowano z klasycznego, mechanicznego systemu sterowania, pozostając przy dwóch rozwiązaniach elektronicznych.
Z punktu widzenia twórcy oprogramowania, zawiodła troska o wymagania dotyczące bezpieczeństwa całego rozwiązania w sytuacji ekstremalnej. System zapasowy, który powinien przejąć funkcje systemu podstawowego w przypadku jego awarii został zbudowany według tego samego schematu, co system podstawowy, przez co z góry był narażony na awarię. W tym przypadku zawiodło nie tyle samo oprogramowanie, co system, jako całość. Architekt i programista powinni, tak zaprojektować system sterowania, aby moduł zapasowy mógł zawsze przejąć funkcje systemu podstawowego w przypadku jego awarii. W takich przypadkach moduły zapasowe buduje się zwykle w innej technologii, implementuje inne od podstawowego algorytmy lub wręcz korzysta się z niezależnych, równoległych do podstawowego systemu. Być może, gdyby także i w tym przypadku twórcom architektury aplikacji wystarczyło wyobraźni, nie doszłoby do tej tragicznej w skutkach katastrofy.