Yazılım Projelerinin Maliyet Tahmini için WEKA’da Makine Öğrenmesi Algoritmalarının Karşılaştırmalı Analizi

Yazılım projelerinin en önemli sorunlarından biri, yazılım maliyet tahminidir. Yazılım maliyet tahmini, yazılımın gerçekleştirilmesi aşamasında gereken bütçenin tahmin edilmesidir. Proje yöneticisi, proje maliyetini doğru tahmin ederek projedeki belirsizlikleri azaltır. Aksi takdirde çok ciddi ekonomik sıkıntılar doğmaktadır. Büyük projelerin %60’ı ön görülen proje bütçelerini aşmıştır. Bir takım projelerin %15 maliyet aşımı nedeniyle hiçbir zaman tamamlanmadığı gözlemlenmiştir. Yazılım projelerinin büyümesi ve karmaşıklaşması sonucunda sürekli yeni maliyet hesaplama yöntemleri geliştirilmektedir. Bu çalışmada yazılım projelerinin maliyeti, makine öğrenmesi algoritmaları kullanılarak tahmin edilmeye çalışılmıştır. Proje maliyet tahmini, bilgi analizi için Waikato ortamında (WEKA) bulunan 27 farklı makine öğrenmesi algoritmasında denenerek yapılmıştır. Algoritmalar 10 kat çapraz doğrulama tekniği ile PROMISE veri deposundan alınan COCOMO81, COCOMONASA ve COCOMONASA2 veri setlerine uygulanmış ve sonuçlar, performans ölçütü korelasyon katsayısı, hata oranları ortalama mutlak hata (mean absolute error - MAE), kök ortalama kare hata (root mean squared error - RMSE), bağıl mutlak hata(relative absolute error - RAE) ve kök bağıl kare hata (root relative squared error - RRSE) baz alınarak değerlendirilmiştir. Sonuçlar incelendiğinde bir algoritmanın her zaman en iyi sonucu üretmediği, farklı veri setleriyle farklı sonuçlar ürettiği bilgisine ulaşılmıştır. Bazı algoritmaların bazı veri setlerinde çok iyi çalışırken farklı parametrelerle ve farklı veri setlerinde kötü sonuçlar verebileceği gözlemlenmiştir. Bu çalışma sayesinde yazılım maliyet tahmini için hangi algoritmaların kullanılabileceği, bu algoritmaların COCOMO veri setlerine uygulandığında tahmin sonuçlarının neler olabileceği ve en iyi çalışan algoritmaların hangileri olduğu bilgisine ulaşılmıştır.

Comparative Analysis of Machine Learning Algorithms in WEKA for Cost Estimation of Software Projects

One of the most important problems of software projects is software cost estimation. Software cost estimation is the estimation of the budget required during the actualization of the software. The project manager reduces the ambuguities in the project by estimating the project cost correctly. Otherwise, serious economic problems will arise. 60% of large projects exceeded the estimated project budgets. It has been observed that a number of projects were never completed due to a 15% cost overrun. As a result of the growth and complexity of software projects, new cost estimation methods are constantly being developed. In this study, the cost of software projects is tried to be estimated by using machine learning algorithms. Project cost estimation has been made by testing in 27 different machine learning algorithms in the waikato environment (WEKA) for information analysis. Algorithms were applied to COCOMO81, COCOMONASA and COCOMONASA2 datasets taken from PROMISE data store with 10-fold cross validation technique and results, performance criterion correlation coefficient, error rates mean absolute error (MAE), root mean square error (RMSE), relative absolute error (RAE) and root relative squared error (RRSE).When the results were examined, it was found that an algorithm does not always produce the best result, but produces different results with different data sets. It has been observed that some algorithms work very well in some data sets and may give poor results with different parameters and different data sets. Thanks to this study, the information about which algorithms can be used for software cost estimation, what the estimation results might be when these algorithms are applied to COCOMO data sets and which algorithms are the best working have been reached.

___

  • Adalier, O. (2008). Yapay Zeka Yöntemleri İle Yazılım Projelerinde Maliyet Kestirimi, Doktora Tezi, Ege Üniversitesi, İzmir.
  • Alpaydın, E. (2011). Yapay Öğrenme, Boğaziçi Üniversitesi Yayınevi, İstanbul.
  • ANSI/PMI. (2008). A Guide to the Project Management Body of Knowledge (PMBOK Guide), Project Management Institute, Inc., Newtown Square, Pennysylvania, ISBN: 978- 1-933890-51-7.
  • Aydın, S., Özkul, A. E. (2015). Veri Madenciliği Ve Anadolu Üniversitesi Açıköğretim Sisteminde Bir Uygulama, Eğitim ve Öğretim Araştırmaları Dergisi, 4(3), 38.
  • Ayyıldız, M. (2007). Yazılım Projeleri Ölçüm Sonuçları Veri Tabanının Oluşturulması ve Yeni Yazılım Projelerinin Maliyet Tahmininde Kullanımı, Doktora Tezi, Yıldız Teknik Üniversitesi, İstanbul.
  • Aydın, Z.,G., Samli, R. (2020). A Comparison of Software Defect Prediction Metrics Using Data Mining Algorithms, Journal of Innovative Science and Engineering. 4(1), 11-21.
  • Gültekin, M. (2019). Makine Öğrenmesi Tabanlı Yazılım Maliyet Tahmini Yöntemlerinin Karşılaştırmalı Analizi, Doktora Tezi, Yıldız Teknik Üniversitesi, İstanbul.
  • Kaluza, B. (2016). Machine Learning in Java, Pact Publishing.
  • Karataş, E.K. (2011). Yapay Sinir Ağları İle Yazılım Projesi Maliyet Tahmini, Yüksek Lisans Tezi, İstanbul Üniversitesi, İstanbul.
  • Kızılkaya, Y. M., Oğuzlar, A. (2018). Bazı Denetimli Öğrenme Algoritmalarının R Programlama Dili İle Kıyaslanması, Karadeniz Uluslararası Bilimsel Dergi, 37(37), 90 – 98.
  • Kulter, Y., Turhan, B., Baner, A. (2009). Ensemble of neural networks with associative memory (ENNA) for estimating software development costs, Knowledge-Based Systems, 395-402.
  • Kumari, S., Pushkar, S. (2013). Performance Analysis of the Software Cost Estimation Methods: A Review, International Journal of Advanced Research in Computer Science and Software Engineering, 229-238.
  • Marapelli, B. (2019). Software Development Effort Duration and Cost Estimation using Linear Regression and K-Nearest Neighbors Machine Learning Algorithms, International Journal of Innovative Technology and Exploring Engineering (IJITEE), 9(2), 2278-3075.
  • Niranjan, A., Prakash, A., Veena, N., Geetha, M., Deepa S., Venugopal, R. (2017). EBJRV: An Ensemble of Bagging, J48 and Random Committee by Voting for Efficient Classification of Intrusions, IEEE International WIE Conference on Electrical and Computer Engineering (WIECON-ECE), Dehradun, India.
  • Prabhakar and Maitreyee Dutta. (2013). Application of machine learning techniques for predicting software effort, Elixir Comp. Sci. & Eng. 56, 13677-13682.
  • Prowmes blog. (2019). Makine Öğrenmesi, http://www.prowmes.com/blog/makine-ogrenmesi [Erişim Tarihi: 14 Ağustos 2020]
  • Sezer, A. (2008). Yazılım Projelerinde Yapay Sinir Ağı Uygulaması İle Maliyet Tahmini, Yüksek Lisans Tezi, Haliç Üniversitesi, İstanbul.
  • Sommerville, I. (2000). Software Engineering (6th Edition), Addison-Wesley .
  • TDK. (2018). Yazılım, http://www.tdk.gov.tr [Erişim Tarihi: 22 Haziran 2018]
  • Torkul, O., Gülseçen, S., Uyaroğlu, Y., Çağıl, G., Uçar, M. K. (2017). Mühendislikte Yapay Zeka Uygulamaları, Sakarya Üniversitesi Kütüphanesi Yayınevi, Sakarya
  • Wikipedia. (2020). Korelasyon https://tr.wikipedia.org/wiki/ [Erişim Tarihi: 25 Ocak 2021]