Yapay zekâ yöntemleri ile yazılımların maliyetlerinin tahmin edilmesi
Estimating software costs by artificial intelligence methods
Yazar: ŞÜKRAN EBREN KARA
Danışman: PROF. DR. RÜYA ŞAMLI
İstanbul Üniversitesi-Cerrahpaşa / Lisansüstü Eğitim Enstitüsü / Bilgisayar Mühendisliği Ana Bilim Dalı / Bilgisayar Mühendisliği Bilim Dalı
Derece: Doktora, 2022
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control
Dizin: Genetik algoritmalar = Genetic algorithms ; Makine öğrenmesi = Machine learning ; Maliyet tahmini = Cost estimation ; Parçacık sürü optimizasyonu = Particle swarm optimization ; Yapay zeka = Artificial intelligence ; Öznitelik seçimi = Attribute selection

Özet:
Yazılım maliyet tahmini, bir mühendisin yazılım projesini geliştirmeye başladığı esnada ihtiyaç duyduğu yaklaşık süre ve kaynakların tahminidir. Yazılım maliyet tahmini, yazılım projesinin maliyetini belirlemek ve müşteriyi ikna etmek için yazılım geliştirme sürecindeki en önemli aşamalardan birisidir. Gerçek maliyete en yakın maliyet tahminini yapmak hem yazılım geliştiricileri hem de müşteriler için çok büyük bir önem arz etmektedir. Çünkü yanlış yapılan yazılım maliyet tahminleri projelerin tamamlanamamasına ya da geniş bir zaman dilimine yayılmasına neden olmaktadır. Bu yüzden yazılım maliyet tahmini için literatürde çok farklı yöntem geliştirilmiştir. Bu tez çalışmasında, yazılım projelerinin maliyeti, Yapay Zekâ yöntemlerinden olan Makine Öğrenmesi (MÖ) kullanılarak Parçacık Sürü Optimizasyonu (PSO) ve Genetik Algoritmalarla (GA) öznitelik seçimi yapılarak tahmin edilmeye çalışılmıştır. Yazılım projesinin maliyet tahmini, WEKA (Waikato Environment for Knowledge Analaysis – Bilgi Analizi için Waikato Ortamı) veri madenciliği aracında bulunan algoritmaların çalıştırlması sonucu bulunmuştur. Algoritmalar 10 kat çapraz doğrulama tekniği ile PROMISE (Predictor Models in Software Engineering – Yazılım Mühendisliğinde Tahmin Modelleri) veri deposundan alınan 9 adet veri setine (COCOMO81, COCOMONASA, COCOMONASA2, China, Albrecht, Finnish, Kemerer, Maxwell, Miyazaki94) uygulanmış ve sonuçlar performans ölçütü korelasyon katsayısı, hata oranları MAE (Mean Absolute Error – Ortalama Mutlak Hata), RMSE (Root Mean Squared Error – Kök Ortalama Kare Hata), RAE (Relative Absolute Error – Bağıl Mutlak Hata), RRSE (Root Relative Squared Error – Kök Bağıl Kare Hata) ve MAPE (Mean Absolute Percentage Error – Ortalama Mutlak Hata Yüzdesi) baz alınarak değerlendirilmiştir.

Abstract:
A software cost estimation is an estimate of the time and resources an engineer will need to begin developing a software project. Software cost estimation is important to determine the cost of the software project and to convince the customer. Making a cost estimation closest to the actual cost is very important for both software developers and customers, because incorrect software cost estimations cause projects to be incomplete or spread over a large time period. Therefore, many different methods have been developed for software cost estimation. When the studies in the literature are examined, it is seen that the cost of software projects is tried to be estimated with very different methods. In this thesis, the cost of software projects has been estimated using Machine Learning from Artificial Intelligence methods by features selection with Particle Swarm Optimization (PSO) and Genetic Algorithms (GA). Project cost estimation was made by testing Machine Learning algorithms in WEKA (Waikato Environment for Knowledge Analaysis) data mining tool. Algorithms were applied to 9 datasets (COCOMO81, COCOMONASA, COCOMONASA2, China, Albrecht, Finnish, Kemerer, Maxwell, Miyazaki94) taken from PROMISE (Predictor Models in Software Engineering) data store with 10-fold cross validation technique and results, performance criterion correlation coefficient, error rates MAE (Mean Absolute Error), RMSE (Root Mean Squared Error), RAE (Relative Absolute Error), RRSE (Root Relative Squared Error), MAPE (Mean Absolute Percentage Error).