Yazılım kusur kestirimi probleminde yapay bağışıklık sistemlerinin uygulanması
Application of artificial immune systems in software fault prediction problem
Yazar: ÇAĞATAY ÇATAL
Danışman: YRD. DOÇ. DR. BANU DİRİ
Yıldız Teknik Üniversitesi / Fen Bilimleri Enstitüsü / Bilgisayar Mühendisliği Ana Bilim Dalı
Derece: Doktora, 2008
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 ; Yazılım projeleri = Software projects

Özet:
Yazılımların artan karmaşıklığı ile birlikte kullanıcı beklentilerinin de artması, bu beklentilerin ve yazılım kalitesinin Yazılım Kalite Mühendisliği adı verilen mühendislik disiplini ile ele alınmasını gerekli hale getirmiştir. Yazılım kusur kestirimi, Yazılım Kalite Mühendisliği disiplini içerisinde yer alan alt kalite güvence aktivitelerinden birisidir. Bu tez çalışmasında, Yazılım Kusur Kestirimi problemi Yapay Bağışıklık Sistem (YBS) paradigması tabanlı algoritmalarla çözülmeye çalışılmış ve bu kapsamda var olan algoritmalar analiz edilerek yeni modeller önerilmiştir. 5 adet NASA veri kümesinde YBS tabanlı farklı sınıflayıcıların performansları incelenmiş ve literatürde raporlanmış en iyi makine öğrenmesi algoritmaları ile kıyaslamalar gerçekleştirilmiştir. Bu çalışmalar sayesinde, literatürde ilk kez YBS tabanlı sınıflandırma algoritmalarının performansları kusur kestirimi için incelenmiştir. AIRS algoritmasının yüksek performans sunması sayesinde, sonraki çalışmada özellik azaltma teknikleri dikkate alınarak; ?korelasyon tabanlı özellik seçimi? nin uygulandığı AIRS tabanlı bir model önerilmiştir. Bu model, özellikle çok büyük veri kümelerinde yüksek performans sunmuş ve birçok öğrenme algoritmasından daha iyi sonuçlar elde edilmiştir. Sınıf seviyesindeki metriklerle, benzer bir model oluşturulabilirse tasarım aşamasında kusur eğilimli modüller belirlenerek sınıfların yeniden düzenlenmesi sağlanabilecektir. Bu fikirden hareketle, sınıf seviyesindeki Chidamber-Kemerer (CK) metrikleri kullanılarak kusur kestirim modelleri üzerinde deneysel analizler gerçekleştirilmiştir. Kalıtım ağacının boyutuna ilişkin sınıf metriğinin kusur kestiriminde en düşük etkiye sahip olduğu ve nesneler arasındaki bağlılığa ilişkin metriğin en yüksek öneme sahip olduğu deneysel verilerle gösterilmiştir. CK metrikleri ve kod satır sayısının birlikte kullanıldığı durumda, AIRS tabanlı kestirim modelinin en yüksek performansı sunduğu raporlanmıştır.Yarı eğiticili öğrenme konusu, makine öğrenmesinin son yıllardaki aktif araştırma konularından birisidir. Bu kapsamda, Yapay Bağışıklık Sistem paradigması tabanlı yarı-eğiticili bir öğrenme algoritması önerilmiş ve problemde uygulanmıştır. Önerilen algoritmanın sınırlı sayıda kusur verisi kullanıldığı durumda, AIRS algoritmasının performansını arttırdığı tespit edilmiştir. Ancak önerilen yaklaşımın bazı algoritmalar için performansı düşürdüğü de diğer tespit edilen noktalardandır. Ayrıca, yazılımın yeniden kullanılabilirliğini sağlamak üzere 2000'lerde popülerlik kazanmış olan ?Yazılım Ürün Hatları? yaklaşımında, yazılım kusur kestiriminin gerçekleştirilebilmesi için çerçeve bir model önerilmiştir. Bu tez çalışması sırasında YBS tabanlı kusur kestirim modellerine ek olarak, ?kestirim merkezli yazılım yaşam çevrimi? ve ?kestirim merkezli yazılım süreçleri? isimli yeni bir geliştirme yaklaşımı ve yeni bir süreç yaklaşımı önerilmiştir. Aynı çalışmada, yazılım kusur kestiriminin sistem test senaryolarını önceliklendirme noktasında nasıl kullanılabileceği ve sağlayacağı yararlar vurgulanmıştır.

Abstract:
Because of rising complexity in software systems and increasing user expectations, it is necessary to manage the software quality as an engineering discipline called ?Software Quality Engineering?. Software fault prediction is one of the quality assurance activities which locates in Software Quality Engineering discipline. In this thesis study, the software fault prediction problem has been tried to be solved with Artificial Immune Systems (AIS) based algorithms and new models have been proposed by examining existing algorithms. The performance of different AIS based classifiers has been examined on five NASA datasets and compared with the best machine learning algorithms reported in literature. With the help of this study, AIS based classifiers? performance have been investigated for the first time in literature. Thanks to the high performance of AIRS algorithm, an AIRS based model using ?correlation-based feature selection? technique has been proposed. This model specifically provided high performance for very large datasets and results were better than many learning algorithms. If a similar model can be built using class-level metrics, fault-prone modules can be identified and refactored in design phase. By using this idea, experimental analysis have been conducted using class-level Chidamber-Kemerer (CK) metrics on fault prediction models. It has been empirically proved that depth of inheritance tree (DIT) is the least significant metric and coupling between object classes (CBO) is the most significant one for the fault prediction. It has been reported that AIRS based prediction model using CK metrics and lines of code provides the highest performance.Semi-supervised learning is one of the most active research topics in machine learning. An AIS based semi-supervised learning algorithm has been proposed and applied in this problem. It has been determined that AIRS algorithm?s performance increases with the proposed algorithm when there is limited fault data. However, this approach decreases the performance of some algorithms for software fault prediction. In addition, a framework to use the software fault prediction in ?Software Product Lines? approach, which is popular since the beginning of the 2000s for software reusability, has been proposed. In addition to AIS based fault prediction models, ?prediction-centric software life cycle? and ?prediction-centric software processes? have been proposed as a new development approach and a new process approach. Furthermore, that study showed how to use the fault prediction approaches to prioritize system test cases and emphasized the benefits of fault prediction approaches.