YAZILIM BÜYÜKLÜK TAHMİNİ
Gerçekleştirilen yazılım projelerinin başlangıcında yaşanan en büyük zorluk, süreç sonucunda ortaya çıkacak yazılım ürününün büyüklüğünün tahmin edilememesidir. Bu tahminin yapılma aşamasında kullanılabilecek bir çok metot mevcuttur. Bunlardan en yaygın olarak kullanılanı ise “işlev Noktaları Analizi”dir.
Bu analizin, kullanılacak yazılım kodlama dilinden bağımsız olarak yapılıyor olması, bunun her türlü yazılım projesine uygulanabilirliğini sağlamaktadır. Yazılım ürününün büyüklüğünün tahmini ile çeşitli
yönetim unsurlarının belirlenmesi kolaylaşmaktadır. Örnek olarak, ele alınan projedeki personel gereksiniminin tam olarak belirlenebilmesi için ürün büyüklüğü bilgisi gereklidir.
İşlev Noktaları Analizi, temel olarak girdilerin, çıktıların, sorguların, dosyaların ve dış ara yüzlerin etkisinde gerçekleştirilmektedir. Analizin başlangıcında öncelikle bu faktörlerin tespit edilmesi gerekmektedir. Gerekli olan değerler şöyle sıralanır.
· Kullanıcı Girdi Sayısı: Sayılacak her girdi, yazılıma farklı bir uygulama için veri sağlamalıdır. Burada dikkat edilmesi gereken nokta, farklı uygulamalar için farklı veriler kullanıcı girdisi olarak sayılmalıdır. Gereksiz yere bu değer arttırılmamalıdır, bunun için dikkatli olunmalıdır. Diğer önemli nokta ise, kullanıcı sorgularının girdi olarak görülmemesidir.
· Kullanıcı Çıktı Sayısı: Sayılacak her çıktı, kullanıcıya bilgi sağlamalıdır. Bu bağlamda, kullanıcı çıktısı ekranları, raporları, hata mesajlarını vb. noktaları kapsamalıdır. Bununla beraber, ekran çıktısında yer alan her bir veri maddesi ayrı olarak sayılmamalıdır.
· Kullanıcı Sorgusu Sayısı: Sorgu, on-line olan girdidir, sonucunda yazılımın on-line oluşturduğu çıktı oluşturur.
· Dosya Sayısı: Bu sayıyı belirler iken dikkat edilecek nokta, büyük bir veritabanının veya dosyanın bir kısmı ayrı olarak dü ünülebilir ve sayılabilir.
· Dış Arayüz Sayısı.
Bu faktörler ile ilgili değerlere ulaşılması ardından analizin önemli bir kısmına, değerlerin bir terzi edası ile kesilip biçilmesine geldik. Yazılım projelerinin yönetiminde, belki de en önemli unsur terzi
kabiliyetine sahip olmaktır. Aşağıda verilen tabloda yer alan çarpım faktörünün doğru seçilmesi analiz sonucunu etkileyen önemli bir unsurdur.

Tabloda da görüldüğü gibi ölçüm parametrelerinin basit, normal veya karmaşık olarak sınıflandırılması tamamen analizi gerçekleştirenlerin sorumluluğu altındadır. Bu çarpım faktörlerinin seçilmesine göre
sayım sonucu değişecektir.
Bir sonraki aşama ise yazılım projesi ile ilgili hazırlanmış çeşitli kaynaklardan alınmış temel 14 sorunun cevaplandırılmasıdır. Verilen bu cevaplar, 0 ile 5 arasında birer rakam olacaktır. 0 değeri “önemsiz”, 5 değeri ise “kesinlikle şart” anlamına gelmektedir. Daha sonra bu sorulara verilecek yanıtlar toplanarak “Sorgu Sonucu” ortaya çıkacaktır.

Elde ettiğimiz bu iki değeri, Sayım ve Sorgu Sonuçları, kullanarak İşlev Noktaları’nın sayısal değerine ulaşabiliriz.
İşlev Noktaları = Sayım Sonucu X [0.65 + 0.01 x Sorgu Sonucu]
Elde ettiğimiz bu değer kullanılacak yazılım programlama dilinden tamamen bağımsız olarak hesaplanmıştır. Yazılım ürününün tahmin edilen büyüklük değerine aşağıdaki tabloyu kullanarak kolayca erişebiliriz.

Tablo okumasına örnek olarak işlev Noktaları Değeri 52 hesaplanan bir yazılım projesinin JAVA programlama dili kullanılarak kodlanması sonrasında elde edilecek ürünün kod satır sayısının ortalama değeri 1664 (52 x 32) olarak kabul edilir.
Bu konuda yazılmış çeşitli kaynaklara dayanarak, bu tespit edilen değer ile gerçekleştirilen değer arasında %20 oranında sapmanın olabileceğinden söz edilmektedir. Bu sapmaya rağmen yöneticilerin
önünü görebilmesi, ileriye yönelik tahminlerde bulunup, tahminler doğrultusunda kararlar alabilmesi için gerekli ve yararlı bir değerdir.
Profesyonel olarak gerçekleştirilecek her yazılım projesinin başlangıcında bu tür tahminler yapılmaktadır. Birçok yazılım organizasyonu yaptıkları ölçümler sayesinde tablolarda yer alan
değerleri kendilerine göre uyarlamaktadır. Yazının içerisinde de belirttiğim üzere yazılım mühendisliği bir anlamda “terzilik” ile eş değerdir. Bir kumaşı ölçüp, kesip, biçmek ve uydurmak gerekir.
Bu ve diğer konular hakkında görüşlerinizi bekliyorum.
Özgür ERALP
|