İnsan öldüren yazılımlar

Bugün etrafımızda birçok sistem insan kontrolü olmadan çalışıyor. Asansörümüze binip gitmek istediğimiz katın butonuna basıyoruz ve o bizi istediğimiz kata götürüyor. Arabalarımızın motoru kendini en optimum seviyede çalışacak şekilde ayarlıyor. Otomatik kahve makinesi bizim için kahvemizi otomatik olarak hazırlıyor, hem de istediğimiz şeker seviyesiyle.

Artık uçakları, füze savunma sistemlerini de büyük oranda içlerindeki yazılımlar kontrol ediyor. Kısacası gömülü yazılımlar hayatın her alanında çalışıyorlar. Hal böyle olunca yazılımlar çok kritik roller oynuyor. Oluşabilecek hatalar can kayıplarına ve büyük hasarlara yol açıyor. Geçmişte olmuş büyük yazılım hatalarına bir göz atalım isterseniz:

Arienne 5 füzesi faciası:
4 Temmuz 1996 günü Arienne 5 füzesi fırlatıldıktan 40 saniye sonra havada infilak etti. Olayın sonrasında yapılan soruşturma sonucunda kazanın bir yazılım hatasından olduğu ortaya çıktı. Arienne 4 füzesindeki yazılım Arienne 5’e uyarlanmıştı. Modül bazında testler yapılmıştı ancak genel sistem testleri zaman sıkışıklığından dolayı tam olarak gerçekleştirilmemişti. Arienne 5 füzesinin uçuş profili Arienne 4’ten farklı olduğundan kalkıştan kısa bir süre sonra bir değişkendeki taşma sonucu kontrol sistemi devre dışı kaldı. 500 milyon dolarlık kayıba malolan bu hata tarihteki en pahalı yazılım hataları arasında yerini aldı.

Hedefi Iskalayan Patriot Füzeleri:
25 Şubat 1991 tarihinde Körfez Savaşı sürerken Amerika’nın İsrail’e yerleştirdiği Patriot füzelerinden biri Irak’tan gelen Scud füzesini ıskaladı ve bir Amerikan askeri barakasına isabet eden füze 29 Amerikan askerinin ölümüne yol açtı. Daha sonra yapılan incelemede Patriot füzelerinde zaman hesaplamasında kullanılan 24 bitlik sabit noktalı değişkende oluşan hatanın buna neden olduğu anlaşıldı. 100 saat açık kalan füze sistemindeki zaman hatası 0.34 saniyeyi bulmuştu ve bu da füzenin 500 metrelik bir sapma yapmasına neden olmuştu.

Therac-25 tedavi cihazındaki hata:
Therac-25 hastalara belirli dozlarda radyasyon uygulayarak tümörlerin yok edilmesinde kullanılan medikal bir cihazdı. Cihazın kullanımında iki farklı mod bulunuyordu: Düşük güç modu ve yüksek güç modu.Düşük güç modunda düşük seviyedeki elektron ışını hastaya direk olarak uygulanıyordu. Yüksek güç modunda ise otomatik olarak hastayla cihaz arasına metal bir plaka koyuluyordu.

Operatörün cihaza önce yanlışlıkla yüksek güç moduna geç komutu vermesi ve ardından bunu iptal edip düşük güç moduna alması sonucu cihaz bir hata mesajı verir. Aslında hata mesajı verdiği durumda sinyalin hastaya uygulanmamış olması gerekirken yüksek güçlü radyasyon hastaya uygulanmıştır. Operatörün işlemi birkaç kere tekrar etmesiyle hastaçok büyük oranda radyasyona maruz kalır. Cihazdaki hata sonucu 1985-1987 yılları arasında 6 kişi hayatını kaybetti.

Bütün bu tarihi trajedilerden gömülü yazılımların ne kadar kritik roller oynayabileceğini görmüş oluyoruz. Tabi aynı zamanda ne kadar ciddi sonuçlara yol açabileceklerini de. Günümüzde hala “hatasız yazılımlar”ın arayışı devam etmektedir.

Linkler:

http://en.wikipedia.org/wiki/Ariane_5_Flight_501

http://en.wikipedia.org/wiki/Therac-25

http://en.wikipedia.org/wiki/MIM-104_Patriot#Failure_at_Dhahran


2 thoughts on “İnsan öldüren yazılımlar

  1. Dün Türksat 3A uydusunun fırlatılmasının yazılım hatasından dolayı ertelendiğini öğrendik.Yazılım hataları hala birçok projeyi tehdit etmeye devam ediyor

  2. Gömülü yazılımda, en doğru (ya da yanlışsız) olana erişmek için birçok deneme ve simülasyonun da yapılması gerekiyor. Masa başında yazılan kod için saatlerce kafa patlatıp, en sonunda “tamam, işte budur” deseniz bile, yapılan bir denemede ummadığınız bir olay cereyan edip, her şeyi mahvedebiliyor. Eminim, yukarıdaki kazaların hepsinde, programcılar, binlerce şartı düşünüp ona göre bir yazılım geliştirdiler ama iş uygulamaya gelince o binlerce şartın dışındaki bir şartın gerçekleşmesi bu kötü sonuçları doğurdu.

    Sonuç olarak, kusursuz ve sıfır hatalı bir yazılıma ulaşmak imkansız; ancak buna yüzde 99 yaklaşılabilir; bu yaklaşma da çok sık yapılan deneme ve simülasyonlarla gerçeklenebilir. Yukarıdaki gibi ölümcül kazalarla değil…

    Başarılar…

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak.