Ana içeriğe atla

(import)Yazılım Hataları

Yazılım hataları, yazılımın yaşam döngüsü içerisinde çok önemli yer tutan unsurlardan biridir. Teorik olarak bir program tüm ayrıntıları ile sınanabilir ancak pratikte bu imkansıza yakın (imkansız diyebiliriz) bir durumdur. Çok basit bir örnek vermek gerekirse şöyle bir program düşünelim.
Kod: procedure TForm1.btnToplaClick(Sender: TObject); var Sayi1,Sayi2,Sonuc:Real; begin Sayi1 := StrToFloat(Edit1.Text); Sayi2 := StrToFloat(Edit2.Text); Sonuc := Sayi1 + Sayi2; end;
Kullanıcıdan girdi olarak aldığı Sayi1 ve Sayi2 değerlerini toplayıp Sonuc değişkenine atayan bir bilgisayar yazılımı.Bu yazılımın tüm olasılıklara göre sınanması demek, programın çalıştığı bilgisayarda tanımlanabilecek tüm gerçel sayı değerlerini Sayi1 ve Sayi2 değişkenleri için girdi olarak vererek Sonuc degerinin doğru olarak elde edilip edilmediğini araştırmak anlamına gelir. Yazılımın çalıştığı bilgisayardaki gerçel sayı tanımının yaklaşık olarak 5.0 x 10^324 .. 1.7 x 10^308 aralığında olduğunu varsayarsak yazmış olduğumuz programın bu sayıda farklı Sayi1 ve Sayi2 değerleri vererek çalıştırılması ve sonucun doğruluğunun araştırılması gerekir. Bu da programı milyarlarca kez çalıştırmak anlamına gelir. Programı her bir çalıştırmanın ve çıkan sonucun doğru olup olmadığının araştırma süresi en az 10 saniye sürdüğü varsayılırsa bu tür bir işin hemen hemen olanaksız olduğu ortaya çıkar. Bu örnek basit bir toplama işi yapan bir yazılım içindi. Kompleks bir yazılımda tüm olasılıkları hesaba katıp tam anlamıyla bir sınama işleminin olanaksızlığı daha net bir şekilde anlaşılabilir. Bu durumda yazılım ancak ve ancak sınırlı sayıda veri ile sınanabilir. Sonuç olarak işletmeye alınan ve üretimi tamamlanmış her yazılım %100 hatasız çalışıyor anlamına gelmez. Her zaman bir hatanın ortaya çıkma olasılığı vardır. Yazılım üretimi sırasında hataların, üretimin hangi aşamalarında meydana geldiğini aşağıdaki tabloda görebiliriz. Sırasıyla:

Mantıksal Tasarım = % 20 İşlevsel Tasarım = % 15 Kodlama = % 30 Belgeleme ve Diğerleri = % 35

Tablodanda görüldüğü üzere yazılım üretiminde özellikle belgelendirme konusunda yapılan hatalar önemli bir yer tutmakta ve bunun doğal sonucu olarakta yazılımın bakımı zorlaşmakta hatta zaman zaman olanaksızlaşmaktadır. Yazılım üretiminde hatalar Yayılma özelliğini içerir. Yazılım üretimi aşamalı bir üretim ve her bir aşamanın çıktısı bir sonraki aşamaya girdi olduğundan ötürü herhangi bir aşamada yapılan yanlış, izleyen aşamalara otomatik olarak yansır. Bu nedenle hata düzeltme maliyetleri ilerleyen aşamalarda giderek artar. Aşağıda Çözümleme aşamasındaki birim hata düzeltme maliyeti 1 olarak alınarak, göreli olarak izleyen aşamalardaki hata düzeltme maliyetleri verilmiştir.
Çözümleme = 1 Tasarım = 5 Kodlama = 10 Test = 25 Kabul Testi = 50 İşletim = 100
hatasız günler dilerim....

Yorumlar

Bu blogdaki popüler yayınlar

Yazılımı Oluşturan Bileşenler Nelerdir?

Yazılımı oluşturan bileşenlerden daha önce söz etmiştik. Şimdi bu bileşenlerin neler oldukları üzerinde biraz duralım. Yazılımı oluşturan bileşenler = Mantık + Veri + Belge + İnsan + Program. Bu bileşenlerin az çok neler olduğunu, neleri kapsadığını biliyoruz ama biz yine de kıyısından köşesinden açıklayalım. Zaten bu yazıdaki asıl amaç yazılım bileşenlerinden belgelemenin yerini ve önemi (dökümantasyon) vurgulamak. Mantık = Yazılım herşeyden önce bir işin bilgisayar aracılığı ile yapılması amacına yöneliktir. Bu nedenle bilgisayarlaştırılmak istenen işin mevcut mantığı bir şekilde yazılıma da yansılıtılmak zorundadır. Veri = Her tür yazılım mutlaka bir veri üzerinde çalışmak durumundadır. Veri işlemeyen yazılımın geliştirilmesi söz konusu değildir. Söz konusu olan veri dış ortamdan alınabileceği gibi yazılımın içerisinde de üretilebilir. Zaten yazılımın temel amacı veriyi bilgiye dönüştürmektir. İnsan = Doğal olarak yazılımın insan bileşeni iki boyutludur. Yazıl

Yunus sen bu dünyaya niye geldin?

Göçtü Kervan Ah nice bir uyursun uyanmaz mısın Göçtü kervan kaldık dağlar başında Çağrışı tellallar inanmaz mısın Göçtü kervan kaldık dağlar başında Emr-i hac göçeli hayli zamandır Muhammed cümleye dindir imandır Delilsiz gidilmez yollar yamandır Göçtü kervan kaldık dağlar başında Yunus sen bu dünyaya niye geldin Gece gündüz Hakkı zikretsin dilin Enbiyaya uğramaz ise yolun Göçtü kervan kaldık dağlar başında Yunus Emre

Leyse li'l-insâni illâ mâ seâ

"Leyse li'l-insâni illâ mâ seâ" derken Hudâ; Anlamam hiç meskenetten sen ne beklersin daha? Mehmet Akif Ersoy / Durmayalim Leyse li'l-insâni illâ mâ seâ : Necm Süresi 39. Ayet. [İnsan için ancak çalıştığı vardır.] Meskenet: 1 . Miskinlik, beceriksizlik. 2 . Yoksulluk, fakirlik. (Türk Dil Kurumu) Olay zaten yeterince acik. Yan gelip yatma kardesim. Calis. Bu misralar yazildigi donemde bu anlami tasiyordu fakat zaman ilerledikce baska bir gercegi de gozler onune seriyor.Gerci bu gercek cok kapsamli bir kac satirla anlatilabilecek bir sey degil kaldiki benim bilgim de buna yeterli degil zaten. Ben giris cumlelerini verebilirim gerisini arastirmak yaziyi okuyanlara kalmis. (Matrix gibi bisey oldu bu yaw. Neo'nun kahinle bulusup yanindan ayrildiktan sonra Morpheus ile konusma sahnesi.) Yani kisaca sunu demek istiyorum. Ben bu misrayi ilk okudugumda hic birsey anlamadim. Bu misralari anlayabilmek icin kuran mealine ve turkce sozluklere bakmak zorunda k