İteratif yazılım geliştirme için hata tahminleme modeli araştırma: Bir durum çalışması
Investigating defect prediction models for iterative software development: A case study
Yazar: ANIL AYDIN
Danışman: YRD. DOÇ. DR. AYÇA TARHAN
Hacettepe Üniversitesi / Fen Bilimleri Enstitüsü / Bilgisayar Mühendisliği Ana Bilim Dalı
Derece: Yüksek Lisans, 2014
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control
Dizin: Rayleigh modeli = Rayleigh model

Özet:
Yazılım geliştiren kurumların karşılaştığı en büyük problemlerden biri, geliştirme faaliyetleri için gereken kaynakların ve proje sürelerinin belirlenmesi işidir. Yazılım geliştirme esnasında ortaya çıkan hataların sayılarını ve bu hataları düzeltmek için harcanan efor bilgilerini kaydeden kurumlar, ilgili yazılım ürünlerine ait ortaya çıkmamış hataları ve bu hataları düzeltmek için harcanacak eforu doğru bir şekilde tahmin edebilme yeteneğine sahip olurlar. Literatürde, güvenilirlik modelleri aracılığıyla bu tahminleme sürecini gerçekleştiren birçok çalışma yer almaktadır. Ancak, iteratif olarak geliştirilmiş projelere yönelik tahminleme gerçekleştiren çalışma sayısı oldukça azdır. Bu tez kapsamında, iteratif olarak geliştirilen ve hataların ortaya çıktığı geliştirme faz bilgisinin kaydedilmediği bir kamu projesinin, yeni sürümlerine ait hata yoğunluklarını tahminlemeyi hedefleyen bir durum çalışması gerçekleştirilmiştir. 
Bu amaçla, ikisi de kendine özgü istatistiksel dağılıma sahip olan Rayleigh Modeli ile Lineer Regresyon Modeli kullanılarak, hem modül hem de proje düzeyindeki hatalılığın iterasyonlar boyunca tahminlenmesi sağlanmıştır. Proje düzeyi için 29 adet; modül düzeyi içinse 15 adet sürüm kullanılarak hata yoğunluklarını tahminleyecek modeller yaratılmıştır. Yaratılan bu modeller ile gerçekleştirilen tahminleme sonuçları incelendiğinde, hem hata yoğunluklarının gösterdikleri dağılımlar izlenerek hem de tahminlenen değerler ile gerçek değerlerin karşılaştırılması yapılarak elde edilen sonuçlar doğrultusunda, modül seviyesinde Rayleigh Modeli'nin; proje seviyesinde ise Lineer Model'in daha performanslı olduğu ve daha güvenilir sonuçlar ürettiği gözlemlenmiştir.
Bu tez kapsamında, ilgili tahminleme modellerinin yaratılması ve yaratılan bu modeller ile gerçekleştirilen tahminleme işlemlerine ait sonuçların değerlendirilmesi süreci ve bu süreçte takip edilen prosedür adımları, detaylı olarak anlatılmıştır. Çalışmalar esnasında çıkarılan dersler paylaşılarak iteratif geliştirme için tahminleme konusunda çalışma yürütecek kişilere yol gösterici bir kaynağın sunulması sağlanmıştır.

Abstract:
One of the biggest problems that software organizations encounter is specifying the resources required and the duration of projects. Organizations that record the number of defects and the effort spent on fixing these defects are able to correctly predict the latent defects in the product and the effort required to remove these latent defects. The use of reliability models reported in the literature is typical to achieve this prediction, but the number of studies that report defect prediction models for iterative software development is scarce. In this thesis, we present a case study which was aimed to predict the defectiveness of new releases in an iterative, civil project where defect arrival phase data is not recorded. 
With this purpose, we investigated Linear Regression Model and Rayleigh Model, each having their specific statistical distributions, to predict the module level and project level defectiveness of the new releases of an iterative project. The models were created based on defect density data by using 29 successive releases for the project level and 15 successive releases for the module level. Both, the distributions of the defect densities and the comparison results of actual and predicted defect density values shows that at module level the Rayleigh Model and at project level the Linear Regression Model produces more reliable results.
This thesis explains the procedures that were applied to generate the defectiveness models and to estimate the results predicted by these models. By sharing the lessons learned from the studies, it is enabled to provide a guideline for the practitioners who will study about the prediction process for iterative development.