27 Mayıs 2009 Çarşamba

Proje Yönetimi Kestirim Yöntemleri - Function Point

Function Point nedir? Birçok sektörde ölçüm için dünya çapında kullanılan standart ölçü birimleri kullanılmaktadır. İnşaat Mühdendisleri, uzunluk birimlerini kullanır, makina mühendisleri beygir gücü, tork gibi terimlerle standartlaşmıştırlar(hayatımda ilk defa yazdım bu kelimeyi), elektrik - elektronik mühendisleri watt, amper gibi ölçü birimleri kullanmaktadırlar. Yazılım projelerinde, geliştirilecek olan uygulama için ne tür bir ölçü birimi kullanmalılar? Yapılan fazla mesai? Çalışma saati? Proje ekibinde 1 haftada çıkan tartışma sayısı? Tabii ki değil. Hatta diğer kestirim yöntemlerinde kullanılan LOC(kaynak kod satır sayısı) bile yazılım projeleri için zayıf bir ölçü birimidir çünkü LOC daha çok projenin geliştirme aşamasını ölçen bir birimdir fakat bir yazılım projesinin, analiz, tasarım, birim test, sistem test, kullanıcı kabul testi gibi farklı aşamaları da vardır ve bunları LOC ile ölçmek çok gerçekçi değildir. Function Point(Kimi yerlerde use case olarak da karşınıza çıkabilir) Yazılım projeleri için doğru fakat genede ölçeklendirilmesi zor bir ölçü birimidir.

Function Point Analizinde, Function Point'ler 5 kategoride gruplanır.
1 - External interfaces (Dış arayüzler) : Projenin geliştirme kapsamı dışında yeralan bir sistemle veri alışverişi ihtiyacı duyulan fonksiyonaliteler. Örneğin, devlet servislerinden Mernis sorgusu ile kişi bilgilerini almak.

2 - User inquires (Acil Kullanıcı Müdahaleleri) : Yazılımın yönettiği sistemde beklenmedik bir durum olduğunda, kullanıcılara uyarı gönderilmesi(yazılım üzerinden, e-posta ya da SMS ile bilgilendirme) ve kullanıcının müdahalesini kapsayan fonksiyonaliteler. Örneğin sunucuda veritabanı uygulamasının CPU kullanım yüzdesi belirli bir limite yaklaşmış ise sistem yöneticisinin bilgilendirilmesi.

3 - User outputs (Kullanıcı ile paylaşılan veriler) : Sistemin herhangi bir işlemi tamamladığına(ya da tamamlayamadığına) dair kullanıcıya veri ya da rapor iletmesi.

4 - User inputs (Kullanıcının giriş yaptığı veriler) : Sistemin herhangi bir işlemi gerçekleştirmesi için kullanıcılardan veri alınması.

5 - Internal interfaces (İç arayüzler) : Uygulamanın içerisinde yeralan farklı modüllerin veri alışverişini kapsamaktadır. Bir veritabanından farklı bir veritabanına arşivleme ya da yedekleme işlemi bu grupta değerlendirilir.

Function pointlerin LOC'da çevirmek için çeşitli yöntemler kullanılabilir. LOC birçok kestirim yöntemi için girdi teşkil etmektedir.

Function Point'leri LOC'a çevirmek için öncelikler Function Point'lerin karmaşıklıklarını belirlemek gerekir. FP karmaşıklıklarının ağırlıkları aşağıdaki tabloda belirtilmiştir;



FP'ler programlama dillerine göre farklı kodlama standartlarına göre kodlanabilir ve aynı FP, farklı programlama dillerinde değişik satır sayıları ile geliştirilebilir. Bunun için genel olarak kullanılan değişkenlere örnek aşağıdaki tablodadır. Daha detaylı bilgi için http://www.qsm.com/FPGearing.html adresi ziyaret edilebilir.



FP'ler ağırlıklarına ve programlama dillerine denk gelen değişkenlerle çarpıldığında. FP'nin geliştirilmesi için gerekli kod satır sayısı elde edilebilir. Şirket bünyesinde tutulan tarihsel bilgilere, ve çevresel faktörlere dayanarak (performans gereksinimleri, reusability, değişiklik isteği gelme ihtimali vs.) dayanarak FP'ler bir düzenleme katsayısı ile (0,95 ; 1,1 gibi) çarpılabilir.


FP analizi için teknik bir uzman görüşüne ihtiyaç bulunmamaktadır. Doğru çıkartılmış FP'ler ile(ki burada İş Analistlerine çok büyük görev düşmekte) gerçeğe yakın kestirimler yapılabilir. Bakım ve iyileştirme çalışmaları için kullanılabilir bir yöntem değildir. Ayrıca karmaşıklık ağırlığı gibi sonucu ciddi oranda etkileyebilecek kararların tamamen subjektif olarak verilmesi zorunluluğu FP yönteminin dezavantajları arasındadır.

3 yorum:

  1. teşekkürler bu konuyla alakalı doğru dürüst türkçe bilgiyi burada buldum

    YanıtlaSil
  2. VErdiginiz bilgiler için teşekkür ederim

    YanıtlaSil
  3. Teşekkür ederim çok iyi bir anlatım olmuş

    YanıtlaSil