Yine
“Yıldız Savaşları'nın Bilgisayar Programı üzerine
Bu programda hata bulunmadığını kim garanti edebilir?
106 yaşında bir nine, bir gün ilkokula kaydolması gerektiğini öğreniyor. Ne mi oldu? Bilgisayar yanıldı. Artık radyoda, televizyonda, basında “Bilgisayar yollu bir ifade, geçerli ve neredeyse dokunulmazlık taşıyan bir mazeret haline geldi. Ne de olsa, bir ev bilgisayarına sahip olan herkes, bir programın parazitlerinden arındırılmasının ne kadar meşakkatli bir iş olduğunun bilincindedir. Hem zaten, 106 yaşındaki ninenin ilkokula çağrılması, kadıncağız için yarattığı sorunlar bir yana, eninde sonunda bir hoşluk olarak görülebilir, gülünüp geçilebilir. Ama bir de şunu düşünün: Deniz mili yerine “kadem””' ölçüsü ile programlandığı için, bir füze savunma sistemi hedefini şaşırıyor; stratosferdeki deneme füzesi yerine, İstanbul- Paris seferini yapmakta olan yolcu uçağını lazer bombardımanına tabi tutuyor. Böyle bir kaygı haksız mı? Bilgisayar hataları, yeterli özen gösterildiğinde, daha programlama aşamasında önü alınabilecek parazitlerden ibaret değil midir? Kesinlikle hayır! Tüm programlama çalışmalarının çoğunun yeni gelişmelere değil de bakıma ilişkin programlara ayrıldığı, bilinen ve pek çok araştırma ile desteklenmiş bir veridir. Bu bağlamda, hataların giderilmesi de “bakım”' sayılmaktadır. Şimdi Yıldız Savaşları projesinin, ya da daha ciddi adıyla ““Stratejik Savunma ne olduğunu hatırlayalım. Projenin hedefi, düşman atom füzelerini mümkün olabildiğince erken keşfedip, daha ilk harekete geçiş aşamasında imha etmek. Bunun için de lazer silahlarından yararlanılacak.
SDI (Stratejik Savunma Girişimi): Geleceğin savaş alanına egemen olacak güç ancak Bilgisayardır
Demek ki, geleceğin savaş alanı tümden otomatik bir görünüme kavuşacak, bilgisayarların denetimine tâbi olacak ve insanın etkisinden büyük ölçüde sıyrılacaktır. Birleşik Devletler'in Başkanı bile “Yıldız Savaşları'”- nın başlatılması konusunda karar alma gücüne sahip olamayacaktır. Bu durum, şimdiye kadarki tecrübeler ışığında hatalardan arındırılmış bir yazılımın geliştirilme şansının ne denli az olduğunun bilinmesiyle gerçekten kaygı uyandırıcı olmaktadır.
Bugün için henüz tasarımlanamayacak düzeyde yüksek bir iş kapasitesi
Uçuşa geçen düşman füzelerini yakalamak ve imha etmek görevi bugünkü yüksek verimli bilgisayarların kapasitesini aşan son derece karmaşık özellikler içermektedir. * Yüksek oranda paralel işlem yapılması ve tüm bilgisayarların el atmakla yükümlü oldukları verilerin merkezi olmayan bir tarzda depolanması zorunluğu vardır. * Savunma, dikkatini düşman alana ve özellikle uzun ve kritik bir aşama olan ilk harekete geçiş aşamasına yoğunlaştırmak zorundadır. * İşlem süreçleri epey uzun süren sinyal akışı zamanlarına rağmen (ağın büyüklüğünden ötürü binde bir saniyelik birkaç süre), içinde füzenin durumunu değiştirdiği hıza ayak uydurmak zorundadırlar. İşlemlerin gerçekzamanda (real-time) yapılması gerekiyor. * Sistemden beklenen şeyler büyük ölçüde bilinmemektedir. (Örneğin düşman savunma sisteminin özellikleri). Ve bu beklentiler sürekli değişmektedir. * Savunma sistemi görev yaparken kısmen tahrip edilebilecektir (örneğin, nükleer patlamaların elektronik üzerine yaptığı elektro-manyetik şok etkisiyle). Ama sistem buna rağmen güvenli bir tarzda çalışmak zorundadır. * Tamamlanmış bir sistem hiçbir zaman somut koşullarda sınamaya tabi tutulamaz (meğer ki bir atom savaşı denemesi yapılsın). Oysa böyle bir test büyük yazılım paketlerinin (özellikle “gerçek zaman” işlemli) işlevlerini yerine getirebilmeleri için bugüne kadar vazgeçilmez bir koşul olarak kalmıştır. Bu niteliklere ancak donanım en aşırı talepleri yerine getirecek düzeyde olduğu zaman ulaşılabilir. Ama *““Battle Management (Savaş yönetimi sistemi) yazılım daha da büyük önem taşır. Bu program (kapsamının 10 ila 100 milyon satırdan oluşacağı tahmin edilmektedir) hakkında 1984 yılının Şubat ayında “Fletcher Raporu”'nda bilgi verilmiştir. Bu raporda örneğin ağ'ın düğüm başlarındaki bilgisayarların saniyede 10 milyon ile 1 milyar arasında hesaplama işlemini yapmakla yükümlü oldukları kabul edilmektedir. Çok kısa bir süre içinde önde gelen yazılım uzmanları SDI-yazılım projesinin aşağıda belirtilen şu üç durumdan birinden dolayı başarısızlığa mahküm olduğundan kuşku duymaya başladılar: 1- Sistem, karmaşıklığından ötürü kurulamayacaktır. 2- Sistem, gerçi ortaya çıkarılabilecektir, ama ilk görev anında başarısızlığa uğrayacaktır. 3- Sistem kurulabilecektir, ama hata yapmaya eğilimli yapısı dolayısıyla “savunma olayı''nı durup dururken harekete geçirebilecektir, (kasıtlı olarak çıkarılmayan bir atom savaşı tehlikesi). Hatta son madde SDI projesinin başarı şansının (başarı kelimesini tırnak içine almak gerekirdi) ancak ilk darbeyi vurması halinde sözkonusu olabileceği yolunda mantıksal bir çıkarıma götürüyordu: Bir incelemede ifade edildiği gibi ““SDI ve ilk darbe özdeş ikizler Şimdi David L.Parnas'ın söylediklerine kulak verelim. David Parnas 41 yaşında bir bilgi-işlem profesörü 1985 yılı Haziran ayında Bakanlığı Stratejik Savunma Girişimi Savaş Yönetimi Bilgisayarla Destekleme Komitesi”'ne atanmış. İlk oturumdan sonra da istifa etmiş. Parnas istifa nedenini açıklarken SDI-Savaş Yönetimi-Yazılım projesinin gerçekleşebilirliğine ilişkin mitosun sürdürülmesi için hiçbir gerekçe bulamadığını ifade etmiş ve bu kararında siyasi bir tercihin rol oynamadığını belirtmişti: “SDI-Programını eleştiren başka birçok bilim adamının aksine bugüne dek benim savunma çabalarına ya da Savunma Bakanlığı'nca finanse edilen araştırmalara hiçbir itirazım olmamıştı” diyen Parnas'in SDI'nin hedeflerinin bugünkü sistemlerle elde edilemeyeceğine ve SDI Örgütü'nün paralarının israf edildiğine ilişkin yargısı onun “yazılım konusundaki 20 yılı aşan tecrübesine ve bu süre içinde programların askeri uçaklarda devreye sokulması ile ilgili olarak yapmış olduğu 8 yıldan daha çok süren bir araştırma etkinliğine dayanmaktadır. Parnas'ın düşüncelerini anlamak için onun temellendirmesindeki önemli noktaları en azından tezler halinde bilmek gerekiyor: 1- Yazılım güvenli değildir. Çünkü çok sayıda büyüklük düzenlerinde yazılım donanımdan daha karmaşıktır ve farklı durumlara ilişkin olarak bu denli yüksek bir sayı bilinen tekniklerle ve matematiksel yöntemlerle yazılıma egemen olmanın mümkün olmadığına işaret etmektedir. 2- SDI-Yazılımı, henüz şu anda bilinmeyen örneğin aşırı hızda işlem yapmaya ilişkin talepleri karşılamak zorunda kalacağı için daha da güvenilmez olacaktır. Çünkü şu anda yürütülmekte olan yazılım taleplerin bilinmesine rağmen hatadan arındırılmış değildir. 3- Yazılım, “paralel işlem getirdiği sorunların üstesinden gelemeyen eskimiş yöntemlere göre geliştirilmektedir. Modern yöntemlerin kullanıldığı yerlerde ise yazılımın geliştirilmesi ile başka teknik ürünlerin üretilmesi arasındaki temel farklar gene de ortadan kaldırılamaz.
4- “Otomatik programlama” ise, bilgisayarın kendisine önceden verilen tek tek verileri bir “program''a dönüştürme çabasından ibarettir. Sonuç olarak bu ön bilgiler de insanlar tarafından hazırlandığından güvenilir olamazlar.
5- “Yapay zeka” bir yandan geçerli olabilecek var sayımlar elde etmek için çok tartışmalı bir alandır, Öte yandan da SDI-Savaş Yönetimi'ne ilişkin olarak insani bir tecrübe mevcut olmadığından ve olmayacağından, bu yüzden de bilgisayarlarda depolanamayacağından “uzman sistemler”” bile bu konuda yardımcı olamamaktadırlar. Bilişim uzmanı kuşkucu profesör, ideolojik tartışmalara girmemekte ve serinkanlı bir tarzda sadece şu soruyu sormaktadır: ““...uçuş halindeki füzelerde savaş başlıklarını şaşırtma başlıklardan büyük bir isabetle ayırdedebilecek durumda olan uzman kişilervar mıdır bugün?” İşte uzmanlar dünyasının büyük bir bölümünün görüşlerini de bu suretle özetlemiş olan Profesör Parnas'ın temellendirilmeleri bu merkezdedir. Son üç yıl içinde Başkan Reagan'ın bilim adamları topluluğuna yönelik olarak yaptığı “Atom silahlarını etkisiz kılma yolunda elimizde araçlar bulunması için yeteneklerinizi harekete geçiriniz.”” yollu çağrıdan bu yana tıpkı bilgisayar uzmanı Parnas gibi SDI'- ye karşı siyasi değil teknik itirazlarını açıklamak için söz isteyen ünlü bilim adamlarının ve teknikerlerin sayısı gittikçe artmaktadır. Bunlara göre kapsamlı bir füze savunmasının gerektirdiği yazılım işleri öyle büyüktür ki bunları bilgisayar biliminin en yeni yöntem ve bilgileriyle bile sağlamak mümkün değildir. Bu yılın ilk ilkbaharında görüş bildiren ve IBM, Digital Egipment, Xerox Corp, Tandem
Computer Inc., AT T ya da Wang- Enstitüleri gibi firmaların önde gelen 36 Amerikan yazılım-uzmanı ““SDI teknik olarak yapılamaz” demişlerdir. Yazılım teknolojisinin çok yavaş geliştiği (uygulamada hâlâ 60'lı yılların düzeyinde olduğu) sonucuna varan bilim adamlarının sayısı giderek artıyor.
İki uzmanın özgün anlatımıyla ““Büyük yazılım-sistemlerinin üretilmesi bilimden çok bir sanattır, ilerleme hızları ise bir hayal kırıklığı Ev bilgisayarı ya da PC alanlarında programlar 500 ila 50.000 programsatırı içerirler. Kodu yazmak ve bakımını yapmak zorunda olan programcının açısından bakıldığında “Lines Of Code” (LOC), programın büyüklüğü konusunda hâlâ kullanılmakta olan bir ölçü oluşturmaktadır. Programlama giderinin yaklaşık 160 iş günü olduğu bildirilmekte ve bu arada her 160 gün için en çok (gene yaklaşık) 300 LOC'luk bir üretkenlik hesaba katılmaktadır. Bu sayı az gibi görünüyorsa da programlanacak işin çözümlenmesinden hazırlanan sistemin ayrıntılı ve esaslı bir tarzda sınanmasına kadar tüm gelişim etkinliklerini içine alır. Örneğin PC üzerindeki bir veri-bankası sistemi için bunun geliştirilmesinde harcanmış 15 x 160 işgünü kolayca bir araya gelebilir. Hata oranları için de tahmini değerlendirmeler mevcuttur: Hata oranı her 1000 LOC'da yaklaşık 50.5 ve 0.5 arasında gidip gelmektedir; bu oran yazılımın niteliğinden beklenen işlere göre değişiklik göstermektedir. Yüksek hesaplamalar konusunda dikkatli olma zorunluğu vardır. Bir program diğerinden 10 misli daha büyük ise sadece 10 misli daha çok hata yapmakla kalmaz, program bölümlerinin birbirlerini karşılıkla etkilemelerinden dolayı hata oranları da katlanarak artar
BİLGİN
Sanayideki ve ekonomideki ticari sistemler bünyelerinde yüzlerce 160 iş günü, on binlerce LOC ve tabii binlerce de hata barındırırlar. Bugüne kadarki en büyük yazılımsistemleri Amerikan uzay-programı ve askeri amaçlı kullanımlar için yazıldılar: Uzay mekiği sistemi binden 0.8 hata oranlı yaklaşık 3 milyon LOC füze savunması için geliştirilen ““Safeguard” sistemi yaklaşık 2 milyon LOC içerir. “WWMCCS” sistemi (Dünya-çapında Askeri Kumanda ve Kontrol Sistemi) 10 milyonun üstünde LOC'a sahiptir ve geliştirilmesi için 10 milyar dolardan daha çok bir meblağ harcanmıştır. Bazen sevimli bir adle “Wimmix”' diye adlandırılan bu sistemin bizzat yaratıcılarının ifadesine göre “güvenilmez olduğu apaçıktır.”” Buna rağmen eğilim gittikçe daha büyük, daha karmaşık sistemlerle doğru olmaktadır ki, bunlar daha yüksek üretkenlik ve daha az hata oranıyla yazılabilmektedirler. Bugün için tecrübe edilmiş pek çok sayıda tek tek olgulardan hareketle karmaşık yazılım projelerine ilişkin şu sonuçları çıkarmak mümkündür: * Planlanan büyüklük, giderler, geliştirme zamanı ve hata oranları 2 ila 5 misli aşılmaktadır. * Sürenin ve gider hesaplarının baskısı altında sıklıkla son ve en önemli sınama faslı (tahammül testi) ihmal edilmektedir. * Tüm sistemin sistem azami yük al-
En çok görülen en
vahim hatalar bildirimlerin eksikliğinden ya da Do yanlışlığından dolayı ortaya çıkar.
tındayken test edilmeksizin (sistem ya da entegrasyon testi) hizmete sokulması imkansızdır. * “Tamam ”'lanmış bir sistemin değiştirilmesi (hataların giderilmesi de dahil) ve daha da geliştirilmesi büyük ölçüde hemen hizmete sokulmasından sonra başlar. * Büyük sistemlerde uzman kişiler sürekli olarak hataların teşhisi ve giderilmesi için uğraşmaktadırlar, sistemi kullananların bir problemleri olduğunda başvurabilecekleri pek çok danışma yerleri vardır. * Büyük projelerin birçoğu (örneğin aya iniş için Apollo füze savunması için Safeguard) ancak insan unsurunun müdahalesi ile kötü sonuçlardan (örneğin yanlış alarmlarla sistemi harekete geçirmek) korunmuşlar ve korunacaklardır. * En çok görülen en vahim ve en pahalıya gelen hatalar programlanmadan dolayı değil, tek tek bildirimlerin eksikliğinden ya da yanlışlığından dolayı ortaya çıkarlar. (SDI-yazılımının karakteristik özelliklerinden biri.) Bu türden teknik yasallıkların politikacılar ve teknokratlar tarafından anlaşılmadığı düşüncesi kötümser bir bakış açısının sonucu değil, tarihin acı tecrübesiyle sınanmış bir gerçektir. Bunun somutlaştırılması için Çernobil'e ya da uzay-mekiği felaketlerine atıfta bulunmaya gerek yoktur. Bundan dolayı pek çok uzman çalışmalarının ne anlam taşıdığını, hangi Bütü n Bayi le rde önceliklere ve hangi etkilere sahip olduğunu ancak bizzat araştırmacıların ve bilim adamlarının değerlendirebilecekleri ve değerlendirmek zorunda oldukları sonucuna varmış ise bunda şaşılacak bir yan yoktur. Bu sorumluluğu kimse onlardan alamaz.
Jürgen Beetz'den Çeviren Güven Savaş Kızıltan