Yazılım projeleri ölçüm sonuçları veri tabanının oluşturulması ve yeni yazılım projelerinin maliyet tahmininde kullanimi
Construction of software projects measurement result database and usage in new software projects' cost estimations
Yazar: MURAT AYYILDIZ
Danışman: PROF. DR. OYA KALIPSIZ
Yıldız Teknik Üniversitesi / Fen Bilimleri Enstitüsü / Bilgisayar Mühendisliği Ana Bilim Dalı
Derece: Doktora, 2007
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control
Dizin: Maliyet tahmini = Cost estimation ; Yazılım mühendisliği = Software engineering

Özet:
Bilgisayar yazılımlarında maliyet tahmini son zamanlarda oldukça önem kazanmıştır. Yazılımgeliştirme maliyeti her geçen gün artmaktadır. Yazılım maliyet tahmini hem devletler, hem deorganizasyonlar için çok önemli bir problemdir. Planlanan zaman ve bütçeyi aşan çok sayıdaproje mevcuttur. Bunun temelinde baştan bütçe ve zaman tahminini doğru yapamamaktankaynaklanan başarısızlıklar yatmaktadır.Yazılım geliştirme giderek pahallılaşmakta ve bilgi sistem bütçelerinin içinde büyük birmaliyet faktörü olmaktadır. Yazılım geliştirme maliyetleri ölçüm ve kestirimmetodolojilerinin yokluğundan dolayı sık sık kontrol dışına çıkmaktadır. Geçen on yıl içinde,bazı araştırmacılar maliyet tahminleme konusunda çalışmışlardır ancak sonuçlar tatmin ediciolmaktan uzaktır.Bu çalışmada yeni bir yazılım ölçüt kümesi oluşturma, oluşturulan yazılım ölçüt kümesi içinveri toplama ve bu veri kümesi ile bir yapay sinir ağı kullanılarak yazılım maliyet tahminimodeli geliştirme gerçekleştirilmiştir.Bu çalışmada, yapay sinir ağı temelli yazılım maliyet tahminleme uygulama sonuçları,başarısızlık nedenleri incelenmiş ve bir yapay sinir ağıyla yeni hazırladığımız ölçüt kümesinikullanarak bir model oluşturulmuştur. Yazılım maliyet tahminleme çalışmalarında ölçütkümesi seçiminin hayati bir rolü vardır. Özellikle yapay sinir ağı bazlı çalışmalarda ölçütkümesinin seçiminin önemi göz ardı edildiği görülmüştür. Çalışma sonucu oluşturulan modelile elde edilen sonuçlar, geleneksel ölçütler kullanarak yapılan önceki çalışma sonuçlarıylakarşılaştırılmıştır. Karşılaştırmayı yapabilmek için iki tip veri kullanılmıştır. Birinci kısımönceki çalışmalarda genellikle kullanılan yapıcı maliyet modeli verileri (COCOMO :Constructive Cost Model) ve ikinci kısım olarak yeni oluşturulan ölçüt kümesine uygunolarak Türkiye'de bulunan uluslararası bir firmadan toplanan veriler kullanılmıştır. Yazılımmaliyet tahminleme çalışmalarında olan bir diğer zorluk veri toplamanın zaman ve dikkatgerektirdiği gerçeğidir. Üstelik reel sektörde rekabet açısından dezavantaj oluşturma olasılığınedeniyle, birçok kurum bu konuda topladığı verileri eğitim amaçlı da olsa kullandırmayıuygun görmemektedirler.Literaturde yaptığımız incelemede yapay sinir ağı kullanarak yapılan maliyet tahminlemeyöntemleri çalışmalarında genellikle MLP kullanıldığı saptanmıştır. Bu tez çalışmasındaYapay sinir ağı kullanılarak yapılan yazılım maliyet tahmini modeli oluşturmak için MLP(Multi Layer Perseptron) ve bu alanda kullanılmayan Elman yapay sinir ağı modeliuygulanmıştır. Kıyaslamayı sağlayabilmek için MLP ve Elman modellerinin ikisindekullanımında COCOMO 81 ve yeni oluşturulan ölçüt kümesi YEEM (Yıldız EffortEstimation Metrics) kullanılmıştır. Hatasız karşılaştırabilmek için veri kümelerinde eşitsayıda örnek ile test edilmiştir. Daha iyi araştırma adına yeni oluşturulan veri kümesi içindaha büyük bir küme ile de çalışmalar yapılmıştır. Ölçüt kümelerinin karakteristiği ve verimiktarı bu çalışmanın incelediği konulardan biridir. YEEM ölçüt kümesi yapay sinir ağıtopolojisini oluşturmakta kullanılmıştır. YEEM için toplanan veriler ile MLP ve Elman yapaysinir ağları kullanılarak ağ eğitilmiş ve test edilmiştir. Toplanan verilerin daha bütünselkullanımı için çapraz onaylama metodu kullanılmıştır. Toplanan verinin sınırlı sayıda olmasınedeniyle %5,%10 ve %15'lik çapraz onaylama teknikleri uygulanmıştır.Doğru ve nitelikli bir ölçüt kümesi kullanıldığı sürece yapay sinir ağları yazılım maliyettahminleme çalışmalarında başarıyla kullanılabileceği görülmüştür.

Abstract:
Cost estimation of computer software is getting more important. Software developmentbecomes increasingly expensive. Software cost estimation is a very important problem forgovernments and organizations. There are a lot of projects which exceeded planned budgedand time. Incorrect budget and time planning at the beginning is the main failure reason.Software becomes increasingly expensive to develop and is a major cost factor in anyinformation system budget. Software development costs often get out of control due to lack ofmeasurement and estimation methodologies. During last decade, some researches on costestimation have been conducted. In the search of new methodologies to estimate the softwaredevelopment costs but the results were far from being satisfying.In this study, a new software engineering metric set was developed and the data was collectedaccording to new metric set and a new software cost estimation model was developed byusing neural network.In this study we have explored the reasons of the disappointing results of the existing softwarecost estimation with neural network studies and implemented different neural network modelsusing augmented new metrics. The metric-set selection has a vital role in software costestimation studies; its importance has been ignored especially in neural network based studies.The results obtained are compared with previous studies using traditional metrics. To be ableto make comparisons, two types of data have been used. The first part of the data is takenfrom the Constructive Cost Model which is commonly used in previous studies and thesecond part is collected according to new metrics in a leading international company inTurkey. Another difficulty associated with the cost estimation studies is the fact that the datacollection requires time and care. Futhermore, many companies do not share their databecause of competition disadvantage possibilities.In recent literature, we have explored that MLP had been used in software cost estimationwith neural network studies. In this study, software cost estimation by using neural networkmodels presented here are based on Multi-Layer Perceptron (MLP) and Elman neuralnetworks which has not been used for this aim. The results obtained are compared withprevious studies using traditional metrics. The models presented here are based on Multi-Layer Perceptron and Elman Networks for both COCOMO?81 metric set and for theaugmented metric set (YEEM : Yıldız Effort Estimation Metrics). To be able to compare theresults accurately tests were run for datasets containing the same number of samples. Toinvestigate further, we have also experimented with larger datasets formed according toaugmented metrics. Addressing the issues of the dataset characteristics and the amount ofsamples in the datasets is one of the purposes of this research. YEEM has been used toconstruct the neural network topology. The MLP and Elman neural networks has beentrainned and tested by using data for YEEM. To make a more thorough use of the samplescollected, k-fold, cross validation method is also implemented. Since the amount of sampleswe have collected are still limited, 5-fold, 10 fold and 15-fold cross validation techniqueshave been also applied.It is concluded that, as long as an accurate and quantifiable set of metrics are defined andmeasured correctly, neural networks can be applied in software cost estimation studies withsuccess.