<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Yazılım Geliştirmede Erken Aşamalarda Toplanan Verinin Hata Tahmini Performansına Etkisi</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Rana Özakıncı</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>ve Ayça Tarhan</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ankara</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Türkiye</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ankara</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Türkiye</string-name>
        </contrib>
      </contrib-group>
      <fpage>532</fpage>
      <lpage>543</lpage>
      <abstract>
        <p>Defectiveness of the software can be seen as one of the most important factors that address software quality. Software defect prediction models enable to observe the defectiveness of the software as well as to estimate the forward looking trend of defects. Most defect prediction models are built according to the coding phase based metrics. Therefore, chances for taking preventive actions early in the lifecycle such as cost reduction or effective resource planning are missing due to the lack of information analysis in requirement or design phases. This paper provides a systematic mapping research of the literature in order to identify the early defect prediction studies. In addition, studies that examine the impact of the early lifecycle information to the performance of the software defect prediction models were selected and investigated with systematic literature review approach.</p>
      </abstract>
      <kwd-group>
        <kwd>Early</kwd>
        <kwd>defect prediction</kwd>
        <kwd>software defect</kwd>
        <kwd>software reliability</kwd>
        <kwd>software quality</kwd>
        <kwd>prediction model</kwd>
        <kwd>systematic mapping</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Yazılım geliştirme, takvim baskısı, limitli bütçe ve farklı insan davranışlarını içeren
zor ve zahmetli bir iştir. Yoğun iş gücü gerektiren şartlarda geliştirilen çoğu yazılım,
geliştirme sürecinin değişik evrelerinde çeşitli türlerde hata ile karşılaşılma riskini
taşır. Bu hataların, önemsiz veya kritik sonuçlara neden olabilecek şekilde çok çeşitli
etkileri olabilir. Bu nedenle, yazılım sistemlerinde kalite güvenceyi sağlamak,
yazılımın güvenilirliğini garanti altına almak ve hataların etkisini en aza
indirebilmek, geliştirme yaşam döngüsünün erken aşamalarından itibaren önem taşır.</p>
      <p>Yazılımın en kaliteli şekilde geliştirilmesi hem müşteri hem de geliştiriciler
açısından son derece önemlidir. Bununla beraber, yazılımın güvenilirliğinin
sağlanabilmesi ve yazılımın çalışması sırasında oluşabilecek hataların en aza
indirilebilmesi için, yazılım kalitesini ön aşamalarda tahmin edebilmek, bu
doğrultuda önleyici eylemlerde bulunabilmek ve düzeltici önlemler alabilmek,
yazılım kalitesinde optimum düzeye ulaşmak için en etkili ve sağlıklı yöntemlerden
biridir [1].</p>
      <p>Literatürde yazılım kalite tahminine yönelik birçok çalışma mevcuttur. Ayrıca
endüstriyel alanda yazılım geliştiren büyük ve kurumsal organizasyonlar da yazılım
kalite tahmini modellerini kullanarak projelerin erken safhalarında hataları önleyici
etkinliklerde bulunmaktadır [2]. Yazılımın kalitesinin tahmini için uygulanan en
temel yöntem yazılım hatalılığın tahmininin yapılmasıdır. Yazılım geliştirme yaşam
döngüsü boyunca oluşabilecek hataları önlemek ve/veya en aza indirebilmek, yazılım
kalite tahmininin temelini oluşturur [3]. Yazılım güvenilirliğini ve hatalarını tahmin
etmeye yönelik mevcut modeller çoğunlukla kodlama ve test aşamalarına ait
ölçümleri kullanarak geliştirilmektedir. Fakat yazılım geliştirme yaşam döngüsünde
kodlama ve test aşamalarına gelindiğinde, düzeltici ve önleyici faaliyetler planlamak
için çok geç kalınmış olabilir. Bu soruna çözüm olarak, yazılım yaşam döngüsünün
gereksinim analizi veya tasarım gibi erken aşamalarında hata tahmini yapabilmek,
kalite kestirimi ve etkin kaynak, takvim ve maliyet planlaması açısından uygun
olacaktır [3]. Bunların yanında, erken tahmin modelleri, geliştirmenin ilk
aşamalarında etkin karar destek ve dengeleme analizi (trade-off analysis)
mekanizması olarak da kullanılabilir [4].</p>
      <p>Yazılım geliştirme yaşam döngüsünün gereksinim analizi, tasarım ve kodlamanın
erken aşamaları gibi evrelerinde, yazılımın sonraki aşamalarında oluşabilecek
hataları ve/veya hata-eğimli olabilecek modülleri kestirebilmek, geleceğe yönelik
etkin kalite planlamaları yapabilmek adına oldukça önemlidir. Bu çalışmanın temel
hedefi, yazılım geliştirme yaşam döngüsünün erken aşamalarına ait bilgileri, kodlama
aşamasından toplanan bilgilere ek olarak kullanarak hata tahmini yapmış modellerin
performansındaki değişimi incelemektir. Bu kapsamda öncelikle, yazılım geliştirme
yaşam döngüsünün erken aşamalarında hata tahmini yapmış olan akademik
çalışmalar sistematik eşleme yöntemi ile incelenmiştir. Daha sonra, erken
aşamalardan toplanan verilerin kodlama aşamasından elde edilen verilerle
oluşturulan modellere girdi olarak kullanılmasının modelin performansına olan etkisi
araştırılmıştır. Bu kapsamda belirlenen çalışmalar, sistematik literatür tarama
yöntemi ile detaylı bir şekilde incelenmiş ve kategorize edilmiştir.</p>
      <p>Bildirinin ikinci bölümünde yazılım hata tahmini alanında yapılmış akademik
çalışmalardan ve bulgularından bahsedilmiştir. Üçüncü bölümde, bu bildiride
kullanılmış araştırma yönteminin tasarımına değinilmiştir. Dördüncü bölümde
araştırma sorularına ilişkin yanıtlar verilmiş, bulgular paylaşılmıştır. Son bölümde ise
çalışma özetlenmiş, sonraki dönemlerde yapılacak çalışmalar aktarılmıştır.
2 Yazılım Hata Tahmini ve İlişkili Çalışmalar
IEEE Standard Classification for Software Anomalies [5] standardında, yazılım
hatalarına ilişkin terimler için ortak bir sözlük oluşturulmuştur. Standarda göre hata
(defect); yazılım geliştirme yaşam döngüsünün erken aşamalarındaki iş ürünlerinde
rastlanabilen, iş ürününün gereksinimleri karşılayamamasına neden olan, düzeltilmesi
veya değiştirilmesi gereken çeşitli kusurlar veya eksiklikler olarak tanımlanır. Hata
terimiyle benzer anlamda kullanılan diğer terimlere ilişkin tanımlar ise şu şekildedir:
 Yanlışlık (Error): Doğru olmayan sonuçlara neden olabilen insan eylemi
 Kusur (Fault): Yazılım programı içinde arızaya neden olabilen temel
yanlışlıklar
 Arıza (Failure): Program davranışının kullanıcı beklentilerinden sapması,
üründen beklenen işlevin belirlenen gereksinimler ve limitler altında yerine
getirilememesi
 Sorun (Problem): Kişinin bir sistemi kullanırken karşılaştığı zorluk,
çözülmesi gereken olumsuz durum</p>
      <p>Bu tanımlardan yola çıkarak, yaşam döngüsünün erken aşamalarında
karşılaşılabilecekaksaklık, bozukluk ve aykırılıklar çalışma boyunca “hata” terimi
kullanılarak ele alınmıştır [6].</p>
      <p>
        Hata tahmin modelleri, yazılım ürününe ve/veya süreçlerine ait çeşitli
parametreler (metrikler, hata verileri vb.) yardımıyla gelecekte ortaya çıkabilecek
hataların öngörülmesini sağlamaktadır. Yazılım hata tahmininin başarıyla
gerçekleştirilmesi sayesinde, yazılımın hataya eğilimli bileşenleri önceden tespit
edilebilecek ve böylece bu modüllere daha çok test ve bakım kaynağı ayrılarak
uygulamada oluşabilecek kritik hataların önceden düzeltilebilmesi sağlanacaktır [7].
2.1 Hata Tahmini Üzerine Sistematik Araştırma Çalışmaları
Literatürde yazılım hata tahmini alanında yapılmış sistematik araştırma çalışmaları,
genel olarak kodlama aşaması ve sonrasında elde edilebilen verileri kullanarak
oluşturulmuş hata tahmini modellerini incelemiştir. Çatal ve Diri [7] 2009 yılında
yaptıkları çalışmada, 74 tane çalışmayı metrik tipleri, tahminleme yöntemleri ve
verisetleri bazında incelemiş ve PROMISE veri setinin açık olarak yayınlandığı 2005
yılından itibaren makine öğrenmesi yöntemlerinin ve açık verilerin kullanımında bir
artış gözlemlendiğini raporlamıştır. Çatal [
        <xref ref-type="bibr" rid="ref5">8</xref>
        ] 2011 yılında yaptığı çalışmada yazılım
hata tahmini ile ilgili 1990 ve 2009 yılları arasında yayınlanmış 90 tane makaleyi
araştırmış ve yayınlandığı yıllara göre sınıflandırmıştır. Bu çalışmanın en önemli
katkısı, bu konuda araştırma yapmak isteyen araştırmacılara metrikler, yöntemler,
veri kümeleri, performans değerlendirme kriteri ve deneysel sonuç bakış açılarından
yardımcı olmasıdır. Ayrıca çalışmada konu ile ilgili son yaklaşımlar anlatılıp
değerlendirilmektedir. 2012 yılında Hall vd. [
        <xref ref-type="bibr" rid="ref6">9</xref>
        ], hata tahmini modellerinin
performansını araştırmaya yönelik sistematik gözden geçirme makalesinde, 2000 ile
2010 yılları arasında yayınlanmış 208 adet deneysel çalışmayı incelemiştir.
Çalışmanın temel amacı, yazılım bağlamının, hata tahmin tekniklerinin ve bağımsız
değişkenlerin, hata tahmin modellerinin performansına olan etkilerini
değerlendirmek olarak belirtilmiştir. Çalışmanın sonuçlarına göre, Naïve Bayes ve
Logistic Regression gibi basit modelleme tekniklerinin daha iyi performans
gösterdiği raporlanmıştır. Ayrıca farklı yazılım metriklerinin birlikte kullanımının da
model performansını arttırdığı belirtilmiştir. Wahono [
        <xref ref-type="bibr" rid="ref7">10</xref>
        ] 2015 yılında araştırma
eğilimlerini, veri setlerini, yöntemleri ve çatıları analiz ederek, 2000 ile 2013 yılları
arasında yayınlanmış 71 adet hata tahmini çalışmasını incelemiştir. Çalışmaların
%77’sinin sınıflandırma modeli kullandığı, %64’nün ise açık veri kümeleri ile deney
yaptığı raporlanmıştır. Yazarlara ait bir önceki çalışmada [
        <xref ref-type="bibr" rid="ref8">11</xref>
        ] 2000 ile 2015 yılları
arasında yayınlanmış 41 adet erken hata tahmini çalışması incelenmiştir. Bu
çalışmada modellerde kullanılan süreç özellikleri ve metriklerine odaklanılmıştır.
Çalışma sonuçlarına göre 41 adet erken hata tahmin çalışmasından 18 tanesinin süreç
bazlı verileri kullanarak hata tahmin modeli oluşturduğu görülmüştür. Ayrıca
incelenen çalışmaların %31’inde support vector machine, artificial neural networks,
genetic algorithm, K-means clustering ve decision trees gibi makine öğrenmesi
metodlarının kullanıldığı raporlanmıştır.
2.2 Erken Aşamalarda Toplanan Veriyi Kullanan Araştırma Çalışmaları
      </p>
    </sec>
    <sec id="sec-2">
      <title>Literatürde bulunan yazılım hata tahmini modellerini sistematik olarak incelemiş</title>
      <p>
        araştırmalarda [7][
        <xref ref-type="bibr" rid="ref5">8</xref>
        ][
        <xref ref-type="bibr" rid="ref6">9</xref>
        ][
        <xref ref-type="bibr" rid="ref7">10</xref>
        ], incelenen çalışmalarının sadece %5'i erken aşamalara
ilişkin veri kullanarak hata tahmini yapmaktadır. Bu durum, erken aşamaları ele
alarak hata tahmini yapan çalışmaların azlığını göstermektedir. Bunlara ek olarak
aşağıdaki çalışmalar, yazılım geliştirmenin erken aşamalarında kullanılan verinin
elde edilen sonuçlara olumlu etkileri üzerine odaklanmıştır.
      </p>
    </sec>
    <sec id="sec-3">
      <title>Tarhan ve Demirörs [12], gereksinim aşamasını takiben test tasarımı sürecinden</title>
      <p>ve test geliştirme boyunca yapılan gözden geçirmelerden toplanan süreç verilerinin,
süreç üretkenliğine ve ürün kalitesine olan etkisini görmek adına bir çalışma
sunmuşlardır. Sonuçlara göre, süreç verisi analizinin süreç üretkenliğine bir etkisi
olmazken, test prosedürlerinin kalitesini olumlu şekilde etkilediği görülmüştür.</p>
    </sec>
    <sec id="sec-4">
      <title>Aslan vd. [13], küçük ölçekli bir yazılım şirketinde süreç işletim verisinin ürün hatalılığı üzerine olan etkisini araştıran bir durum çalışması raporlamışlardır. Çalışmanın sonuçları, süreç işletim verisini analize dahil etmenin tahmin doğruluğunu arttırdığını göstermiştir.</title>
      <p>
        Söylemez ve Tarhan [
        <xref ref-type="bibr" rid="ref11">14</xref>
        ], süreç işletim verisinin toplanması ve analizini, dikey
hata sınıflandırması (orthogonal defect classification) tekniği ile birleştiren bir
yöntem sunmuştur. Geliştirme performansında ve ürün kalitesinde bir iyileştirme
olup olmadığını görebilmek adına, yöntemin uygulanmasından önce ve sonra hata
özellikleri analiz edilerek karşılaştırılmıştır. Karşılaştırma sonuçlarına göre, önerilen
yöntemin verimli ve etkili olduğu belirlenmiştir. Doğrulama ve geçerleme etkinlikleri
gibi hata tetikleyicilerin, geliştirme yaşam döngüsünün erken aşamalarında yazılım
hatalarının tespit edilmesi açısından etkin olduğu, buna bağlı olarak yazılım
hatalarının maliyetinde bir düşüş görüldüğü ifade edilmiştir.
      </p>
      <p>
        Yazılımın erken aşamalarında hata tahmini yapan çalışmaların incelendiği
sistematik bir çalışma olarak sadece bir önceki çalışmamız [
        <xref ref-type="bibr" rid="ref8">11</xref>
        ] literatürde yer
almaktadır. Bu çalışma dışında erken hata tahmin modellerinin incelendiği sistematik
bir gözden geçirme çalışması bulunmamaktadır. Dolayısıyla şimdiki çalışmamız,
erken aşamalara özelleştirilmiş modellere ve hata tahmin performansına etkilerine
odaklanmak suretiyle yazılım hata tahmini araştırma alanına özgün bir katkı
sağlamaktadır.
      </p>
      <sec id="sec-4-1">
        <title>3 Araştırma Yöntemi</title>
        <p>
          Sistematik eşleme çalışmaları, belirlenen özel bir araştırma alanında yapılmış
literatür çalışmalarını yüzeysel bir bakış açısıyla inceleyerek, konu hakkındaki genel
kanıtları toplamayı amaçlar [
          <xref ref-type="bibr" rid="ref12">15</xref>
          ]. Sistematik literatür tarama çalışmaları ise, konu
hakkında daha özel araştırma sorularına odaklanmak suretiyle literatürü detaylı bir
şekilde incelemeyi ve sonuçları yorumlamayı amaçlar [
          <xref ref-type="bibr" rid="ref13">16</xref>
          ]. Bu çalışmada hedeflenen
kapsam için, sistematik eşleme çalışmasını takiben sistematik literatür tarama
uygulanmıştır. İlk olarak, sistematik eşleme yöntemi temel alınarak erken aşamalarda
uygulanabilen hata tahmin modellerini ele almış akademik yayınlara odaklanılmış,
alanda yapılmış temel çalışmalar belirlenmiş ve bunların genel görünüşü verilmiştir.
        </p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Ardından, erken aşamalara ilişkin bilgilerin mevcut hata tahmin modellerinin performansına etkisini değerlendirmiş olan çalışmalar seçilmiş, sistematik literatür tarama yöntemi temel alınarak daha detaylı şekilde incelenmiştir.</title>
      <sec id="sec-5-1">
        <title>3.1 Araştırma Soruları</title>
        <p>Çalışmada, yazılım geliştirme yaşam döngüsünün erken aşamalara ilişkin verileri
kullanarak hata tahmini yapmış modeller sistematik eşleme yöntemi ile incelenmiştir.
Bu modeller içinden, hem erken aşama hem de kodlama aşamasına ilişkin verileri
kullanarak hata tahmini yapmış olan modeller sistematik literatür tarama yöntemi ile
daha detaylı bir şekilde incelenmiştir. Bu sayede, ilgili çalışmalarda erken aşamalara
ilişkin verileri kullanan modellerin hata tahmini performansına etkisi
görülebilecektir. Bu doğrultuda literatürdeki çalışmaları sınıflandırmak için aşağıdaki
araştırma soruları belirlenmiştir. AS1 ve AS2 sistematik eşleme çalışması
kapsamında, AS3 ve AS4 sistematik literatür taraması kapsamında ele alınmıştır.
AS1: Erken hata tahmini hakkında yapılan çalışmaların eğilimi ne yöndedir?</p>
        <p>AS1.1: Yayınların yıllara göre dağılımı nasıldır?
AS2: Erken hata tahmin modelleri hangi yazılım geliştirme yaşam döngüsü (YGYD)
aşamaları ile ilişkilidir?
AS3: Gereksinim ve tasarım aşamalarından elde edilen verileri, kod aşamasında elde
edilen verilerle birlikte kullanan modellerin tasarımı nasıldır?</p>
        <p>AS3.1: Kullanılan hata tahmini yöntemleri nelerdir?
AS3.2: YGYD bazında kullanılan metrikler nelerdir?
AS3.3: Modellerin performans değerlendirmesi hangi ölçümlerle yapılmıştır?
AS3.4: Model hangi araç/ortam(lar) üzerinde uygulanmıştır?</p>
        <p>AS3.5: Çalışmalarda kullanılan veri setleri nelerdir?
AS4: Gereksinim ve tasarım aşamalarından elde edilen veriler kod aşamasından elde
edilen verilerle birlikte kullanıldığında tahmin modelinin performansına etkisi olmuş
mudur? Performansa etkisi varsa ilgili çalışmada raporlanmış mıdır?</p>
      </sec>
      <sec id="sec-5-2">
        <title>3.2 Sorgu Metinleri</title>
        <p>Hata tahmin modelinin YGYD’nin erken aşamalarında uygulandığı bilgisini elde
edebilmek amacıyla, yayının başlığında, özetinde veya anahtar kelimelerinde “early”
ve “earlier” kelimeleri aranmıştır. Sorgu metinleri aşağıda belirtildiği gibidir:
Title: ((“early” or “earlier”) and
Title – abstract – keywords: (“software defect” or “software fault” or “software
reliability”) and (“prediction” or “estimation” or “analysis”))
2000 ile 2015 yılları arasında yayınlanmış çalışmalar için aşağıda belirtilen dijital
kütüphanelerde aramalar yapılmıştır. İlk olarak dönen sonuç sayısı ve ilk aşamada
seçilen yayın sayısı Tablo 1’de verilmiştir.</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>Tablo 1. Dijital Kütüphane Aramalarından Çekilen Çalışma Sayıları</title>
    </sec>
    <sec id="sec-7">
      <title>Dijital Kütüphane ACM</title>
    </sec>
    <sec id="sec-8">
      <title>ScienceDirect</title>
    </sec>
    <sec id="sec-9">
      <title>Scopus</title>
    </sec>
    <sec id="sec-10">
      <title>SpringerLink</title>
    </sec>
    <sec id="sec-11">
      <title>Web of Science</title>
    </sec>
    <sec id="sec-12">
      <title>Wiley</title>
      <p>Toplam</p>
      <sec id="sec-12-1">
        <title>3.3 Çalışma Seçim Kriterleri</title>
      </sec>
    </sec>
    <sec id="sec-13">
      <title>Sistematik eşleme için kullanılacak birincil çalışmaları dahil etme ve eleme</title>
      <p>kriterlerimiz Tablo 2’de belirtilmiştir. Bu kriterlere göre 41 adet yayın sistematik
eşleme çalışmasına dahil edilmiştir. Daha sonra AS3 ve AS4 araştırma sorularına
yanıt vermek üzere 6 adet çalışma seçilmiş ve bu çalışmalar sistematik literatür
tarama yöntemiyle detaylı olarak incelenmiştir.</p>
    </sec>
    <sec id="sec-14">
      <title>Tablo 2. Dahil Etme/Eleme Kriterleri</title>
    </sec>
    <sec id="sec-15">
      <title>Dahil Etme Kriterleri</title>
    </sec>
    <sec id="sec-16">
      <title>K1 Hata sayısı, hata eğilimi, hatalılık oranı gibi hata odaklı tahmin yapan yayınlar K2</title>
    </sec>
    <sec id="sec-17">
      <title>Gereksinim ve/veya tasarım aşamasına değinmiş yayınlar</title>
    </sec>
    <sec id="sec-18">
      <title>Eleme Kriterleri</title>
    </sec>
    <sec id="sec-19">
      <title>Var olan hataları tespit eden veya yerini belirleyen yayınlar</title>
    </sec>
    <sec id="sec-20">
      <title>Gereksinim ve/veya tasarım aşamasına hiç değinmemiş, sadece kodlama ve sonrasına ilişkin verileri ele alan yayınlar</title>
      <sec id="sec-20-1">
        <title>3.4 Veri Çıkarımı</title>
      </sec>
    </sec>
    <sec id="sec-21">
      <title>Araştırma sorularını yanıtlamaya yönelik verileri çıkarma işlemi, çalışmaların çeşitli</title>
      <p>özelliklere göre sınıflandırılmasıyla yapılmıştır. İlk olarak AS2’yi yanıtlamak
amacıyla tüm çalışmalar gözden geçirilmiş ve YGYD fazına göre sınıflandırılmıştır.</p>
    </sec>
    <sec id="sec-22">
      <title>Daha sonra bu çalışmalar içerisinden kodlama aşamasına ilişkin verileri kullanan</title>
      <p>modellere, erken aşama (gereksinim ve/veya tasarım) verisini de ekleyerek hata
tahmini yapan çalışmalar belirlenmiştir. Bu çalışmalar AS3 ve AS4’ü yanıtlamak
üzere detaylıca incelenmiş ve Tablo 3’de görülen ilgili kategorilere göre
sınıflandırılmıştır.</p>
    </sec>
    <sec id="sec-23">
      <title>Tablo 3. Analiz için çıkarılan veriler</title>
      <p>Veri Tipi</p>
      <sec id="sec-23-1">
        <title>YGYD Fazı</title>
      </sec>
      <sec id="sec-23-2">
        <title>Tahmin Yöntemleri Metrikler</title>
      </sec>
      <sec id="sec-23-3">
        <title>Performans Değerlendirme</title>
      </sec>
      <sec id="sec-23-4">
        <title>Modelin</title>
        <p>Uygulandığı
Araç/Ortam
Veri Seti</p>
        <sec id="sec-23-4-1">
          <title>4 Bulgular</title>
        </sec>
      </sec>
      <sec id="sec-23-5">
        <title>Veri Kümesindeki Değerler</title>
      </sec>
    </sec>
    <sec id="sec-24">
      <title>Gereksinim, Tasarım,</title>
    </sec>
    <sec id="sec-25">
      <title>Kodlama</title>
      <p>Çeşitli Makine
Öğrenmesi Yöntemleri</p>
    </sec>
    <sec id="sec-26">
      <title>Gereksinim, Tasarım,</title>
    </sec>
    <sec id="sec-27">
      <title>Kod Metrikleri</title>
    </sec>
    <sec id="sec-28">
      <title>ROC, AUC, Probability of Detection, Probability of False Alarms,</title>
    </sec>
    <sec id="sec-29">
      <title>Precision, Accuracy,</title>
    </sec>
    <sec id="sec-30">
      <title>MAE, RMSE</title>
    </sec>
    <sec id="sec-31">
      <title>Visual Basic, Weka,</title>
    </sec>
    <sec id="sec-32">
      <title>MATLAB</title>
      <sec id="sec-32-1">
        <title>Açıklama</title>
      </sec>
    </sec>
    <sec id="sec-33">
      <title>Hata tahmin modeli için gerekli</title>
      <p>girdilerin elde edildiği yazılım
geliştirme yaşam döngüsü fazı</p>
    </sec>
    <sec id="sec-34">
      <title>Hata tahmin modelinde kullanılan</title>
      <p>makine öğrenmesi yöntemleri</p>
    </sec>
    <sec id="sec-35">
      <title>Hata tahmin modelinde girdi</title>
      <p>olarak kullanılan metrikler</p>
    </sec>
    <sec id="sec-36">
      <title>Hata tahmin modelinin performansını ölçmek için kullanılan performans değerlendirme ölçümleri</title>
    </sec>
    <sec id="sec-37">
      <title>Hata tahmin modelinin uygulandığı araç/ortam</title>
    </sec>
    <sec id="sec-38">
      <title>NASA MDP (Metric data</title>
      <p>program), PROMISE</p>
    </sec>
    <sec id="sec-39">
      <title>Hata tahmin modelinin uygulandığı veri setleri</title>
      <p>İlişkili
AS
AS2
AS3.1
AS3.2
AS3.3
AS3.4
AS3.5
AS1: Erken hata tahmini hakkında yapılan çalışmaların eğilimi ne yöndedir?</p>
      <p>
        AS1.1: Yayınların yıllara göre dağılımı nasıldır?
Çalışmaların yıllara göre dağılımının düzensiz olduğu söylenebilir. 2005 yılından
itibaren yazılım hata tahmin çalışmalarına olan ilginin arttığı söylenmektedir [7] [
        <xref ref-type="bibr" rid="ref7">10</xref>
        ],
fakat erken aşamalara ilişkin hata tahmini yapan çalışmaların sayısı farklılık
göstermektedir (Şekil 1).
1 1 1 1
0
2
1
3
5 5
2
      </p>
      <p>4
3
3</p>
      <p>2
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
Şekil 1. Erken hata tahmini çalışmalarının yıllara göre dağılımı
AS2: Erken hata tahmin modelleri hangi yazılım geliştirme yaşam döngüsü (YGYD)
aşamaları ile ilişkilidir?
İncelenen çalışmalarda, verilerin toplandığı projelerde tercih edilen YGYD
metodolojisi net olarak belirtilmemiştir. YGYD fazları olarak; gereksinim analizi,
tasarım, kodlama, test ve sürüme açma aşamalarından bahsedilmektedir. Burdan yola
çıkarak, kullanılan YGYD metodolojisinin şelale yöntemi olduğu varsayımı
yapılmıştır. Şekil 2’de, erken hata tahmin modellerinde en çok tasarım aşamasına
ilişkin verilerin (%34) kullanıldığı görülmektedir. Gereksinim aşamasına ilişkin
veriler ise %25 oranında kullanılmıştır. Çalışmaya dahil edilen modellerin bir
kısmında, gereksinim ve/veya tasarım aşamasına ek olarak kodlama ve/veya test
aşamasına ilişkin verilerin de kullanıldığı görülmüştür. Erken aşamaları ele alan bu
modellerden, kodlama aşamasına ilişkin verileri de modele dahil edenlerin oranının
%30 olduğu söylenebilir. Test aşamasına ilişkin verileri de ele alan çalışmalar (%11)
düşük oranda da olsa mevcuttur.</p>
      <p>25%
11%
30%
34%</p>
      <p>Tasarım
Kodlama
Gereksinim</p>
      <p>Test
Şekil 2. İlişkili YGYD Aşaması Dağılımı
AS3: Gereksinim ve tasarım aşamalarından elde edilen verileri, kod aşamasında elde
edilen verilerle birlikte kullanan modellerin tasarımı nasıldır?
İlgili araştırma sorusunu ve alt sorularını yanıtlamak için toplanan veriler Tablo 4’de
verilmiştir.</p>
      <p>Tablo 4. Gereksinim/tasarım aşamalarından elde edilen verileri, kod aşamasından
elde edilen verilerle birlikte kullanan modellerin tasarımı</p>
      <p>
        YGYD Fazı Hata Tahmin Yöntemi
[
        <xref ref-type="bibr" rid="ref15">18</xref>
        ] Tasarım, Kod
      </p>
      <p>Gereksinim,</p>
      <p>Kod
Gereksinim,</p>
      <p>Kod
Gereksinim,</p>
      <p>Kod
Ref
No
AS4: Gereksinim ve tasarım aşamalarından elde edilen veriler kod aşamasından elde
edilen verilerle birlikte kullanıldığında tahmin modelinin performansına etkisi olmuş
mudur? Performansa etkisi varsa ilgili çalışmada raporlanmış mıdır?
Gereksinim ve tasarım aşamalarından elde edilen veriler, kodlama verisi ile
oluşturulan modellere eklendiğinde, modellerin performansında artış görüldüğü
raporlanmıştır. Performanstaki artışlar seçilen 6 adet çalışmada hem sayısal (ROC
eğrisine ait grafiklerin karşılaştırılması, doğruluk değerleri gibi), hem de sözel olarak
raporlanmıştır. Detaylı sonuçlar Tablo 5’de verilmiştir.</p>
    </sec>
    <sec id="sec-40">
      <title>Tablo 5. Çalışmalarda raporlanan sonuçlar</title>
      <p>
        Ref No
[
        <xref ref-type="bibr" rid="ref14">17</xref>
        ]
[
        <xref ref-type="bibr" rid="ref15">18</xref>
        ]
[
        <xref ref-type="bibr" rid="ref16">19</xref>
        ]
[
        <xref ref-type="bibr" rid="ref17">20</xref>
        ]
[
        <xref ref-type="bibr" rid="ref18">21</xref>
        ]
[
        <xref ref-type="bibr" rid="ref19">22</xref>
        ]
      </p>
      <sec id="sec-40-1">
        <title>Sonuçlar</title>
      </sec>
    </sec>
    <sec id="sec-41">
      <title>Model karşılaştırma sonuçları, gereksinimi ölçümlerinin hata tahmini için son derece</title>
      <p>yararlı olabileceğini göstermektedir. Gereksinim + kod metrik grubuyla ve Random</p>
    </sec>
    <sec id="sec-42">
      <title>Forest tahminleme yöntemiyle oluşturulan modelin en iyi ROC eğrisine sahip olduğu</title>
      <p>grafiksel sonuçlarla raporlanmıştır.
Çalışmada tasarım, kod, tasarım + kod metriklerinden oluşturulan modellerin en
başarılısı tasarım + kod metriklerinden oluşturulan model olarak belirtilmiştir.</p>
    </sec>
    <sec id="sec-43">
      <title>Modellerin performans karşılaştırılması iki farklı istatistiksel teste göre yapılmıştır.</title>
    </sec>
    <sec id="sec-44">
      <title>Friedman testinin sonuçlarına göre, model performansları arasında istatistiksel olarak</title>
      <p>anlamlı farkın olduğu (p−value &lt; 0,05) ispatlanmıştır. Wilcoxon testinin sonuçlarına
göre ise, 7 veri setinde tüm metrik grubundan (tasarım + kod metrikleri) yapılandırılan
modellerin performansa önemli ölçüde bir katkılarının olmadığı gözlenmiştir. Fakat
geri kalan 6 veri setinde, tasarım ve kod metrikleri ile yapılandırılan modellerin
performansının önemli ölçüde arttığı (p−value &lt; 0,05) ispatlanmıştır.</p>
    </sec>
    <sec id="sec-45">
      <title>Bu çalışmada, test eforunu azaltmak ve daha kaliteli projeleri oluşturmak için</title>
      <p>gereksinim aşamasında mevcut verilerin de kullanıldığı hata tahmin modellerinin
yararlı olacağı vurgulanmıştır. Füzyon modelin tahmin performansının CM1 veriseti
için 0,99729 (probability of detection) ve 0,79518 (probability of false alarm) olduğu,</p>
    </sec>
    <sec id="sec-46">
      <title>PC1 veriseti için ise PD değeri 1, PF değeri 0,99724 olarak raporlanmıştır.</title>
    </sec>
    <sec id="sec-47">
      <title>Kodlama aşamasından toplanan verilerle oluşturulan hata tahmin modeline, gereksinim aşamasından toplanan veriler de eklendiği zaman, hata tahmin modelinin performansının yaklaşık %4 oranında arttığı raporlanmıştır.</title>
    </sec>
    <sec id="sec-48">
      <title>Tahmin modellerinin kod aşamasına ek olarak erken aşamalara ilişkin verileri de</title>
      <p>kullanacak şekilde yapılandırımlasının yararlı olabileceği belirtilmiştir. Kod ve
gereksinim metriklerinin bir arada kullanıldığı modelde, çapraz geçerleme sonuçlarına
göre hata tahmin performansı %100 kesinlik (Precision) ve %100 duyarlılık (Recall)
oranında raporlanmıştır.</p>
      <p>Füzyon (gereksinim ve kod aşamasına ilişkin verilerin birlikte kullanıldığı) modellerin
daha yüksek performanslı sonuçlar verdiği ve projenin erken aşamalarında
kullanılabilir olduğu söylenmiştir. Kod bazlı modelin doğruluk (accuracy) oranı 0,844
iken, füzyon modelin doğruluk oranının 0,928 olduğu raporlanmıştır.</p>
      <p>İncelenen çalışmalarda, hata tahmin modelinin performansındaki artışların
nedeninin erken aşama bilgisi olduğu söylenmektedir. Performansın artışına sebep
olan etkenin kullanılan metrik sayısındaki artış olup olmadığı çalışmalar tarafından
tartışılmamıştır.</p>
      <sec id="sec-48-1">
        <title>5 Sonuç ve Öneriler</title>
        <p>Bu çalışmada, yazılım geliştirme yaşam döngüsünün gereksinim ve tasarım gibi
erken aşamalarına ilişkin bilgileri hata tahmin modeline dahil eden akademik
çalışmalar sistematik yöntemlerle taranmıştır. Erken aşama bilgisini, kodlama
aşaması bilgileri ile kullanarak tahmin modeli yapılandırmış çalışmalardaki
performans değişimleri incelenerek literatüre özgün bir katkı sağlanmıştır.</p>
        <p>Detaylı olarak incelenen çalışmalarda, gereksinim ve tasarım aşamalarından
toplanan ölçümlerin, kod aşamasından toplanan ölçümlerle birlikte kullanıldığında,
hata tahmin modellerinin performansını arttırdığına ilişkin sonuçların raporlandığı
tespit edilmiştir. Bu çalışmalarda, performansın artışına sebep olan etkenin metrik
sayısındaki artış olup olmadığı incelenmemiştir. Gelecekte, erken aşamalardan ve
kod aşamasından toplanan verilerle hata tahmin modelleri oluşturmayı, tahmin
performanslarını karşılaştırmayı ve performansta artış görülmesi durumunda bunun
nedenini araştırmayı planlamaktayız.</p>
        <p>Erken aşamalarda kullanılan verilerin performans artışına katkısı olduğu kabul
edildiğinde, sadece erken aşamalardan toplanan veriler ile hata tahmininin yapılabilir
olduğunu görmek önemli olacaktır. Sistematik eşleme kısmına dahil ettiğimiz
çalışmalarda, sadece erken aşama bilgisini kullanan modellerin detaylıca incelenmesi
gerektiğini düşünmekteyiz.</p>
        <p>İncelenen çalışmalarda, erken aşamalarda yazılım hata tahmini yapan modellerin,
çok çeşitli yöntemler ve parametreler ile yapılandırıldığı görülmüştür. Yazılım
projesinin parametreleri (proje ekibi, geliştirme süreçleri, takvim, bütçe,
yöneticilerin/proje personelinin ihtiyaçları vb.) göz önünde bulundurularak, bağlama
en uygun yöntemi seçebilmek önem taşımaktadır. Bu doğrultuda, yazılım
parametrelerine göre kullanılması gereken metriklerin, tahmin yöntemlerinin ve
model performansını değerlendirme kriterlerinin belirtildiği bir kılavuz, yazılım hata
tahmini yapacak kişiler için yönlendirici olacak ve fayda sağlayacaktır. Sonraki
çalışmalarımızda, erken aşamaları adresleyebileceğini ve hata tahmin performansını
arttıracağını belirlediğimiz yazılım metriklerini ve tahmin yöntemlerini kullanarak,
çoklu durum çalışmaları yapmayı ve sonuçlarına göre erken aşamalarda hata
tahminine ilişkin yönlendirici bir kılavuz hazırlamayı planlamaktayız.
Kaynaklar</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <string-name>
            <given-names>C.</given-names>
            <surname>Smidts</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. W.</given-names>
            <surname>Stoddard</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Stutzke</surname>
          </string-name>
          .
          <article-title>Software reliability models: an approach to early reliability prediction</article-title>
          .
          <source>Software Reliability Engineering</source>
          ,
          <year>1996</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          <string-name>
            <surname>Proceedings.</surname>
          </string-name>
          , 7th International Symposium on, NY,
          <year>1996</year>
          , pp.
          <fpage>132</fpage>
          -
          <lpage>141</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          <string-name>
            <given-names>Q.</given-names>
            <surname>Song</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Jia</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Shepperd</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ying</surname>
          </string-name>
          and
          <string-name>
            <given-names>J. Liu. A General</given-names>
            <surname>Software DefectProneness Prediction</surname>
          </string-name>
          <article-title>Framework</article-title>
          .
          <source>In: IEEE Transactions on Software Engineering</source>
          ,
          <volume>37</volume>
          (
          <issue>3</issue>
          ), pp.
          <fpage>356</fpage>
          -
          <lpage>370</lpage>
          , (
          <year>2011</year>
          )
          <string-name>
            <surname>Pandey</surname>
            ,
            <given-names>A.K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Goyal</surname>
            ,
            <given-names>N.K.</given-names>
          </string-name>
          :
          <source>Early Software Reliability Prediction</source>
          . Springer, New Delhi (
          <year>2013</year>
          )
          <article-title>Norman Fenton</article-title>
          , Martin Neil,
          <string-name>
            <given-names>William</given-names>
            <surname>Marsh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Peter</given-names>
            <surname>Hearty</surname>
          </string-name>
          , Łukasz Radliński, and
          <string-name>
            <given-names>Paul</given-names>
            <surname>Krause</surname>
          </string-name>
          .
          <year>2008</year>
          .
          <article-title>On the effectiveness of early life cycle defect prediction with Bayesian Nets</article-title>
          .
          <source>Empirical Softw. Engg</source>
          .
          <volume>13</volume>
          ,
          <issue>5</issue>
          (
          <year>October 2008</year>
          ),
          <fpage>499</fpage>
          -
          <lpage>537</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          <string-name>
            <surname>IEEE Standard</surname>
          </string-name>
          <article-title>Classification for Software Anomalies</article-title>
          ,
          <source>in IEEE Std 1044-2009 (Revision of IEEE Std 1044-1993)</source>
          , vol., no., pp.
          <fpage>1</fpage>
          -
          <lpage>23</lpage>
          , Jan 7 2010
          <string-name>
            <given-names>IEEE</given-names>
            <surname>Recommended</surname>
          </string-name>
          <article-title>Practice on Software Reliability</article-title>
          ,
          <source>in IEEE STD 1633-2008</source>
          , vol., no., pp.
          <fpage>c1</fpage>
          -
          <lpage>72</lpage>
          , June 27 2008 Çatal,
          <string-name>
            <given-names>C.</given-names>
            , &amp;
            <surname>Diri</surname>
          </string-name>
          ,
          <string-name>
            <surname>B.</surname>
          </string-name>
          (
          <year>2009</year>
          ).
          <source>A Systematic Review Of Software Fault Prediction Studies, Expert Systems with Applications</source>
          ,
          <volume>36</volume>
          ,
          <fpage>7346</fpage>
          -
          <lpage>7354</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          8.
          <string-name>
            <surname>Çatal</surname>
          </string-name>
          , Ç. (
          <year>2011</year>
          ).
          <article-title>Software Fault Prediction: A Literature Review</article-title>
          and
          <string-name>
            <given-names>Current</given-names>
            <surname>Trends</surname>
          </string-name>
          ,
          <source>Expert Systems with Applications</source>
          ,
          <volume>38</volume>
          ,
          <fpage>4626</fpage>
          -
          <lpage>4636</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          9.
          <string-name>
            <surname>Hall</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Beecham</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bowes</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gray</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Counsell</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          , (
          <year>2012</year>
          ).
          <article-title>A systematic literature review on fault prediction performance in software engineering</article-title>
          .
          <source>IEEE Trans. Softw. Eng</source>
          .
          <volume>38</volume>
          (
          <issue>6</issue>
          ),
          <fpage>1276</fpage>
          -
          <lpage>1304</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          10.
          <string-name>
            <surname>Wahono</surname>
            ,
            <given-names>R.S.</given-names>
          </string-name>
          (
          <year>2015</year>
          ).
          <article-title>A systematic literature review of software defect prediction: research trends, datasets, methods and frameworks</article-title>
          .
          <source>J. Softw. Eng. 1</source>
          ,
          <fpage>1</fpage>
          -
          <lpage>16</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          11.
          <string-name>
            <surname>Özakıncı</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Tarhan</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          (
          <year>2016</year>
          ).
          <article-title>The Role of Process in Early Software Defect Prediction: Methods, Attributes and Metrics</article-title>
          .
          <source>In: 16th International Conference on Software Process Improvement and Capability Determination</source>
          ,
          <string-name>
            <surname>SPICE</surname>
          </string-name>
          <year>2016</year>
          , Volume
          <volume>609</volume>
          , pp.
          <fpage>287</fpage>
          -
          <lpage>300</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          12.
          <string-name>
            <surname>Tarhan</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          , &amp;
          <string-name>
            <surname>Demirors</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          (
          <year>2011</year>
          ).
          <article-title>Investigating the effect of variations in the test development process: A case from a safety-critical system</article-title>
          .
          <source>Software Quality Journal</source>
          ,
          <volume>19</volume>
          (
          <issue>4</issue>
          ),
          <fpage>615</fpage>
          -
          <lpage>642</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          13.
          <string-name>
            <surname>Aslan</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tarhan</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          , &amp;
          <string-name>
            <surname>Demirors</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          (
          <year>2014</year>
          ).
          <article-title>How process enactment data affects product defectiveness prediction-a case study</article-title>
          . In R. Lee (Ed.),
          <source>Software engineering research, management and applications</source>
          (pp.
          <fpage>151</fpage>
          -
          <lpage>166</lpage>
          ). Heidelberg: Springer International Publishing.
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          14.
          <string-name>
            <surname>Söylemez</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          &amp;
          <string-name>
            <surname>Tarhan</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          (
          <year>2016</year>
          ).
          <article-title>Challenges of Software Process and Product Quality Improvement: Catalyzing Defect Root-Cause Investigation by Process Enactment Data Analysis</article-title>
          .
          <source>Software Quality Journal.</source>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          15.
          <string-name>
            <surname>Petersen</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Feldt</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mujtaba</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mattsson</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Systematic mapping studies in software engineering</article-title>
          .
          <source>In: 12th International Conference on Evaluation and Assessment in Software Engineering</source>
          . Volume
          <volume>17</volume>
          . (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          16.
          <string-name>
            <given-names>B.</given-names>
            <surname>Kitchenham</surname>
          </string-name>
          and
          <string-name>
            <given-names>S.</given-names>
            <surname>Charters</surname>
          </string-name>
          ,
          <article-title>"Guidelines for Performing Systematic Literature Reviews in Software Engineering (Version 2.3),"</article-title>
          <source>Technical Report EBSE-2007-01</source>
          , Keele Univ., EBSE,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          17.
          <string-name>
            <surname>Jiang</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cukic</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          , &amp;
          <string-name>
            <surname>Menzies</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          (
          <year>2007</year>
          ).
          <article-title>Fault prediction using early lifecycle data</article-title>
          .
          <source>In Eighteenth IEEE international symposium on software reliability</source>
          (pp.
          <fpage>237</fpage>
          -
          <lpage>246</lpage>
          ). Trollhättan, Sweden: IEEE Computer Society.
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          18.
          <string-name>
            <surname>Jiang</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cukic</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Menzies</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          , &amp;
          <string-name>
            <surname>Bartlow</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          (
          <year>2008</year>
          ).
          <article-title>Comparing design and code metrics for software quality prediction</article-title>
          .
          <source>4th International Workshop on Predictor Models in Software Engineering PROMISE 08</source>
          ,
          <issue>12</issue>
          ,
          <fpage>11</fpage>
          -
          <lpage>18</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          19.
          <string-name>
            <surname>Kaur</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sandhu</surname>
            ,
            <given-names>P. S.</given-names>
          </string-name>
          , &amp;
          <string-name>
            <surname>Bra</surname>
            ,
            <given-names>A. S.</given-names>
          </string-name>
          (
          <year>2009</year>
          ).
          <article-title>Early Software Fault Prediction Using Real Time Defect Data</article-title>
          .
          <source>2009 Second International Conference on Machine Vision</source>
          ,
          <fpage>242</fpage>
          -
          <lpage>245</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          20.
          <string-name>
            <given-names>P.</given-names>
            <surname>Sandhu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Khullar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Singh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Bains</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Kaur</surname>
          </string-name>
          and
          <string-name>
            <given-names>G.</given-names>
            <surname>Singh</surname>
          </string-name>
          ,
          <string-name>
            <surname>A Study</surname>
          </string-name>
          <source>on Early Prediction of Fault Proneness in Software Modules using Genetic Algorithm</source>
          ,
          <year>2010</year>
          , World Academy of Science, Engineering and Technology.
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          21.
          <string-name>
            <surname>Sandhu</surname>
            ,
            <given-names>P. S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Goel</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Brar</surname>
            ,
            <given-names>A. S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kaur</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          , &amp;
          <string-name>
            <surname>Anand</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          (
          <year>2010</year>
          ).
          <article-title>A model for early prediction of faults in software systems</article-title>
          .
          <source>2010 The 2nd International Conference on Computer and Automation Engineering (ICCAE)</source>
          ,
          <volume>4</volume>
          ,
          <fpage>281</fpage>
          -
          <lpage>285</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          22.
          <string-name>
            <surname>Sandhu</surname>
            ,
            <given-names>P. S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kaur</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          , &amp;
          <string-name>
            <surname>Kaur</surname>
            ,
            <given-names>a.</given-names>
          </string-name>
          (
          <year>2010</year>
          ).
          <article-title>A density based clustering approach for early detection of fault prone modules</article-title>
          .
          <source>International Conference on Electronics and Information Engineering</source>
          , Proceedings,
          <volume>2</volume>
          (Iceie),
          <fpage>V2525</fpage>
          -
          <lpage>V2530</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>