← Teknoloji ve Bilişim

Otuz Yedi Saniyelik Hata: Ariane 5

4 Haziran 1996 sabahı, Avrupa Uzay Ajansı'nın yeni ve güçlü roketi Ariane 5, Fransız Guyanası'ndaki fırlatma üssünden ilk uçuşu için havalandı. Roket, bilimsel araştırmalar için tasarlanmış dört uyduyu taşıyordu. Bu proje için yıllarca çalışılmış ve büyük bir bütçe harcanmıştı. Ancak fırlatmadan yaklaşık otuz yedi saniye sonra roket, aniden rotasından saptı ve kendini imha etti. Roket ve taşıdığı uydular, saniyeler içinde bir ateş topuna dönüştü.

Kazanın nedenini araştırmak için bir soruşturma kurulu oluşturuldu. Kurulun raporu, felaketin nedeninin bir donanım arızası ya da bir patlama değil, roketin yönlendirme sistemindeki bir yazılım hatası olduğunu ortaya koydu. Bu hata, bilgisayar tarihinin en pahalı yazılım hatalarından biri olarak anılır.

Hatanın kaynağı, şaşırtıcı biçimde basitti. Roketin konumunu ve hareketini hesaplayan yazılımın bir bölümü, bir sayıyı bir veri biçiminden daha küçük bir veri biçimine dönüştürmeye çalışıyordu. Bu işlem, bir litrelik bir sürahideki suyu, yarım litrelik bir bardağa boşaltmaya benzetilebilir. Su miktarı bardağın kapasitesinden azsa sorun yoktur; ancak fazlaysa taşar. Ariane 5'in yazılımında da roketin yatay hızıyla ilgili bir değer, kendisine ayrılan alana sığmayacak kadar büyüdü. Bu "taşma" hatası, yönlendirme bilgisayarının çökmesine yol açtı. Yedek bilgisayar da aynı yazılımı çalıştırdığı için aynı hatayla çöktü. Ana bilgisayar ise çöken sistemden gelen hata kodlarını gerçek uçuş verisi olarak yorumladı ve roketi aşırı bir dönüşe zorladı.

Bu hatanın en ironik yanı, sorunlu yazılım parçasının, aslında daha önceki Ariane 4 roketinden olduğu gibi alınmış olmasıydı. Bu yazılım, Ariane 4'te yıllarca sorunsuz çalışmıştı. Ancak Ariane 5, Ariane 4'ten çok daha güçlüydü ve çok daha farklı bir uçuş profiline sahipti. Yeni roketin yatay hızı, eski roketinkinden çok daha yüksekti. Ariane 4 için güvenli olan sayı sınırları, Ariane 5 için yetersiz kalmıştı. Daha da ilginci, sorunlu yazılım parçasının hesapladığı değerler, fırlatmadan sonra aslında hiçbir işe yaramıyordu. Bu hesaplamalar, yalnızca fırlatmadan önceki hazırlık aşamasında gerekiyordu.

Soruşturma raporu, yazılımın yeni roketin koşullarında yeterince test edilmediğini de ortaya koydu. Mühendisler, eski yazılımın kanıtlanmış güvenilirliğine güvenmiş ve onu yeni koşullarda sınamaya gerek görmemişti. Ayrıca yedek sistemin ana sistemle tamamen aynı yazılımı çalıştırması, yedekliğin bu tür bir yazılım hatasına karşı hiçbir koruma sağlamadığı anlamına geliyordu.

Ariane 5 felaketi, yazılım mühendisliği alanında önemli dersler bıraktı. Başka bir bağlamda başarıyla çalışmış bir yazılımın, yeni bir bağlamda da çalışacağının varsayılmaması gerektiği vurgulandı. Yazılımların, kullanılacakları gerçek koşullarda kapsamlı biçimde test edilmesinin önemi anlaşıldı. Hata durumlarında sistemin nasıl davranacağının dikkatle tasarlanması gerektiği de kazanın dersleri arasındaydı.

Ariane 5, sonraki yıllarda düzeltilen yazılımıyla Avrupa'nın en başarılı roketlerinden biri hâline geldi ve onlarca başarılı uçuş gerçekleştirdi. Ancak o ilk uçuşun otuz yedi saniyesi, mühendislik eğitiminde dikkatin, testin ve varsayımları sorgulamanın önemini hatırlatan bir örnek olarak anlatılmaya devam etmektedir.

Okuduğunu sına

ÖSYM tarzı
Soru 1Bu metne göre Ariane 5 kazasının doğrudan nedeni aşağıdakilerden hangisidir?
Soru 2Metne göre yedek bilgisayarın kazayı önleyememesinin nedeni aşağıdakilerden hangisidir?