<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="tr">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Yazılım Hata Tahmininin Web Uygulamalarında Kullanılabilirligi</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Serdar</forename><surname>Biçer</surname></persName>
							<affiliation key="aff0">
								<orgName type="institution">Yıldız Teknik Üniversitesi Bilgisayar Mühendisligi Bölümü</orgName>
								<address>
									<settlement>İstanbul</settlement>
									<country>Türkiye</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Banu</forename><surname>Diri</surname></persName>
							<affiliation key="aff0">
								<orgName type="institution">Yıldız Teknik Üniversitesi Bilgisayar Mühendisligi Bölümü</orgName>
								<address>
									<settlement>İstanbul</settlement>
									<country>Türkiye</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Yazılım Hata Tahmininin Web Uygulamalarında Kullanılabilirligi</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">9BDACBD6C986B552E971AC7B56D95539</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T17:21+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Özet Yazılım testinde uygulanabilecek en basit yaklaşım verilen bir kod parçasındaki bütün olasılıkları test etmektir. Bu durum zaman ve bütçe kısıtları nedeniyle pratikte imkansızdır. Yazılım hata tahmini yöntemleri proje yöneticileri tarafından, test aşamasında, kısıtlı olan kaynakları efektif bir şekilde dagıtmak için kullanılmaktadır. Bu alandaki çalışmalar özellikle 2005 yılından itibaren artarak devam etmektedir. Bu çalışmada literatürde var olan metriklerin web uygulamaları için yeterli olup olmadıgı sorgulanmıştır. Web uygulamaları üzerinde yaptıgımız deneyler hata tahmininin web uygulamaları üzerinde optimum sonuçlar vermekten uzakta oldugunu göstermektedir. Bu tip uygulamaları geliştirmede kullanılan yaşam döngüsü, diger uygulamalar için kullanılanlarla aynı olsa da teknik bakımdan ayrıştıkları bazı noktalar bulunmaktadır. Bu nedenle yazılım hata tahmini alanında web uygulamalarına özel metrikler oluşturulmasını önermekteyiz.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="tr">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1">Giriş</head><p>Bir yazılım projesinin başarısını belirleyen ana faktör kalitesidir <ref type="bibr" target="#b32">[33]</ref>. Yazılım kalitesi için birden fazla tanım bulunmakla birlikte bunlar içinde öne çıkanı "yazılımın ne kadar iyi tasarlandıgı ve çıkan ürünün bu tasarıma ne kadar uydugu"dur <ref type="bibr" target="#b31">[32]</ref>. Yazılımın kalitesi geliştirme sürecinin test aşamasıyla çok yakından ilişkilidir. Bu ilişki projenin zaman ve bütçe kısıtlarını da çok yakından etkiler. Örnegin 2002'deki IEEE Metrik Paneli'nde <ref type="bibr" target="#b4">[5]</ref> araştırmacılar harcanan eforun yarısının aslında önlenebilecegini, bunların %80'inin de hataların küçük bir kısmından (yaklaşık %20) kaynaklandıgını öne sürmüşlerdir. Bu tip önlenebilir eforlar daha önceden keşfedilip daha az masrafla çözülebilecek veya tamamen önlenebilecek hatalardan kaynaklanmaktadır <ref type="bibr" target="#b6">[7]</ref>. Dikkatli tasarlanmış test aktiviteleri başarılı ürünler dogururken kaotik, rastgele veya dogru yapılmayan test aktiviteleri kısıtları aşmış veya iptal edilmiş ürünlere yol açar. Yazılım testinde uygulanabilecek en basit yaklaşım verilen bir kod parçasındaki bütün olasılıkları test etmektir. Bu durum zaman ve bütçe kısıtları nedeniyle pratikte imkansızdır. Bu nedenle yazılım proje yöneticileri ürünlerindeki hataya yatkınlıgı ölçmek için çogunlukla ögrenme tabanlı tahmin yöntemleri kullanmaktadır.</p><p>Yazılım hata tahmini yöntemleri proje yöneticileri tarafından, test aşamasında, kısıtlı olan kaynakları efektif bir şekilde dagıtmak için kullanılmaktadır. Bu yöntemler yazılım testinde görev yapan kişilere test senaryolarının ne şekilde üretetilecegine ve organize edilecegine karar vermelerine yardımcı olmaktadır. Hatalı modüllerin dogru tahmin edilmesi yazılım testinin masrafını azaltır ve proje yöneticileri kısıtlı kaynaklarını işlere atama konusunda daha rahat hareket edebilirler <ref type="bibr" target="#b33">[34]</ref>. İdealde bir hata tahmini modeli bütün hataları dogru tahmin ederken hatasız modülleri hatalı olarak işaretlememelidir. Ancak pratikte bu duruma çok az rastlanır <ref type="bibr" target="#b1">[2]</ref>. En yeni tahmin modelleri bile bu noktaya erişmekten çok uzaktadır <ref type="bibr" target="#b14">[15,</ref><ref type="bibr" target="#b22">23]</ref>. Yüksek tahmin oranına sahip modeller yüksek yanlış alarm oranına sahiptir. Yüksek yanlış alarm oranları hatasız kodların boş yere test edilmesine yol açar. Bu durum yüksek güvenlik gerektiren uygulamalar için bir soruna yol açmaz çünkü bu tip uygulamalarda karşılaşılacak bir hatanın bedeli çok yüksektir. Ama bu durum kaynak açısından kritik projeler için ciddi bir problemdir <ref type="bibr" target="#b12">[13,</ref><ref type="bibr" target="#b13">14,</ref><ref type="bibr" target="#b19">20]</ref>. Kodun gereksiz yere gözden geçirilmesi test aşamasını uzattıgından bütçe ve zaman kısıtlarını aşma riskini arttırır. Bu nedenle mühendisler dogru ve yanlış tahmin oranlarını dengeleme yoluna gitmelidir <ref type="bibr" target="#b19">[20]</ref>.</p><p>Bu alanda çalışan araştırmacılar şimdiye kadar hata tahmini modellerini kurarken statik kod metrikleri, kod degişim metrikleri, geliştirici ve modül agları gibi farklı metrik kümelerinden yararlandılar. Bunlar arasında statik kod metrikleri 1970'lerden beri kullanılmaktadır <ref type="bibr" target="#b0">[1,</ref><ref type="bibr" target="#b3">4,</ref><ref type="bibr" target="#b18">19]</ref>. Otomatik araçlar yardımıyla da projelerden metrikleri çıkarmak çok daha kolay hale gelmiştir. Geçen yıllarda araştırmacılar kullanılan metrik setlerinin tavan performansa ulaştıgını göstermiştir <ref type="bibr" target="#b22">[23]</ref>. Bu tavan etkisini ortadan kaldırmanın 2 yolu vardır:</p><p>-Var olan metrik setlerine yeni veri madenciligi teknikleri uygulamak -Var olan veri madenciligi tekniklerini yeni metriklere uygulamak Araştırmalarda hata tahmini modellerinin performansını arttırmak için yeni veri madenciligi teknikleri bulmaya çalışmanın harcanan emege degmeyecegi gösterilmiştir <ref type="bibr" target="#b22">[23]</ref>. Bundan dolayı egitim verisinin kalitesini arttırmak veya kullanılan metrik setlerinde yenilikçi davranmak tahmin modellerinin performansını arttırmak için daha efektif bir yöntem olacaktır.</p><p>2012 yılı verilerine göre Kuzey Amerika'nın %78'i, Avrupa'nın %63'ü Internet kullanmaktadır <ref type="bibr" target="#b39">[40]</ref>. Dünya çapında yapılan Internet tabanlı işlemlerin yıllık tutarı trilyon dolarlarla ölçülmektedir <ref type="bibr" target="#b34">[35]</ref>. E-ticaret dışında her gün milyonlarca kullanıcının arama motorları (örn: Google), sosyal paylaşım platformları (örn: Facebook, Twitter), bilgi paylaşımı (örn: Wikipedia) gibi farklı amaçlarla farklı web sitelerini kullandıkları bilinmektedir. Bu kadar büyük bir Internet kullanımı karşısında firmalar açısından erişilebilir olmak günümüzde büyük bir ihtiyaç halini almıştır. Son yıllarda kızışan tarayıcı savaşları ve buna paralel gelişen teknoloji ve performans artışı geliştiricilerin bu alanda ilerlemesine imkan saglamıştır. Bu alanda geliştirme yaparken kullanılan teknolojilerin de ilerlemesiyle web geliştiricileri artık daha özgürce daha iyi uygulamalar çıkarabilmektedir. Mobil cihaz kullanımındaki artışla birlikte web uygulamalarına artık çok daha farklı tipte ekranlardan erişilebilmek gibi gereksinimler eklenmeye başlanmıştır.</p><p>Ancak web uygulamalarındaki hatalar firmalara milyonlarca dolar kaybettirmeye devam etmektedir. Web uygulamalarının masaüstü uygulamalardan farklı olarak yüksek erişilebilirlige sahip olması gerekmektedir. Uygulamada yaşanacak en ufak sıkıntıların firmalara faturası büyük olmaktadır. Örnegin 2001 yılı şükran günü tatilinde Amazon'un yaşadıgı sıkıntılar 20 dakikada 500 bin dolar kaybetmesine neden olmuştur <ref type="bibr" target="#b2">[3]</ref>. Hataların görünmeyen faturası ise daha büyüktür, her hata kullanıcı sadakatinin bozulmasına ve müşteri kaybına neden olmaktadır <ref type="bibr" target="#b29">[30]</ref>.</p><p>Web uygulamalarını geliştirmede kullanılan yaşam döngüsü, diger uygulamalar için kullanılanlarla aynı olsa da teknik bakımdan ayrıştıkları bazı noktalar bulunmaktadır.</p><p>-Öncelikle web uygulamalarının geliştirilmesinde birden fazla programlama dili, tasarım özelligi, dışarıdan kullanılmakta olan kütüphane ve bileşenler bulunur. Bunlara örnek olarak geleneksel programlama dilleri, script dilleri, düz HTML sayfaları, XML tabanlı şablon dosyaları, veritabanları, resimler ve CSS kodları verilebilir. -Geliştirilen uygulamalar tarayıcılara bagımlı halde çalışmaktadır. Aynı kod farklı tarayıcıda farklı şekilde çalışabilmektedir. Bunu önlemek için kodun tarayıcı bagımsız çalışacak şekilde yazılması ve uygulamanın farklı tarayıcılar için test edilmesi gerekmektedir. -Güvenlik zafiyeti daha fazladır. Öncelikle kullanıcı tarafında çalışan kodlara erişip incelemek çok kolaydır. Ayrıca Internet aracılıgıyla daha geniş bir kullanıcı kitlesine hitap ettiginden daha fazla tehdite maruz kalmaktadır. -Dış dünya degişimlerinden daha çok etkilenmektedir. Internet baglantısının kaybolması veya yavaşlaması durumları geliştirme sırasında hesap edilmezse istenmeyen durumlarla karşılaşma şansı yüksektir. -Uygulama bileşenleri gerçek ortamda ve hatta geliştirme sırasında farklı makinelere dagıtılmış halde bulunabilir ve bu halde birbirleriyle uyumlu ve bir bütün çalışmak durumundadırlar.</p><p>Bütün bunlar uygulamanın karmaşıklıgını arttırıcı faktörlerdir <ref type="bibr" target="#b28">[29]</ref>. Bu çalışmada web uygulamaları için hata tahmini yapılarak performans degerlendirmesi yapılmaktadır. Araştırma sorumuz "Kullanılmakta olan yazılım hata tahmini yöntemleri web uygulamaları için ne kadar iyi sonuçlar vermektedir?" şeklindedir.</p><p>Araştırma sorumuzu yanıtlayabilmek için açık kaynak 6 web uygulamasının hataya yatkınlıklarını dosya bazında inceledik. Bu işlem için yaygın olarak kullanılmakta olan metrikler ve sınıflandırma algoritmalarını kullandık. Aldıgımız sonuçlar mevcut hata tahmini yöntemlerinin web uygulamaları için halen düşük performansla çalıştıgını göstermektedir.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">İlgili C ¸alışmalar</head><p>Yazılım hata tahmini alanındaki çalışmalar özellikle 2005 yılından itibaren artarak devam etmektedir <ref type="bibr" target="#b7">[8]</ref>. Bu çalışmalarda farklı tipte metrikler kullanılmakla birlikte statik kod metrikleri yaygın olarak kullanılan metrik tiplerinin başında gelmektedir <ref type="bibr" target="#b0">[1,</ref><ref type="bibr" target="#b11">12,</ref><ref type="bibr" target="#b14">15,</ref><ref type="bibr" target="#b15">16,</ref><ref type="bibr" target="#b17">18,</ref><ref type="bibr" target="#b18">19,</ref><ref type="bibr" target="#b20">21,</ref><ref type="bibr" target="#b26">27,</ref><ref type="bibr" target="#b32">33]</ref>. Literatürdeki ilk hata tahmini çalışması satır sayısı kullanılarak yapılmıştır <ref type="bibr" target="#b0">[1]</ref>. Daha sonra Halstead metrikleri <ref type="bibr" target="#b11">[12]</ref> ve McCabe metrikleri <ref type="bibr" target="#b15">[16]</ref> kullanılmaya başlanmıştır. Bu metrikler uygulamanın karmaşıklıgı ve boyutu hakkında fikirler vermektedir. Günümüzde en yaygın kullanılan metrik tipleri bunlardır. Ancak bu çalışmalarda genel olarak masaüstü uygulamalarından çıkarılan metrikler kullanılmış olup herhangi bir web uygulaması için çıkarılmış bir metrik seti bulunmamaktadır.</p><p>Yazılım hata tahmininde kullanılan metrik setlerinden bir digeri kod degişim (code churn) metrikleridir <ref type="bibr" target="#b8">[9,</ref><ref type="bibr" target="#b9">10,</ref><ref type="bibr" target="#b25">26,</ref><ref type="bibr" target="#b27">28]</ref>. Bu metrik setleri Subversion ve GIT gibi versiyon kontrol sistemlerinden çıkarılmaktadır. Geliştiricilerin kod üzerinde yaptıgı degişiklikler kullanılarak, eklenen/silinen satır sayısı, yapılan degişiklik sayısı, degişiklik yapan geliştirici sayısı gibi özellikler çıkarılmaktadır. Kod degişim metrigi ilk olarak Munson tarafından <ref type="bibr" target="#b25">[26]</ref> ortaya atılmıştır. Yapılan çalışmalarda statik kod metriklerinden daha iyi sonuç verdigi gözlenmiştir.</p><p>Bunlar dışında digerlerine göre nispeten daha yeni bir metrik tipi olarak sosyal ag metrikleri de yazılım hata tahmininde kullanılmaktadır <ref type="bibr" target="#b5">[6,</ref><ref type="bibr" target="#b16">17,</ref><ref type="bibr" target="#b30">31,</ref><ref type="bibr" target="#b38">39,</ref><ref type="bibr" target="#b40">41]</ref>. Bu çalışmalarda kullanılan metrikler koddan bagımsız olup, sosyal aglar geliştirici veya dosyalardan oluşturulmaktadır. Bu alanda çalışanlar birbirine bagımlılıgı olan dosyalar veya aynı dosya üzerinde çalışmış olan geliştiricileri birbirleriyle baglayarak sosyal aglar kurmuş bu aglardan sosyal ag analizi yöntemleri ile metrikler çıkarmışlardır.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">Yöntem</head><p>Bu bölümde çalışmada kullanılan veri kümeleri ve araştırma yöntemleri açıklanmaktadır.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.1">Veri Kümeleri</head><p>Araştırma sürecinde ilk olarak literatürde var olan metriklerin web uygulamaları için yeterli olup olmadıgı sorgulanmıştır. Bu metrikler web uygulamalarına özel ortaya atılmış olmasa bile programlama dillerinin genel yapısından dolayı uygunluk göstermeleri olasıdır. PHP tabanlı 6 uygulama incelenerek, statik kod metrikleri ve kod degişim metrikleri kullanılarak uygulamalardaki hatalar tahmin edilmeye çalışılmıştır. Uygulamalar hakkında bazı istatistikler Tablo 1'den görülebilir. Yapılan denemelerde her proje için 2 farklı tipte metrik seti için farklı algoritmalar kullanılmıştır. Sonuçların degerlendirilmesi için 10 katlı çapraz geçerleme kullanılmıştır.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2">Hata Tahmin Modeli</head><p>Bu çalışmada makine ögrenmesi yöntemlerine dayanan bir hata tahmin yöntemi uygulanmıştır. Kullanılan yöntemin görsel temsili S ¸ekil 1'de görülebilir. Versiyon kontrol sistemleri kodlara ve kod geçmişlerine ulaşmak, buralardan metrikler çıkarmak için kullanılmıştır. Uygulamalarda yer alan dosyaların hataya Performans Ölçümü C ¸alışmada tahmin modellerinin performansı hata tahmini çalışmalarında yaygın olarak kullanılan dogru pozitif oranı (DPO) ve yanlış pozitif oranı (YPO) ölçümleri kullanılmaktadır <ref type="bibr" target="#b5">[6,</ref><ref type="bibr" target="#b12">13,</ref><ref type="bibr" target="#b14">15,</ref><ref type="bibr" target="#b18">19,</ref><ref type="bibr" target="#b35">36]</ref>. Bu ölçümler tahmin algoritmalarının veri setleri kullanılarak egitilmesi ve oluşan tahmin modellerinin test edilmesiyle elde edilmektedir. DPO modelin gerçekten hataya yatkın olan modülleri bulmadaki başarısını gösterirken YPO aslında hatasız olan modülleri hatalı işaretledigini belirtir. Hata tahmininde DPO oranını yükseltip YPO oranını düşüren yöntemler daha degerli bulunmaktadır. Bu nedenle mümkün oldugunca (DPO, YPO) çiftini (1,0) ideal noktasına yaklaştıran tahmin yöntemlerine ulaşmaya ihtiyaç vardır. Maalesef bu ideal durum pratikte çok nadir görülmektedir. Ölçümlerin ideal duruma yakınlıgını ölçmek için denge adı verilen performans ölçütü kullanılmaktadır. Belirtilen ölçütler (1), ( <ref type="formula">2</ref>) ve (3) kullanılarak Tablo 3'deki karışıklık matrisi yardımıyla hesaplanmaktadır. S ¸ekil 2: ROC egrisinde bölgeler Dogru tahmin bir modelin başarısını belirlemek için önemli bir etkendir ancak yanlış tahmin de oldukça önemlidir. Bu durum S ¸ekil 2'de gösterilmiştir. Risk odaklı bölgedeki tahmin modelleri yüksek DPO'ya sahip olmakla beraber YPO'ları da oldukça yüksektir. Bu durum hata içermeyen çok sayıda dosyanın hatalı olarak işaretlenmesi anlamına gelip, gereginden fazla dosyanın incelenmesi sonucunu dogurur. Bu da test aşamasının masrafının artmasına neden olmaktadır. Hatasızlıgın çok önemli oldugu projeler için bu kabul edilebilir bir durum olmakla beraber projelerin çogu bu kategoride yer almamaktadır. Masraf odaklı bölge orta-düşük DPO'ya ve çok düşük YPO'ya sahiptir. Bu bölgeye düşen tahmin modelleri sınırlı kaynaklara sahip projeler için daha kullanışlıdır <ref type="bibr" target="#b12">[13]</ref>.</p><p>Veri dagılımının normal dagılıma uyacagını dogrudan farz edemeyecegimiz için uygulanacak farklı yöntemlerle bulunan sonuçların birbirinden farklı olup olmadıgının kontrolü Mann-Whitney U testi kullanarak yapıldı.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>DP O = DP DP + Y N</head><p>(1) Metrik setleri açısından baktıgımızda kod degişim metriklerinin statik kod metriklerine göre daha iyi sonuçlar verdigi görülebilir. Ortalama denge sonuçları arasındaki farklar istatistiksel açıdan anlamlı bulunmuştur. Bu sonuçlar önceki çalışmaları <ref type="bibr" target="#b8">[9,</ref><ref type="bibr" target="#b14">15,</ref><ref type="bibr" target="#b23">24,</ref><ref type="bibr" target="#b24">25]</ref> dogrulamaktadır. Ancak en başarılı olan skorların büyük çogunlugunda, tahmin oranı çogu projede yüksek çıkmasına ragmen hatalı tahmin oranı da oldukça yüksektir. Bu durumun kaynak açısından kısıtlı projeler için pratikte sagladıgı bir yarar bulunmamaktadır. C ¸ünkü bu durum hata içermeyen çok sayıda modülün de hatalı olarak işaretlenmesine neden olacagı için test aşamasında yüksek efor harcanmasına sebep olup, hata tahmininin kullanılma amacıyla örtüşmemektedir. Ortalama degerlere bakıldıgı zaman DPO, YPO ve denge degerlerinin bu alanda benzer performans kriterleri kullanılarak yapılmış diger çalışmalarda bulunan ölçümlerden <ref type="bibr" target="#b8">[9,</ref><ref type="bibr" target="#b18">19,</ref><ref type="bibr" target="#b21">22,</ref><ref type="bibr" target="#b23">24,</ref><ref type="bibr" target="#b24">25,</ref><ref type="bibr" target="#b36">37]</ref> daha düşük oldugu görülebilir. Bu sonuçlar web uygulamalarına özel bir hata tahmini çalışması yapılmasının gerekli oldugu yönündeki düşüncemizi kuvvetlendirmiştir.</p><formula xml:id="formula_0">Y P O = Y P Y P + DN (2) Denge = 1 − Y P O 2 + (1 − DP O) 2 √ 2<label>(3)</label></formula></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5">Tartışma</head><p>Bu araştırmada yazılım hata tahmininde uygulanmakta olan tekniklerin web uygulamalarında ne kadar uygulanabilir oldugu araştırılmıştır. Web paradigması yükselişini 2000'li yılların başında yapmış olsa da günümüzde halen gayet revaçta olan bir alandır. Bu tip uygulamalarda yapılan hatalar firmalara çok daha pahalıya mal olmaktadır. Dogaları geregi barındırdıkları teknik detaylar nedeniyle web uygulamalarınının ayrı bir yere konması gerekmektedir. Yazılım hata tahmini alanında bugüne kadar yapılmış çok sayıda çalışma var olsa </p></div><figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_0"><head>Uygulama Adı Sürüm Geliştirici Sayısı Satır Sayısı Dosya Sayısı Commit Sayısı Hatalı Dosya Oranı</head><label></label><figDesc>Bu metrik tipleri sadece programlama dilleri için kullanılabildiginden, veri setine sadece PHP ve JavaScript dosyaları dahil edilmiştir. Kod degişim metriklerini çıkarmak için basit bir script yazılmıştır. Bu metrik tipi için PHP ve JavaScript dosyalarının yanında HTML, CSS ve XML dosyaları da veri setine dahil edilebilmiştir. Sadece temel alınan sürümden 1 sene öncesine kadar üzerinde degişiklik yapılmış dosyalar veri setine dahil edilmiştir.Metrik Tipleri C ¸alışmada kullanılmak üzere statik kod metrikleri ve kod degişim metrikleri seçilmiştir. Bu metrikler araştırmalarda en yaygın kullanılan metrik tipleri oldukları ve genelde iyi sonuç verdikleri gözlendigi için seçilmiştir. Kullanılan metrikler Tablo 2'de listelenmiştir.</figDesc><table><row><cell cols="5">alınarak 1 sene içinde hata olarak işaretlenmiş kod degişimleri çıkarılmıştır Tablo 1: İncelenen Uygulamalar ve degiştirilmiş dosyalar hatalı olarak işaretlenmiştir. Bir kod degişimini hata</cell></row><row><cell cols="5">Laravel olarak işaretleyebilmek için kod teslim mesajında (bug, error, fix, fail) gibi 3.0 54 51448 308 2559 %34</cell></row><row><cell>Symfony anahtar kelimeler aranmıştır. 2.2 753</cell><cell>285875</cell><cell>4048</cell><cell>13144</cell><cell>%49</cell></row><row><cell cols="5">phpMyAdmin Guzzle Statik kod metriklerini çıkarmak için Understand [38] adlı uygulama kul-3.5 330 1140741 1142 70113 %24 3.0 29 48052 413 632 %15 Wordpress 3.0 53 382600 1246 25712 %44 Joomla 3.1 239 581606 5573 15726 %30 lanılmıştır. Tablo 2: Kullanılan Metrikler</cell></row><row><cell>Statik Kod Metrikleri</cell><cell></cell><cell cols="2">Kod Degişim Metrikleri</cell><cell></cell></row><row><cell>Satır sayısı</cell><cell></cell><cell cols="2">Kod teslimi sayısı</cell><cell></cell></row><row><cell>Kod satır sayısı</cell><cell></cell><cell cols="2">Kod teslim eden kişi sayısı</cell><cell></cell></row><row><cell>Boş satır sayısı</cell><cell></cell><cell cols="2">Eklenen satır sayısı</cell><cell></cell></row><row><cell>Yorum satır sayısı</cell><cell></cell><cell cols="2">Silinen satır sayısı</cell><cell></cell></row><row><cell>Yorum/kod oranı</cell><cell cols="3">Son sürümde kod teslimi sayısı</cell><cell></cell></row><row><cell>İfade sayısı</cell><cell cols="4">Son sürümde kod teslim eden kişi sayısı</cell></row><row><cell>Döngüsel karmaşıklık</cell><cell cols="3">Son sürümde eklenen satır sayısı</cell><cell></cell></row><row><cell>Tasarımsal karmaşıklık</cell><cell cols="3">Son sürümde silinen satır sayısı</cell><cell></cell></row><row><cell>Temel karmaşıklık</cell><cell cols="4">Popüler kod teslim eden kişi yüzdesi</cell></row><row><cell>Yol sayısı</cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell>Kod blok seviyesi</cell><cell></cell><cell></cell><cell></cell><cell></cell></row></table><note>meyilli olup olmadıkları farklı tipte metrikler ve sınıflandırma algoritmaları kullanılarak tahmin edilmeye çalışılmıştır. Sınıflandırma için Naive Bayes, Bayes Net ve Random Forest algoritmaları kullanılmıştır. Bu algoritmalar yazılım hata tahmini alanında yaygın olarak kullanıldıkları ve genelde iyi sonuç verdikleri gözlendigi için tercih edilmiştir<ref type="bibr" target="#b7">[8,</ref><ref type="bibr" target="#b14">15,</ref><ref type="bibr" target="#b18">19,</ref><ref type="bibr" target="#b22">23]</ref>. Girdi olarak statik kod metrikleri ve kod degişim metrikleri kullanılmıştır. Örnekleme sapmasını engellemek için 10 katlı çapraz geçerleme kullanılmıştır. Deneylerin gerçeklenmesi için Weka uygulaması<ref type="bibr" target="#b10">[11]</ref> kullanılmıştır. Veri setlerine egitim ve test işlemlerinin uygulanması ile hata tahmini sonuçları elde edilmiştir. Bu sonuçlar performans ölçümü aşamasına girdi olarak kullanılmıştır.S ¸ekil 1: Ögrenme tabanlı hata tahmini sistemi mimarisiVeri C ¸ıkarma Veri çıkarma işlemi her proje için benzer şekilde ilerlemiştir. Öncelikle proje kodları Tablo 1'de belirtilen sürümler için Github sayfalarından indirilmiştir. Hatalı modüllerin işaretlenmesi için indirilen sürümler temel</note></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_2"><head>Naive Bayes Bayes Net Random Forest DPO YPO Denge DPO YPO Denge DPO YPO Denge Laravel</head><label></label><figDesc>bile bu çalışmalar araştırmanın ana fikrinden farklı nitelikler ortaya koymaktadır. Var olan yöntemlerin farklı uygulamalar için kullanılmasından çıkarılan sonuç, yazılım hata tahmini yöntemlerinden bu alanda yeterince faydalanamadıgı kanısı dogurmuş ve bu alana özel bir çalışma yapılması gerektigi yönündeki fikrimizi güçlendirmiştir. İlgili çalışmalarda ortaya çıkarılmış olan veri setinin zenginleştirilmesi fikrine paralel olarak ilerisi için web uygulamalarında hata tahmini yapılması için özel bir metrik seti çıkarılması, bu sayede hata tahmininde kullanılan veri setlerinin iyileştirilip bu tip uygulamalarda daha iyi sonuçlar alınması tavsiye edilmektedir. Özellikle kozmetik hataların öne çıktıgı bu tip uygulamalarda HTML/CSS için metrik seti çıkarılması düşünülebilir.</figDesc><table><row><cell></cell><cell cols="2">Tablo 4: Statik Kod Metrikleri</cell></row><row><cell></cell><cell>Naive Bayes</cell><cell>Bayes Net</cell><cell>Random Forest</cell></row><row><cell></cell><cell cols="3">DPO YPO Denge DPO YPO Denge DPO YPO Denge</cell></row><row><cell>Laravel</cell><cell cols="3">0.39 0.21 0.54 0.78 0.44 0.65 0.88 0.48 0.65</cell></row><row><cell>Symfony</cell><cell cols="3">0.90 0.65 0.53 0.72 0.32 0.70 0.88 0.65 0.53</cell></row><row><cell cols="4">phpMyAdmin 0.40 0.16 0.56 0.42 0.20 0.57 0.42 0.14 0.58 Guzzle 0.90 0.53 0.62 0.78 0.31 0.73 0.94 0.70 0.50 Kaynaklar</cell></row><row><cell>Wordpress</cell><cell cols="3">0.89 0.72 0.48 0.76 0.60 0.54 0.73 0.42 0.65</cell></row><row><cell>Joomla</cell><cell cols="3">0.12 0.03 0.38 0.75 0.19 0.78 0.89 0.30 0.77</cell></row><row><cell>Ortalama</cell><cell cols="3">0.6 0.38 0.52 0.70 0.34 0.66 0.79 0.45 0.61</cell></row><row><cell></cell><cell cols="2">Tablo 5: Kod Degişim Metrikleri</cell></row><row><cell></cell><cell cols="3">0.91 0.55 0.61 0.71 0.13 0.78 0.83 0.36 0.72</cell></row><row><cell>Symfony</cell><cell cols="3">0.93 0.73 0.48 0.87 0.57 0.59 0.87 0.66 0.52</cell></row><row><cell cols="4">phpMyAdmin 0.25 0.06 0.47 0.51 0.16 0.64 0.47 0.15 0.61</cell></row><row><cell>Guzzle</cell><cell cols="3">0.91 0.61 0.56 0.88 0.58 0.58 0.93 0.77 0.45</cell></row><row><cell>Wordpress</cell><cell cols="3">0.96 0.41 0.71 0.80 0.03 0.86 0.84 0.12 0.86</cell></row><row><cell>Joomla</cell><cell cols="3">0.93 0.45 0.68 0.86 0.32 0.75 0.86 0.29 0.77</cell></row><row><cell>Ortalama</cell><cell cols="3">0.82 0.47 0.59 0.77 0.30 0.70 0.80 0.39 0.66</cell></row></table></figure>
		</body>
		<back>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">An example of software system debugging</title>
		<author>
			<persName><forename type="first">F</forename><surname>Akiyama</surname></persName>
		</author>
		<ptr target="http://dblp.uni-trier.de/db/conf/ifip/ifip71-1.html#Akiyama71" />
	</analytic>
	<monogr>
		<title level="m">IFIP Congress (1)</title>
				<imprint>
			<date type="published" when="1971">1971</date>
			<biblScope unit="page" from="353" to="359" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<monogr>
		<title level="m" type="main">Introduction to Machine Learning</title>
		<author>
			<persName><forename type="first">E</forename><surname>Alpaydın</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2010">2010</date>
			<publisher>The MIT Press</publisher>
		</imprint>
	</monogr>
	<note>2nd edn.</note>
</biblStruct>

<biblStruct xml:id="b2">
	<monogr>
		<title level="m" type="main">California power outages suspended-for now</title>
		<ptr target="http://news.cnet.com/2100-1017-251167.html" />
		<imprint>
			<date type="published" when="2014-04-12">2014-04-12</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">Software errors and complexity: An empirical investigation</title>
		<author>
			<persName><forename type="first">V</forename><forename type="middle">R</forename><surname>Basili</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><forename type="middle">T</forename><surname>Perricone</surname></persName>
		</author>
		<idno type="DOI">10.1145/69605.2085</idno>
		<ptr target="http://doi.acm.org/10.1145/69605.2085" />
	</analytic>
	<monogr>
		<title level="j">Commun. ACM</title>
		<imprint>
			<biblScope unit="volume">27</biblScope>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page" from="42" to="52" />
			<date type="published" when="1984">1984</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">Lessons learned from 25 years of process improvement: the rise and fall of the nasa software engineering laboratory</title>
		<author>
			<persName><forename type="first">V</forename><surname>Basili</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Mcgarry</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Pajerski</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Zelkowitz</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 24rd International Conference on</title>
				<meeting>the 24rd International Conference on</meeting>
		<imprint>
			<date type="published" when="2002">2002. 2002</date>
			<biblScope unit="page" from="69" to="79" />
		</imprint>
	</monogr>
	<note>Software Engineering</note>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">Defect prediction using social network analysis on issue repositories</title>
		<author>
			<persName><forename type="first">S</forename><surname>Biçer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">B</forename><surname>Bener</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>¸aglayan</surname></persName>
		</author>
		<idno type="DOI">10.1145/1987875.1987888</idno>
		<ptr target="http://doi.acm.org/10.1145/1987875.1987888" />
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 2011 International Conference on Software and Systems Process</title>
				<meeting>the 2011 International Conference on Software and Systems Process<address><addrLine>New York, NY, USA</addrLine></address></meeting>
		<imprint>
			<publisher>ACM</publisher>
			<date type="published" when="2011">2011</date>
			<biblScope unit="page" from="63" to="71" />
		</imprint>
	</monogr>
	<note>ICSSP &apos;11</note>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">Software defect reduction top 10 list</title>
		<author>
			<persName><forename type="first">B</forename><surname>Boehm</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><forename type="middle">R</forename><surname>Basili</surname></persName>
		</author>
		<idno type="DOI">10.1109/2.962984</idno>
		<ptr target="http://dx.doi.org/10.1109/2.962984" />
	</analytic>
	<monogr>
		<title level="j">Computer</title>
		<imprint>
			<biblScope unit="volume">34</biblScope>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page" from="135" to="137" />
			<date type="published" when="2001">2001</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">Review: A systematic review of software fault prediction studies</title>
		<author>
			<persName><forename type="first">C</forename><surname>Diri</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename></persName>
		</author>
		<idno type="DOI">10.1016/j.eswa.2008.10.027</idno>
		<ptr target="http://dx.doi.org/10.1016/j.eswa.2008.10.027" />
	</analytic>
	<monogr>
		<title level="j">Expert Syst. Appl</title>
		<imprint>
			<biblScope unit="volume">36</biblScope>
			<biblScope unit="issue">4</biblScope>
			<biblScope unit="page" from="7346" to="7354" />
			<date type="published" when="2009-05">May 2009</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">Merits of using repository metrics in defect prediction for open source projects</title>
		<author>
			<persName><forename type="first">B</forename><surname>C ¸aglayan</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Bener</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Koch</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Emerging Trends in Free/Libre/Open Source Software Research and Development</title>
				<imprint>
			<date type="published" when="2009-05">2009. May 2009</date>
			<biblScope unit="page" from="31" to="36" />
		</imprint>
	</monogr>
	<note>FLOSS &apos;09. ICSE Workshop on</note>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">Predicting fault incidence using software change history</title>
		<author>
			<persName><forename type="first">T</forename><forename type="middle">L</forename><surname>Graves</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">F</forename><surname>Karr</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">S</forename><surname>Marron</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Siy</surname></persName>
		</author>
		<idno type="DOI">10.1109/32.859533</idno>
		<ptr target="http://dx.doi.org/10.1109/32.859533" />
	</analytic>
	<monogr>
		<title level="j">IEEE Trans. Softw. Eng</title>
		<imprint>
			<biblScope unit="volume">26</biblScope>
			<biblScope unit="issue">7</biblScope>
			<biblScope unit="page" from="653" to="661" />
			<date type="published" when="2000-07">Jul 2000</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">The weka data mining software: An update</title>
		<author>
			<persName><forename type="first">M</forename><surname>Hall</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Frank</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Holmes</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Pfahringer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Reutemann</surname></persName>
		</author>
		<author>
			<persName><forename type="first">I</forename><forename type="middle">H</forename><surname>Witten</surname></persName>
		</author>
		<idno type="DOI">10.1145/1656274.1656278</idno>
		<ptr target="http://doi.acm.org/10.1145/1656274.1656278" />
	</analytic>
	<monogr>
		<title level="j">SIGKDD Explor. Newsl</title>
		<imprint>
			<biblScope unit="volume">11</biblScope>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page" from="10" to="18" />
			<date type="published" when="2009-11">Nov 2009</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<monogr>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">H</forename><surname>Halstead</surname></persName>
		</author>
		<title level="m">Elements of Software Science (Operating and Programming Systems Series</title>
				<meeting><address><addrLine>New York, NY, USA</addrLine></address></meeting>
		<imprint>
			<publisher>Elsevier Science Inc</publisher>
			<date type="published" when="1977">1977</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<analytic>
		<title level="a" type="main">Fault prediction using early lifecycle data</title>
		<author>
			<persName><forename type="first">Y</forename><surname>Jiang</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Cukic</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Menzies</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">ISSRE &apos;07. The 18th IEEE International Symposium on</title>
				<imprint>
			<date type="published" when="2007">2007. 2007</date>
			<biblScope unit="page" from="237" to="246" />
		</imprint>
	</monogr>
	<note>Software Reliability</note>
</biblStruct>

<biblStruct xml:id="b13">
	<analytic>
		<title level="a" type="main">Cost curve evaluation of fault prediction models</title>
		<author>
			<persName><forename type="first">Y</forename><surname>Jiang</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Cukic</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Menzies</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">ISSRE 2008. 19th International Symposium on</title>
				<imprint>
			<date type="published" when="2008">2008. 2008</date>
			<biblScope unit="page" from="197" to="206" />
		</imprint>
	</monogr>
	<note>Software Reliability Engineering</note>
</biblStruct>

<biblStruct xml:id="b14">
	<analytic>
		<title level="a" type="main">Benchmarking classification models for software defect prediction: A proposed framework and novel findings</title>
		<author>
			<persName><forename type="first">S</forename><surname>Lessmann</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Baesens</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Mues</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Pietsch</surname></persName>
		</author>
		<idno type="DOI">10.1109/TSE.2008.35</idno>
		<ptr target="http://dx.doi.org/10.1109/TSE.2008.35" />
	</analytic>
	<monogr>
		<title level="j">IEEE Trans. Softw. Eng</title>
		<imprint>
			<biblScope unit="volume">34</biblScope>
			<biblScope unit="issue">4</biblScope>
			<biblScope unit="page" from="485" to="496" />
			<date type="published" when="2008">2008</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b15">
	<analytic>
		<title level="a" type="main">A complexity measure. Software Engineering</title>
		<author>
			<persName><forename type="first">T</forename><surname>Mccabe</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">IEEE Transactions on SE</title>
		<imprint>
			<biblScope unit="volume">2</biblScope>
			<biblScope unit="issue">4</biblScope>
			<biblScope unit="page" from="308" to="320" />
			<date type="published" when="1976-12">Dec 1976</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b16">
	<analytic>
		<title level="a" type="main">Predicting failures with developer networks and social network analysis</title>
		<author>
			<persName><forename type="first">A</forename><surname>Meneely</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Williams</surname></persName>
		</author>
		<author>
			<persName><forename type="first">W</forename><surname>Snipes</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Osborne</surname></persName>
		</author>
		<idno type="DOI">10.1145/1453101.1453106</idno>
		<ptr target="http://doi.acm.org/10.1145/1453101.1453106" />
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of Software Engineering</title>
				<meeting>the 16th ACM SIGSOFT International Symposium on Foundations of Software Engineering<address><addrLine>New York, NY, USA</addrLine></address></meeting>
		<imprint>
			<publisher>ACM</publisher>
			<date type="published" when="2008">2008</date>
			<biblScope unit="page" from="13" to="23" />
		</imprint>
	</monogr>
	<note>SIGSOFT &apos;08/FSE-16</note>
</biblStruct>

<biblStruct xml:id="b17">
	<analytic>
		<title level="a" type="main">Metrics that matter</title>
		<author>
			<persName><forename type="first">T</forename><surname>Menzies</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Di Stefano</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Chapman</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Mcgill</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings. 27th Annual NASA Goddard/IEEE</title>
				<meeting>27th Annual NASA Goddard/IEEE</meeting>
		<imprint>
			<date type="published" when="2002-12">2002. Dec 2002</date>
			<biblScope unit="page" from="51" to="57" />
		</imprint>
	</monogr>
	<note>Software Engineering Workshop</note>
</biblStruct>

<biblStruct xml:id="b18">
	<analytic>
		<title level="a" type="main">Data mining static code attributes to learn defect predictors</title>
		<author>
			<persName><forename type="first">T</forename><surname>Menzies</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Greenwald</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Frank</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Software Engineering</title>
		<imprint>
			<biblScope unit="volume">33</biblScope>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page" from="2" to="13" />
			<date type="published" when="2007">2007</date>
		</imprint>
	</monogr>
	<note>IEEE Transactions on</note>
</biblStruct>

<biblStruct xml:id="b19">
	<analytic>
		<title level="a" type="main">When can we test less? In</title>
		<author>
			<persName><forename type="first">T</forename><surname>Menzies</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Stefano</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Ammar</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Mcgill</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Callis</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Davis</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Chapman</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings. Ninth International</title>
				<meeting>Ninth International</meeting>
		<imprint>
			<date type="published" when="2003">2003. 2003</date>
			<biblScope unit="page" from="98" to="110" />
		</imprint>
	</monogr>
	<note>Software Metrics Symposium</note>
</biblStruct>

<biblStruct xml:id="b20">
	<analytic>
		<title level="a" type="main">Assessing predictors of software defects</title>
		<author>
			<persName><forename type="first">T</forename><surname>Menzies</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Distefano</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">O</forename><surname>(mike Chapman</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings, workshop on Predictive Software Models</title>
				<meeting>workshop on Predictive Software Models</meeting>
		<imprint>
			<date type="published" when="2004">2004</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b21">
	<analytic>
		<title level="a" type="main">Defect prediction from static code features: current results, limitations, new approaches</title>
		<author>
			<persName><forename type="first">T</forename><surname>Menzies</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Z</forename><surname>Milton</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Turhan</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Cukic</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><surname>Jiang</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Bener</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Automated Software Engineering</title>
		<imprint>
			<biblScope unit="volume">17</biblScope>
			<biblScope unit="issue">4</biblScope>
			<biblScope unit="page" from="375" to="407" />
			<date type="published" when="2010">2010</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b22">
	<analytic>
		<title level="a" type="main">Implications of ceiling effects in defect predictors</title>
		<author>
			<persName><forename type="first">T</forename><surname>Menzies</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Turhan</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Bener</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Gay</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Cukic</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><surname>Jiang</surname></persName>
		</author>
		<idno type="DOI">10.1145/1370788.1370801</idno>
		<ptr target="http://doi.acm.org/10.1145/1370788.1370801" />
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 4th International Workshop on Predictor Models in Software Engineering</title>
				<meeting>the 4th International Workshop on Predictor Models in Software Engineering<address><addrLine>New York, NY, USA</addrLine></address></meeting>
		<imprint>
			<publisher>ACM</publisher>
			<date type="published" when="2008">2008</date>
			<biblScope unit="page" from="47" to="54" />
		</imprint>
	</monogr>
	<note>PROMISE &apos;08</note>
</biblStruct>

<biblStruct xml:id="b23">
	<analytic>
		<title level="a" type="main">Different strokes for different folks: A case study on software metrics for different defect categories</title>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">T</forename><surname>Mısırlı</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>¸aglayan</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">V</forename><surname>Miranskyy</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Bener</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Ruffolo</surname></persName>
		</author>
		<idno type="DOI">10.1145/1985374.1985386</idno>
		<ptr target="http://doi.acm.org/10.1145/1985374.1985386" />
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 2Nd International Workshop on Emerging Trends in Software Metrics</title>
				<meeting>the 2Nd International Workshop on Emerging Trends in Software Metrics<address><addrLine>New York, NY, USA</addrLine></address></meeting>
		<imprint>
			<publisher>ACM</publisher>
			<date type="published" when="2011">2011</date>
			<biblScope unit="page" from="45" to="51" />
		</imprint>
	</monogr>
	<note>WETSoM &apos;11</note>
</biblStruct>

<biblStruct xml:id="b24">
	<analytic>
		<title level="a" type="main">A comparative analysis of the efficiency of change metrics and static code attributes for defect prediction</title>
		<author>
			<persName><forename type="first">R</forename><surname>Moser</surname></persName>
		</author>
		<author>
			<persName><forename type="first">W</forename><surname>Pedrycz</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Succi</surname></persName>
		</author>
		<idno type="DOI">10.1145/1368088.1368114</idno>
		<ptr target="http://doi.acm.org/10.1145/1368088.1368114" />
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 30th International Conference on Software Engineering</title>
				<meeting>the 30th International Conference on Software Engineering<address><addrLine>New York, NY, USA</addrLine></address></meeting>
		<imprint>
			<publisher>ACM</publisher>
			<date type="published" when="2008">2008</date>
			<biblScope unit="page" from="181" to="190" />
		</imprint>
	</monogr>
	<note>ICSE &apos;08</note>
</biblStruct>

<biblStruct xml:id="b25">
	<analytic>
		<title level="a" type="main">Code churn: A measure for estimating the impact of code change</title>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">C</forename><surname>Munson</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><forename type="middle">G</forename><surname>Elbaum</surname></persName>
		</author>
		<ptr target="http://dl.acm.org/citation.cfm?id=850947.853326" />
	</analytic>
	<monogr>
		<title level="m">Proceedings of the International Conference on Software Maintenance</title>
				<meeting>the International Conference on Software Maintenance<address><addrLine>Washington, DC, USA</addrLine></address></meeting>
		<imprint>
			<publisher>IEEE Computer Society</publisher>
			<date type="published" when="1998">1998</date>
			<biblScope unit="page">24</biblScope>
		</imprint>
	</monogr>
	<note>ICSM &apos;98</note>
</biblStruct>

<biblStruct xml:id="b26">
	<analytic>
		<title level="a" type="main">Static analysis tools as early indicators of pre-release defect density</title>
		<author>
			<persName><forename type="first">N</forename><surname>Nagappan</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Ball</surname></persName>
		</author>
		<idno type="DOI">10.1145/1062455.1062558</idno>
		<ptr target="http://doi.acm.org/10.1145/1062455.1062558" />
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 27th International Conference on Software Engineering</title>
				<meeting>the 27th International Conference on Software Engineering<address><addrLine>New York, NY, USA</addrLine></address></meeting>
		<imprint>
			<publisher>ACM</publisher>
			<date type="published" when="2005">2005</date>
			<biblScope unit="page" from="580" to="586" />
		</imprint>
	</monogr>
	<note>ICSE &apos;05</note>
</biblStruct>

<biblStruct xml:id="b27">
	<analytic>
		<title level="a" type="main">Use of relative code churn measures to predict system defect density</title>
		<author>
			<persName><forename type="first">N</forename><surname>Nagappan</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Ball</surname></persName>
		</author>
		<idno type="DOI">10.1145/1062455.1062514</idno>
		<ptr target="http://doi.acm.org/10.1145/1062455.1062514" />
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 27th International Conference on Software Engineering</title>
				<meeting>the 27th International Conference on Software Engineering<address><addrLine>New York, NY, USA</addrLine></address></meeting>
		<imprint>
			<publisher>ACM</publisher>
			<date type="published" when="2005">2005</date>
			<biblScope unit="page" from="284" to="292" />
		</imprint>
	</monogr>
	<note>ICSE &apos;05</note>
</biblStruct>

<biblStruct xml:id="b28">
	<analytic>
		<title level="a" type="main">Quality attributes of web software applications</title>
		<author>
			<persName><forename type="first">J</forename><surname>Offutt</surname></persName>
		</author>
		<idno type="DOI">10.1109/52.991329</idno>
		<ptr target="http://dx.doi.org/10.1109/52.991329" />
	</analytic>
	<monogr>
		<title level="j">IEEE Softw</title>
		<imprint>
			<biblScope unit="volume">19</biblScope>
			<biblScope unit="issue">2</biblScope>
			<biblScope unit="page" from="25" to="32" />
			<date type="published" when="2002">2002</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b29">
	<monogr>
		<title level="m" type="main">Causes of failure in web applications</title>
		<author>
			<persName><forename type="first">S</forename><surname>Pertet</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Narasimhan</surname></persName>
		</author>
		<idno>CMU- PDL-05-109</idno>
		<imprint>
			<date type="published" when="2005">2005</date>
		</imprint>
		<respStmt>
			<orgName>Parallel Data Laboratory, Carnegie Mellon University</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">Tech. Rep.</note>
</biblStruct>

<biblStruct xml:id="b30">
	<analytic>
		<title level="a" type="main">Can developer-module networks predict failures?</title>
		<author>
			<persName><forename type="first">M</forename><surname>Pinzger</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Nagappan</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Murphy</surname></persName>
		</author>
		<idno type="DOI">10.1145/1453101.1453105</idno>
		<ptr target="http://doi.acm.org/10.1145/1453101.1453105" />
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of Software Engineering</title>
				<meeting>the 16th ACM SIGSOFT International Symposium on Foundations of Software Engineering<address><addrLine>New York, NY, USA</addrLine></address></meeting>
		<imprint>
			<publisher>ACM</publisher>
			<date type="published" when="2008">2008</date>
			<biblScope unit="page" from="2" to="12" />
		</imprint>
	</monogr>
	<note>SIGSOFT &apos;08/FSE-16</note>
</biblStruct>

<biblStruct xml:id="b31">
	<monogr>
		<title level="m" type="main">Software Engineering: A Practitioner&apos;s Approach</title>
		<author>
			<persName><forename type="first">R</forename><forename type="middle">S</forename><surname>Pressman</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2005">2005</date>
			<publisher>McGraw-Hill Higher Education</publisher>
		</imprint>
	</monogr>
	<note>6th edn</note>
</biblStruct>

<biblStruct xml:id="b32">
	<analytic>
		<title level="a" type="main">What we have learned about fighting defects</title>
		<author>
			<persName><forename type="first">F</forename><surname>Shull</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Basili</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Boehm</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">W</forename><surname>Brown</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Costa</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Lindvall</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Port</surname></persName>
		</author>
		<author>
			<persName><forename type="first">I</forename><surname>Rus</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Tesoriero</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Zelkowitz</surname></persName>
		</author>
		<ptr target="http://dl.acm.org/citation.cfm?id=823457.824031" />
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 8th International Symposium on Software Metrics</title>
				<meeting>the 8th International Symposium on Software Metrics<address><addrLine>Washington, DC, USA</addrLine></address></meeting>
		<imprint>
			<publisher>IEEE Computer Society</publisher>
			<date type="published" when="2002">2002</date>
			<biblScope unit="page">249</biblScope>
		</imprint>
	</monogr>
	<note>METRICS &apos;02</note>
</biblStruct>

<biblStruct xml:id="b33">
	<analytic>
		<title level="a" type="main">Software defect association mining and defect correction effort prediction</title>
		<author>
			<persName><forename type="first">Q</forename><surname>Song</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Shepperd</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Cartwright</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Mair</surname></persName>
		</author>
		<idno type="DOI">10.1109/TSE.2006.1599417</idno>
		<ptr target="http://dx.doi.org/10.1109/TSE.2006.1599417" />
	</analytic>
	<monogr>
		<title level="j">IEEE Trans. Softw. Eng</title>
		<imprint>
			<biblScope unit="volume">32</biblScope>
			<biblScope unit="issue">2</biblScope>
			<biblScope unit="page" from="69" to="82" />
			<date type="published" when="2006">2006</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b34">
	<monogr>
		<title level="m" type="main">Strategies for Automatically Exposing Faults in Web Applications</title>
		<author>
			<persName><forename type="first">S</forename><forename type="middle">E</forename><surname>Sprenkle</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2007">2007</date>
			<pubPlace>Newark, DE, USA</pubPlace>
		</imprint>
		<respStmt>
			<orgName>University of Delaware</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">Ph.D. thesis</note>
</biblStruct>

<biblStruct xml:id="b35">
	<analytic>
		<title level="a" type="main">Practical considerations in deploying ai for defect prediction: A case study within the turkish telecommunication industry</title>
		<author>
			<persName><forename type="first">A</forename><surname>Tosun</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Turhan</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Bener</surname></persName>
		</author>
		<idno type="DOI">10.1145/1540438.1540453</idno>
		<ptr target="http://doi.acm.org/10.1145/1540438.1540453" />
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 5th International Conference on Predictor Models in Software Engineering</title>
				<meeting>the 5th International Conference on Predictor Models in Software Engineering<address><addrLine>New York, NY, USA</addrLine></address></meeting>
		<imprint>
			<publisher>ACM</publisher>
			<date type="published" when="2009">2009</date>
			<biblScope unit="volume">11</biblScope>
			<biblScope unit="page">9</biblScope>
		</imprint>
	</monogr>
	<note>PROMISE &apos;09</note>
</biblStruct>

<biblStruct xml:id="b36">
	<analytic>
		<title level="a" type="main">On the relative value of crosscompany and within-company data for defect prediction</title>
		<author>
			<persName><forename type="first">B</forename><surname>Turhan</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Menzies</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">B</forename><surname>Bener</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Di Stefano</surname></persName>
		</author>
		<idno type="DOI">10.1007/s10664-008-9103-7</idno>
		<ptr target="http://dx.doi.org/10.1007/s10664-008-9103-7" />
	</analytic>
	<monogr>
		<title level="j">Empirical Softw. Engg</title>
		<imprint>
			<biblScope unit="volume">14</biblScope>
			<biblScope unit="issue">5</biblScope>
			<biblScope unit="page" from="540" to="578" />
			<date type="published" when="2009-10">Oct 2009</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b37">
	<monogr>
		<ptr target="http://scitools.com" />
		<title level="m">Understand -source code analysis &amp; metrics</title>
				<imprint>
			<date type="published" when="2014-05-03">2014-05-03</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b38">
	<analytic>
		<title level="a" type="main">Predicting build failures using social network analysis on developer communication</title>
		<author>
			<persName><forename type="first">T</forename><surname>Wolf</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Schroter</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Damian</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Nguyen</surname></persName>
		</author>
		<idno type="DOI">10.1109/ICSE.2009.5070503</idno>
		<ptr target="http://dx.doi.org/10.1109/ICSE.2009.5070503" />
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 31st International Conference on Software Engineering</title>
				<meeting>the 31st International Conference on Software Engineering<address><addrLine>Washington, DC, USA</addrLine></address></meeting>
		<imprint>
			<publisher>IEEE Computer Society</publisher>
			<date type="published" when="2009">2009</date>
			<biblScope unit="page" from="1" to="11" />
		</imprint>
	</monogr>
	<note>ICSE &apos;09</note>
</biblStruct>

<biblStruct xml:id="b39">
	<monogr>
		<ptr target="http://www.internetworldstats.com/stats.htm" />
		<title level="m">World internet users statistics usage and population stats</title>
				<imprint>
			<date type="published" when="2014-04-12">2014-04-12</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b40">
	<analytic>
		<title level="a" type="main">Predicting defects using network analysis on dependency graphs</title>
		<author>
			<persName><forename type="first">T</forename><surname>Zimmermann</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Nagappan</surname></persName>
		</author>
		<idno type="DOI">10.1145/1368088.1368161</idno>
		<ptr target="http://doi.acm.org/10.1145/1368088.1368161" />
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 30th International Conference on Software Engineering</title>
				<meeting>the 30th International Conference on Software Engineering<address><addrLine>New York, NY, USA</addrLine></address></meeting>
		<imprint>
			<publisher>ACM</publisher>
			<date type="published" when="2008">2008</date>
			<biblScope unit="page" from="531" to="540" />
		</imprint>
	</monogr>
	<note>ICSE &apos;08</note>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
