Esnek hesaplama yaklaşımı ile yazılım hata kestrimi
Software maintenance severity prediction with soft computing approach
Yazar: EBRU ARDIL
Danışman: YRD. DOÇ. DR. ERDEM UÇAR
Trakya Üniversitesi / Fen Bilimleri Enstitüsü / Bilgisayar Mühendisliği Bölümü / Bilgisayar Mühendisliği Ana Bilim Dalı
Derece: Yüksek Lisans, 2009
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control
Dizin: Yazılım metrikleri = Software metrics ; Yazılım mühendisliği = Software engineering

Özet:
Bir yazılım sistemi geliştirildiğinde, hataların (fault) ekseriyeti modüllerin ufakbir kısmında bulunur. Birçok durumda, hataların %55'i kaynak kodunun yüzde 20'likkısmında oluşur. Bu, hata-eğilimli yazılım modüllerinin projenin erken aşamasındabulunması yönünde ilgi oluşturmuştur. (Saida Benlarbi, Khaled El Emam, ve NishithGeol, 1999). Yazılım karmaşıklık ölçütlerini kullanan teknikler, bileşenleri hatabarındıran veya barındırmayan olarak sınıflandıran modeller geliştirirler. Bununlabirlikte, algılanan hata sayısı arttıkça kalite de artmış olacaktır. Yazılım yaşamçevriminde hataların etkilerinin erken kestirimi, yazılım süreci kontrolünü geliştirme veyüksek yazılım güvenilirliği elde etmede kullanılabilir. Yazılım modüllerinde hatalarınzamanında kestirimi, yüksek sayıda hata barındırıyor olması muhtemel modüllerinmaliyet etkin (cost-effective) kalite arttırma çabalarını yönlendirmede kullanılabilir.Yazılım ölçütlerine dayanan kestirim modelleri, yazılım modüllerinde bir miktar hatayıkestirebilir. Hataların aciliyetinin kestirimi:? Geliştirilmiş zamanlama (scheduling) ve proje kontrolü ile yazılım kalitesimühendisliğini destekler.? Yazılım testinin yönetimi ve bütün sürecin etkinliğini arttırma yönünde anahtarbir adım olabilir.? Hataların etkin keşfine ve tanımlanmasına izin verir.? Doğrulama ve kritik yazılım bileşenlerine odaklanan onaylama aktivitelerineizin verir.? Yazılım süreci kontrolünün ve yüksek yazılım güvenilirliğinin geliştirmesindekullanılabilir.? Modüllerde maliyet etkin kalite arttırma çabalarını yönlendirmede kullanılabilir.Bu çalışmada, farklı kestirim modellerini incelemek için Perl programlamadilinde kodlanan NASA'nın kamusal alan (public domain) hata veri kümesini kullandık.WEKA projesinin farklı öğrenici kategorilerine ait olan farklı makine öğrenmesialgoritmaları, Mamdani Tabanlı Bulanık Çıkarım Sistemi (Fuzzy Inference System) veUyarlamalı Nöral-Bulanık (Neuro-Fuzzy) Tabanlı Sistemler ile yazılım bakımında hatakestiriminin önemi değerlendirildi. Sonuçlar Doğruluk (Accuracy), Ortalama MutlakHata (Mean Absolute Error, MAE), ve Kök Hata Kareler Ortalaması (Root MeanSquared Error, RMSE) olarak kaydedildi. Sonuçlar Uyarlamalı Nöral-Bulanık (Neuro-Fuzzy) Tabanlı modelin diğer modellere nispeten daha doğru kestirim sağladığı ve bunedenle yazılımın bakım aciliyeti kestiriminde kullanılabileceğini gösterdi.

Abstract:
When a software system is developed, the majority of faults are found in a fewof its modules. In most of the cases, 55 % of faults exist within 20 % of source code. Itis, therefore, much of interest is to find out fault-prone software modules at early stageof a project [1]. Using software complexity measures, the techniques build models,which classify components as likely to contain faults or not. Quality will be improved asmore faults will be detected. Predicting the impact of the faults early in the software lifecycle can be used to improve software process control and achieve high softwarereliability. Timely predictions of faults in software modules can be used to direct costeffectivequality enhancement efforts to modules that are likely to have a high numberof faults. Prediction models based on software metrics, can estimate number of faults insoftware modules. Prediction of severity of faults:? Supports software quality engineering through improved scheduling and projectcontrol.? Can be a key step towards steering the software testing and improving theeffectiveness of the whole process.? Enables effective discovery and identification of defects.? Enables the verification and validation activities focused on critical softwarecomponents.? Used to improve software process control and achieve high software reliability.? Can be used to direct cost-effective quality enhancement efforts to modules.In this research, we have explored the different predictor models to NASA?spublic domain defect dataset coded in Perl programming language. Different machinelearning algorithms belonging to the different learner categories of the WEKA Projectincluding Mamdani Based Fuzzy Inference System and Adaptive Neuro-fuzzy basedsystem have been evaluated for the software maintenance severity prediction. Theresults are recorded in terms of Accuracy, Mean Absolute Error (MAE) and Root MeanSquared Error (RMSE). The results show that Adaptive Neuro-fuzzy based modelprovides relatively better prediction accuracy as compared to other models and hence,can be used for the maintenance severity prediction of the software.