300 likes | 829 Views
YazILIm MühendİSLİĞİ İÇİN Malİyet Hesaplama. MEHMET KAYKISIZ/11541504 Yrd. Doç.Dr. Resul DAŞ . Önemli Açıklama.
E N D
YazILIm MühendİSLİĞİ İÇİN Malİyet Hesaplama MEHMET KAYKISIZ/11541504 Yrd. Doç.Dr. Resul DAŞ
Önemli Açıklama • Burada gösterilen metotlar sadece açıklama içindir. Ayrıntılı olarak sadece Use-Case Point anlatılmıştır. Bu metotları çoğu matematiksel olduğu için inşaat sektöründe bile kullanılabilmektedir. Amaç iş süresi vb. Parametrelere göre maliyet hesaplamaktır.
Maliyet Hesaplama Metotları • Analysis Effort method • COCOMO • COCOMO™ II • COSYSMO • Evidence-based Scheduling • Function Point AnalysisProxy-based estimating • Program Evaluation and Review Technique (PERT) • SEER-SEM • SLIM • The Planning Game (from Extreme Programming) • Weighted Micro Function Points (WMFP) • Wideband Delphi • The Use Case Points method (UCP) • CETIN[1]
Analysis Effort Method • Analysis Effort Method metodu, yazılım projelerinin ne kadar süreceğini hesaplamak içindir.Burada amaç başlangıçta bir işi gerçekleştirme süresi belirlemektir. Bu yönteme girişler Boyut (S), Yakınlık (F) ve Karmaşıklık (C) gibi sayısal faktörlerdir. Bir yazılımın incelenmesi için önceki tecrübelere dayanarak bir tahmin yapılır. Tasarım, Kodlama, Birim Testleri, Testler değerlendirme parametreleridir. Eğitim ve Proje Yönetimi bu hesapların dışındadır. • Bu yöntem tecrübelere dayalı tahminlerle yürütülür. [2]
Constructive Cost Model (COCOMO) • Constructive Cost Model (COCOMO), Barry W. Boehm tarafından 1981 yılında geliştirilmiştir. Şuan ki ve gelecekteki verilerin regrasyon analizini kullanır. 2000 satır ile 10000 satır arasındaki dönemin büyük projelerinde maliyet hesaplaması için kullanıldı. COBOL, PL/I programlama dilleri kullananlar tarafından tercih edildi. Şelale geliştirme modeline dayanan bir temeli vardı. Bu metot COCOMO 81 olarakta bilinir. • [3]
Constructive Cost Model (COCOMO) • İş Gücü (K) K= a x SbZaman (T) T= c x Kd • S:Bin tipinde satır sayısıa,b,c,d : 3 farklı model için katsayılar • Ayrık Projeler İçin: a=2,4 , b=1,05 , c=2,5 , d= 0,38 • Yarı – Gömülü Projeler İçin: a=3,0 , b=1,12 , c=2,5 , d= 0,35 • Gömülü Projeler İçin: a=3,6 , b=1,20 , c=2,5 , d= 0,32 [4]
COCOMO 2 • COCOMO 81 in arkasından 2000 yılında gerçekleştirildi. Veritabanlarının kullanıldığı modern projelerde ve daha kapsamlı ve sağlı sonuçlar sağladı. • Yatırım veya bir yazılım geliştirme sırasında gereken diğer finansal kararlar • Planlama ve kontrolü için temel olarak proje bütçeleri ve programları ayarı • Karar veya yazılım maliyet, zamanlama, işlevsellik, performans veya kalite faktörleri arasında denge sağlamak • Yazılım maliyet ve zamanlama risk yönetimi kararları • Yazlım sistem parçalarının hangisilerinin yeniden alınaca, kiralanacak vb. Kararları alabilmek • Yeniden kullanımı yoluyla, kuruluşun yazılım yeteneğini geliştirmek için karma yatırım stratejileri ayarlama, araçlar, süreç olgunluk, dış kaynak kullanımı, vb [5]
Constructive Systems Engineering Cost Model (COSYSMO) • Ricordo Valerdi tarafından 2002’de üretildi. Bu metot donanım ve yazılım projeleri üzerinde sisteme, personel ve iş süresinin bir tahmini verilerek hesaplanır. Başlangıçta 2002 yılında geliştirilen, modeli şimdi Raytheon, Northrop Grumman, Lockheed Martin, SAIC, General Dynamics ve BAE Systems gibi büyük havacılık ve savunma şirketi tarafından sağlanan 50'den fazla projede kullanılıyor. [6]
Evidence-based Scheduling • Evidence-based Scheduling, Joel Spolsky tarafından oluşturuldu. Amaç yazılım müh. İlkeleri üzerinde bir yorumcu tarafıdan oluşturulan yazılım tahmin yaklaşımıdır. Bu yaklaşımda, süre hesabı yapılırken akıla gelen tüm parametreler alınır. Hastalıktan, Çay, Sigara molasına kadar herşey önemlidir.[7]
Function Point • Function Point , bilgi sisteminde, bir kullanıcıya verdiği işin işlevsellik miktarını ifade ölçüttür. Tek bir birimin maliyeti(dolar/saat) geçmiş projelere göre hesaplanır. 1979 yılında IBM’de Allan Albrecht tarafından verimlilik ölçmek için hazırlandı. Yazılımın işlevsel gereksinimleri belirlenir ve her biri şu beş türe göre sınıflandırılır; • Çıkışlar, sorular, girişler, iç dosyalar ve dış arayüzler. • Fonksiyonlar bunlara göre katagorize edilir, karmaşıklığına göre puanlandırılarak dereceleri belirlenir.[8]
PRICE Systems • PRICE Systems, 1975 yılında RCA şirketi tarafından bulundu. Genellikle parametrik maliyet tahmini, yazılımlar daha erken geliştirilmesi için kabul edilmiştir. Bu sistem şu anda bir uygulama şeklinde satılıyor. • 1976 yılında Donanım Yaşam Döngüsü Maliyet Modeli olarak başlangıç yaptı. Daha sonra yazılım projeleri için sürece yeni yöntemler katıldı. Fakat uygulamanın arka planı hakkında yeterli bir bilgi yok. [9]
Proxy-based Estimating • Proxy-based Estimating, bu sistem kişisel proje geliştirenler için tasarlanmıştır. Benzer projelerdeki çaba üzerine kurulu bir planı vardır, her proje aynı çabayla yapılır mantığına dayanır. [10]
Program (or Project) Evaluation and Review Technique • Program (or Project) Evaluation and Review Technique, kısa adı PERT. Belirli bir projeyi tamamlayana kadar ki görevleri analiz ve temsil etmek için tasarlanmıştır. İlk olrak 1950’lerde ABD donanması tarafından geliştirilen yaygın kritik yön yöntemi ile birlikte kullanılmıştır. [11]
Use Case Points (UCP) • Use Case Points (UCP), yazılım projelerinde, projenin boyuutunu tahmin etmek için kullanılır.Yazılım tasarım ve geliştirme için kullanılan Unified Modeling Language (UML) ve Rational Unified Process (RUP) gibi metodolojiler kullanılır. UCP kavramı modelleme teknikleri UML kümesinin parçası olan kullanım durumlarını kullanılarak yazılmış olan sistem için gereksinimlere dayanmaktadır. Projelerde Emek hesabı için kullanılır. 1993’de Gustov Karner tarafından geliştirilmiştir.
Example • Bir online alışveriş sistemi ele alınmıştır. Aşağıdaki diyagram geliştirilecek sistem için Use-Case Diyagramını gösteriyor.
Arındırılmamış Kullanım Durumu Ağırlık (UUCW) • UUCW hesaplamak için,kullanım durumları tanımlanmalıdır ve her durum için işlem sayısı belirlenmeli. Alışveriş sistemimiz için 9 farklı kullanım mevcut durumda. • Bu durumlar için 2 tane basit, 3 tane ortalama,4 tane karmaşık durumumuz olduğunu varsayalım. • UUCW = (x 5 Basit Kullanım Durumları toplam sayısı) + (Toplam No Ortalama Kullanım Durumları x 10) + (Toplam No karmaşık Kullanım Durumları x 15) • Online Alışveriş Sistemi, UUCW = (2 x 5) + (3 x 10) + (4 x 15) = 100 • UUCW = 100
Düzeltilmemiş Aktör Ağırlık (UAW) • UAW hesaplamak için aktörler hesap edilmelidir. Online Alışveriş Sistemi kullanma durumu diyagramında beş aktör görünmektedir; (Yani Online Müşteri, Pazarlama Yöneticisi, Depo Memuru, Ambar Müdürü) Ödeme İşleme Sisteminde; Bir basit ve insan kullanıcıların aktörlerin her biri için dört kompleks durum aktör bulunmaktadır. • UAW = (x 1 Basit Aktörler toplam sayısı) + (Toplam No Ortalama Aktörler x 2) + (Toplam No Complex Aktörler x 3) • Online Alışveriş Sistemi, UAW = (1x 1) + (0 x 2) + (4 x 3) = 13 • UAW = 13
Teknik karmaşıklık (TCF) • Teknik karmaşıklıkta değerlerin her bir iş için yüküne bakılarak hesaplanır.
Teknik karmaşıklık (TCF) • TCF = 0.6 + (TF/100) • Online Alışveriş Sistemi, TCF için = 0.6 + (42/100) = 1.02 • TCF = 1.02
Çevre Karmaşıklı Faktörü (ECF) • Projeyi etkileyebilecek çevresel faktörlere birer değer atanınır ve ağırlık puanlarıyla hesaplanır.
Çevre Karmaşıklı Faktörü (ECF) • ECF = 1.4 + (-0.03 x EF) • Online Alışveriş Sistemi, ECF = 1.4 + (-0.03 * 10.5) = 1.085 • ECF = 1.085
Use Case Points (UCP) • Arındırılmamış Kullanım Durumu Ağırlık (UUCW), düzeltilmemiş Aktör Ağırlık (UAW), Teknik Karmaşıklık Faktörü (TCF) ve Çevre Karmaşıklık Faktörü (ECF) tespit edildikten sonra, Use Case Points (UCP) aşağıdaki formülle hesaplanır: • UCP = (UUCW + UAW) x TCF x ECF • Online Alışveriş Sistemi, UCP = (100 + 13) = 125.06 1.02 x 1,085 x • UCP = 125.06
Use Case Points (UCP) • Online Alışveriş Sistemi, yazılım geliştirmek için toplam tahmini büyüklüğü 125.06 Use Case Points. • Şimdi Projenin büyüklüğünü bildiğimize göre; Kişi başı 28 saatten hesaplayarak süreci hesaplayalım. • Tahmini Emek = UCP x Saat • Online Alışveriş Sistemi; • Tahmini Emek = 125.06 x 28 • Tahmini Emek = 3501 Saat[12]
Ek Açıklamalar • Günümüz Teknolojileri için yeni maliyet hesaplamaları mevcuttur. Fakat çok ileri konulardır. • Ör;Bulanık Mantık:Optimized Fuzzy Logic Based Framework for Effort Estimation in Software Development • Ör;Sinir Ağları:Optimized Fuzzy Logic Based Framework for Effort Estimation in Software Development
KAYNAKLAR • http://en.wikipedia.org/wiki/Cost_estimation_in_software_engineering • http://en.wikipedia.org/wiki/Analysis_Effort_method • http://en.wikipedia.org/wiki/COCOMO • http://blog.burakkutbay.com/etkin-maliyet-modeli-cocomo.html/ • http://csse.usc.edu/csse/research/COCOMOII/cocomo_main.html • http://en.wikipedia.org/wiki/COSYSMO • Joel on Software: And on Diverse and Occasionally Related Matters That Will Prove of Interest to Software Developers, Designers, and Managers, and to Those Who, Whether by Good Fortune or Ill Luck, Work with Them in Some Capacity,Joel Spolsky, August 2, 2004 • http://en.wikipedia.org/wiki/Function_point_analysis • http://en.wikipedia.org/wiki/PRICE_Systems • http://en.wikipedia.org/wiki/Proxy-based_estimating • http://en.wikipedia.org/wiki/Program_Evaluation_and_Review_Technique • http://en.wikipedia.org/wiki/Use_Case_Points