Software quality prediction models: A comparative investigation based on machine learning techniques for object-oriented systems
Özet
The purpose of this thesis study is investigating correlation between Chidamber and Kemerer (CK) Object-Oriented (OO) software metrics and determining the accuracy rate in software bug prediction. For this reason, eleven most frequently used Machine Learning (ML) techniques and two Support Vector Machine (SVM) libraries performance was analyzed in order to find the best technique for 33 latest version of open source projects. In this thesis study, the relation between CK metrics and reliability is also determined. Each technique was evaluated using RapidMiner and WEKA tools. Dataset was validated with a 10-fold cross-validation technique. Furthermore, Bayesian belief’s networks form used for determining which CK metric are primary estimators. Receiver Operating characteristic (ROC), Precision, Accuracy, Area Under the Curve (AUC), Mean Absolute Error (MAE), Root Mean Squared Error (RMSE) performance metrics used for evaluation of results. Results of this study show that Random Forrest, Bagging, AdaBoost ML techniques are the most effective for prediction models in terms of AUC values. In contrast, SVMs are the least effective models. This thesis study also revealed that Weighted Methods per class (WMC) is the most effective software metric. Then, the Number of Children (NOC), Depth of Inheritance Tree (DIT) metrics are good contributor for determining the quality of software.
Bu tez çalışmasının amacı, Chidamber ve Kemerer (CK) Nesne Yönelimli yazılım metrikleri arasındaki ilişkiyi araştırmak ve yazılım hata tahmininde doğruluk oranını belirlemektir. Bu nedenle, açık kaynaklı 33 projenin en son sürümleri için en iyi tekniği bulmak amacıyla en sık kullanılan 11 Makine Öğrenimi tekniği ve 2 Destek Vektör Makinesi kütüphanesinin performansı analiz edilmiştir. Bu tez çalışmasında, CK ölçütleri ile güvenirlik arasındaki ilişki de belirlenmiştir. Her teknik RapidMiner ve WEKA araçları kullanılarak değerlendirilmiştir. Veri kümesi, 10 kat çapraz doğrulama tekniği ile doğrulanmıştır. Ayrıca, Bayesian ağları, hangi CK metriğinin en iyi tahmin edici olduğunu belirlemek için kullanılan formlardır. Sonuçların değerlendirilmesi için Alıcı İşletim Karakteristiği, Kesinlik, Doğruluk, Eğri Altında Kalan Alan, Ortalama Mutlak Hata, Ortalama Hata Kare Kökü performans ölçütleri kullanılmıştır. Bu çalışmanın sonuçları, Rastgele Orman, Torbalama, Arttırma makine öğrenmesi tekniklerinin tahmin modelleri için en etkili olduğunu göstermektedir. Buna tersine, Destek Vektör Makineleri en az etkili modellerdir. Bu tez çalışması ayrıca, Sınıfın Ağırlıklı Metot Sayısının en etkili yazılım metriği olduğunu ortaya çıkarmıştır. Daha sonra, Alt Sınıf Sayısı, Kalıtım Ağacının Derinliği ölçümleri yazılımın kalitesini belirlemede iyi bir katkı sağlar.