• Aucun résultat trouvé

Değişiklik Bağlaşımı ve Yazılım Hataları İlişkisinin İncelenmesi

N/A
N/A
Protected

Academic year: 2022

Partager "Değişiklik Bağlaşımı ve Yazılım Hataları İlişkisinin İncelenmesi"

Copied!
12
0
0

Texte intégral

(1)

li³kisinin ncelenmesi

Serkan Krba³1, Alper “en1, Bora Ça§layan2, Ay³e Bener2

1 Bilgisayar Mühendisli§i Bölümü Bo§aziçi Üniversitesi

stanbul, Türkiye,

serkan.kirbas@boun.edu.tr, alper.sen@boun.edu.tr

2 Bilgisayar Mühendisli§i Bölümü Ryerson Üniversitesi

Toronto, Kanada,

bora.caglayan@ryerson.ca, ayse.bener@ryerson.ca

Özet Bir yazlm sistemi de§i³irken, yazlm depolar evrilen yazlm sis- teminin ve ilgili yazlm sürecinin ayak izlerini tutarlar. Özellikle sürüm kontrol sistemlerinden revizyon geçmi³i kullanlarak sistemin hangi bö- lümlerinin yaygn olarak beraber de§i³tirildi§i bulunabilir. Bu kavram de§i³iklik ba§la³m olarak tanmlanmaktadr. Bu çal³mada endüstriyel bir yazlm geli³tirme ortamnda de§i³iklik ba§la³m ile yazlm hatala- rnn ili³kisi ara³trlm³tr.

Keywords: Yazlm Depolar Madencili§i, De§i³iklik Ba§la³m, Yazlm Hatalar, Endüstriyel Yazlm, Ölçümleme

1 Giri³

Yazlm sistemleri, rekabet, inovasyon, maliyet azaltma ve yasal düzenlemeler gibi birçok etkenden dolay de§i³ikliklere maruz kalrlar. Bir yazlm sistemi de-

§i³irken, yazlm depolar evrilen yazlm sisteminin ve ilgili yazlm sürecinin ayak izlerini tutarlar. Yazlm depolarndaki zengin verilerin sürekli analizi ile, yazlm evrimi ve evrim/bakm süreci hakknda içgörü elde edilir. Buda yazlm geli³tiricilerin ve yöneticilerin karar alma süreçlerini destekler ve yönlendirir. Ya- zlm Depolar Madencili§i (YDM) çal³malarnn ortaya koydu§u kavramlardan biri de de§i³iklik ba§la³mdr (Change Coupling ya da Evolutionary Coupling).

De§i³iklik ba§la³m, yazlm sisteminin evrimi srasnda sk sk birlikte de§i³- ti§i gözlenen iki veya daha fazla yazlm parçasnn (artifact) arasndaki örtülü ili³kiler olarak tanmlanabilir. Günümüzde yazlmlarn boyutlarnn artt§n ve her geçen gün daha da karma³kla³arak di§er yazlmlarla etkile³ti§ini göz önüne alrsak de§i³iklik ba§la³m konusunun ve etkilerinin incelenmesinin önemi or- taya çkar. Özellikle her yl dünyada milyarca dolar harcanan yazlm hatalar üzerindeki etkilerinin incelenmesi önemlidir.

De§i³iklik ba§la³m kavram üzerinde, mimari bozulma gibi tasarm prob- lemlerine i³aret edebilece§ini [1] [2] ve hata tahminlemede kullanlabilece§ini [3]

(2)

2

gösteren çal³malar literatürde mevcuttur. Buna kar³n baz çal³malarda [4] [5]

de§i³iklik ba§la³m ölçütlerinin hata tahminlemede iyi sonuçlar vermedi§i ortaya konmu³tur. De§i³iklik ba§la³mnn yazlm hatalar ile ili³kisi konusunda daha fazla ampirik ara³trma yaplmasna ve somut etkilerinin ortaya konulmasna ih- tiyaç vardr. Bu çal³ma kapsamnda de§i³iklik ba§la³mnn yazlm hatalar ile ili³kisi üzerinde çal³malar yaplm³tr. Belirlenen de§i³iklik ba§la³m ölçütleri ile hatalar arasndaki korelasyon incelenmi³tir. Çal³mann ara³trma sorusu ³u soru ile ifade edilmi³tir:

De§i³iklik ba§la³m ile yazlm hatalar arasnda nasl bir ili³ki vardr?

Çal³mamzn sonuçlar, incelenen yazlmn bakm/evrimi faznda de§i³ik- lik ba§la³mnn yazlm hatalar ile ili³kili olabilece§ini göstermi³tir. De§i³iklik ba§la³m ölçütleri ve hata ölçütleri arasndaki korelasyon analizi sonucunda, ra- porlanan hata saylar/hata yo§unlu§u ve de§i³iklik ba§la³m ölçütleri arasnda pozitif korelasyon saptanm³tr. Analiz sonuçlar, genel olarak dü³ük ve orta dü- zeyde korelasyon oldu§unu göstermektedir.

2 lgili Çal³malar

De§i³iklik ba§la³m kavram ilk olarak 1997 ylnda ortaya atld [6]. Bu ilk ça- l³mada de§i³iklik ba§la³m bilgisi kullanlarak beraber de§i³en snar (classes) görsel olarak sunulmu³tur ve sistemin evrimi srasnda sk de§i³tirilen snf küme- leri tespit edilmi³tir. Bu çal³ma ayn kümeye ait snarn semantik olarak ilgili oldu§unu göstermi³tir. 1998 ylnda modül seviyesinde de§i³iklik ba§la³mnn in- celendi§i ba³ka bir çal³ma [1] de§i³iklik ba§la³mnn sistem mimarisi üzerinde yararl içgörüler elde etmeye yardmc oldu§unu ortaya koymu³tur. 2000 ylnda yaplan bir çal³mada [4] bir modülün de§i³iklik tarihçesinin hangi özellikleri- nin muhtemel olarak hata saylarn tahminlemede kullanlaca§n de§erlendir- mek için çe³itli istatistiksel modeller geli³tirildi. Çal³mann sonuçlar, de§i³ik- lik ba§la³m ölçütlerinin kullanld§ modellerin tahminleme performanslarnn di§er modellere göre daha dü³ük oldu§unu göstermi³tir. 2003 ylnda yaplan di§er bir çal³ma [2] endüstriyel bir yazlm sistemi üzerinde snf seviyesinde de§i³iklik ba§la³mlar incelemi³tir. Bu çal³ma, de§i³iklik ba§la³mnn kötü ta- sarlanm³ arayüzler ve kaltm (inheritance) hiyerar³ileri gibi mimari zaykla- rn tespit edilmesi için kullanlabilece§ini ortaya koymas bakmndan önemlidir.

2004 ylndaki bir çal³mada [7], de§i³iklik görevi atanan yazlm geli³tiricilere ilgili olabilecek kaynak kodlar veri madencili§i teknikleri kullanarak öneren bir yakla³m geli³tirilmi³tir. Bu yakla³m açk kaynak kodlu projelere uygulanarak önemli ba§mllklar (dependencies) ortaya çkard§ gösterilmi³tir. 2005 yln- daki önemli bir çal³ma [8] kaynak kodun bir bölümü (dosya, snf, özellik, metod seviyelerinde) de§i³ti§inde de§i³mesi olas di§er bölümleri tahminleyen bir teknik sunmu³tur. Bu çal³ma ili³ki kural madencili§i kullanlarak de§i³iklik ba§la³m- larnn saptand§ ilk çal³madr. 2005 ylndaki di§er bir çal³ma [9] modüller arasndaki de§i³iklik ba§la³mlarnn Kiviat diyagramlar üzerinde gösterilerek

(3)

kod içyap düzenlemesi (code refactoring) için aday modüllerin tespit edilebile- ce§ini göstermi³tir. 2006ylnda de§i³iklik ba§la³m bilgisi ve veri madencili§i teknikleri yazlm sistemlerinde loglama ve güvenlik gibi kaynak kodun farkl nok- talarna da§lm³ i³lerin (crosscutting concerns) belirlenmesinde kullanlm³tr [10]. Yine 2006'da yaynlanan ba³ka bir çal³ma [11] de§i³iklik ba§la³m verisini sürüm kontrol sistemindeki iki dosya arasndaki mesafenin hesaplanmasnda kul- lanm³ ve animasyonlu paneller dizisi ³eklinde gösterilmesini sa§lam³tr. 2006'da Mozilla projesi üzerinde yaplan ba³ka bir çal³ma [5] de§i³iklik ba§la³m ölçütle- rinin hata tahmininde iyi sonuçlar vermedi§ini ortaya koymu³tur. Bu çal³mada de§i³iklik ba§la³mnn hata yo§unlu§unu tahminleme yetene§i denenmi³tir.

De§i³iklik ba§la³m ile yazlm hatalar arasndaki ili³kiyi inceleyen ilk ça- l³ma 2009 ylnda yaplm³tr [3]. Üç büyük yazlm sistemi üzerinde yaplan incelemede de§i³iklik ba§la³m ile yazlm hatalar arasnda bir korelasyon tes- pit edilmi³tir. Bu ara³trmada sadece proje içindeki snar arasndaki de§i³iklik ba§la³mlar incelenmi³tir. 2012 ylndaki ba³ka bir çal³ma [12] beraber de§i³- tirilmi³ snar üzerinden ba§la³m olu³turmu³ sral sürüm çizelgelerini (graph) çkarr. Sonrasnda bu çizgeler ile hata tahminleme yaplabilece§ini gösterir. 2013 ylnda yaplan bir ara³trma [13], de§i³iklik ba§la³m bilgisini dikkate alarak, mevcut hata yeri belirleme (Bug Localization) yöntemleri için iyile³tirme öner- mi³tir. Çal³mada üretilen yöntem iki açk kaynak kod projesine (Eclipse SWT ve Android ZXing) uygulanm³ ve do§rulanm³tr. 2013 ylnda yaynlanan ba³ka bir çal³ma [14] projelerin modülleri arasndaki de§i³iklik ba§la³mlarnn modül- leri içindeki de§i³iklik ba§la³mlarna göre hatalar üzerinde daha etkili oldu§unu ortaya koymu³tur.

3 Yöntem

3.1 Veri Kaynaklar

Kaynak kod depolar, kaynak kodu ve kaynak koda yaplan de§i³iklikleri sakla- mak ve yönetmek için kullanlr. De§i³ikliklerin tarihçesi, de§i³ikli§i yapan ya- zlmc, de§i³iklik tarihi, olu³an dosya sürümleri ve hatta ilgili ister veya proje görevinin bilgisi kaynak kod depolarndan elde edilebilir. Kaynak kod depolarn- daki bu zengin veri, YDM ara³trmalarnn temelini olu³turmaktadr. Bu çal³- mada, kaynak kod deposu yönetmek için kullanlan yazlm, Computer Associates (CA) ³irketinin bir ürünü olan CA Software Change Manager (CA SCM) [15]

yazlmyd. CA SCM sürüm kontrolüne ek olarak de§i³iklik yönetimi (change management) i³levselli§ine de sahiptir. Yazlmclarn, CA SCM'de de§i³iklik yapabilmesi için mutlaka de§i³iklik paketi (di§er SCM yazlmlarndaki "de§i-

³iklik grubu" (change set) kavramna benzer) seçmesi gerekir. De§i³iklik paketi, ayn hata düzeltme veya geli³tirme görevi kapsamnda birlikte yaplan tüm ilgili de§i³iklikleri içerir ve bir arada tutar.

Birçok ³irket bilgi sistemlerinin tüm bile³enleri ile ilgili bilgileri Kongüras- yon Yönetimi Veritabannda (KYVT) depolar. KYVT terimi, BT hizmet yöne- timi için en iyi uygulamalar (best practice) tanmlayan Bilgi Teknolojisi Alt- yap Kütüphanesinden (Information Technology Infrastructure Library, ITIL)

(4)

4

“ekil 1: zlenen Yakla³m

kaynaklanyor olsa da, benzer sistemler neredeyse tüm BT departmanlar ta- rafndan kullanlmaktadr. KYVT ³u verileri içerir [16]: bilgisayar sistemleri ve uygulama yazlmlar gibi yönetilen kaynaklar; de§i³iklik kaytlar gibi süreç öge- leri; ve yönetilen kaynaklar ve süreç ögeleri arasndaki ili³kiler. Çal³mamzda, hata raporlar ile yazlm bile³enleri ve proje görevleri arasndaki ili³kileri KYVT sisteminden elde ettik. Çal³mada kullanlan KYVT sistemi kurum içi geli³tiril- mi³ bir sistemdir.

Çal³mamzda hata kaytlar hakknda gerekli bilgi ³irketin Hata Verisi Depo- sundan (HVD) elde edilmi³tir. Çal³mada kullanlan HVD kurum içi geli³tirilmi³ bir sistemdir.

3.2 Veri Toplama

Çal³ma kapsamnda, kaynak kod verileri CA SCM sürüm kontrol sisteminden, hata verileri Hata Verisi Deposundan (HVD), hatalar ile kaynak kodlar arasn- daki ili³kiler ise KYVT'dan toplanm³tr. “ekil 1 yakla³mmzn özetini sunar.

Farkl veri kaynaklarndan veri toplayabilmek için üç adaptör geli³tirdik: KYVT adaptörü, HVD adaptörü ve CA SCM adaptörü. Adaptörler basit bir arayüze sa- hiptir ve verilen tarih aral§na göre veri kayna§n sorgular. CA SCM adaptörü belirtilen tarih aral§nda yaplan kaynak kod de§i³iklikleri ve kaynak kodun ken- disini alabilmek için CA SCM SDK (Yazlm Geli³tirme Kiti) kullanr. KYVT ve HVD adaptörleri Java veri taban eri³im teknolojisi olan JDBC (Java Database Connectivity) [17] kullanarak bu sistemlerin veritabann sorgular. lgili tablo ve sütun e³le³meleri kullanc tarafndan sa§lanmaktadr. Adaptörlerin belirli bir tarih aral§ için veri kayna§ndan ald§ veriler Yazlm Evrimi Veri Tabanna (YEVT) kaydedilir.

YEVT üzerindeki veri, i³leme ve ölçüm için Yazlm Evrimi Kontrol Aracna (YEKA) girdi olarak verilir [18]. YEKA ³u modüllerden olu³maktadr: Ölçüt Mo-

(5)

dülü, Veri Analizi Modülü, Veri Eri³im Modülü ve Veri Modelleri Modülü. Veri Eri³im Modülü, veri tabanna ba§lant, eri³im ve verinin okunmas/yazlmas i³- lerinden sorumludur ve verileri di§er modüller için kullanlabilir hale getirir. Öl- çüt Modülü ölçütlerin hesaplanmasn sa§lar. Ölçüt Modülünün bir di§er önemli rolü ise farkl veri kaynaklarndan toplanan ili³kili verilerin e³le³tirilmesidir. Ör- ne§in, HVD'den alnan bir hata kayd ile kaynak kod deposundan alnan bir ya da birkaç kaynak kod de§i³ikli§i birbiriyle ili³kilendirilmelidir. Bu e³le³me Öl- çüt Modülü tarafndan gerçekle³tirilir. Çal³mamzda istatistiksel analizler için SPSS Statistics [19] yazlm kullanlm³tr. Veri tabanndan alnan veri SPSS'e aktarlarak üzerinde Spearman ve Pearson korelasyonu gibi çe³itli istatistiksel analizler uygulanr. SPSS d³nda özellikle YEKA modülleri içerisindeki istatis- tiksel i³lemler için Weka yazlmnn [20] Java kütüphanesi kullanlm³tr.

Kaynak kod verileri için, öncelikle kaynak kod deposunda belirtilen dönemde olu³turulan tüm dosya sürümleri adaptörler aracl§yla alnd. Daha sonra alnan her dosya sürümü üzerinde YEKA ile statik kod analizi yapld. Ölçüt modülü ile ölçütler hesapland. Kod ölçütleri yannda, ilgili dosya sürümünü olu³turan yazlmc, olu³turma tarihi ve ilgili hata/istek/proje numaras da kaynak kod deposundan sa§land.

KYVT üzerinde her yazlm ürünü ayr bir yaplandrma ö§esi (YÖ) (congu- ration item) olarak tanmlanr ve her de§i³iklik kaydedilip ilgili YÖ ile ili³kilen- dirilir. Çal³mamzda belirlenen süre içinde yazlm ürünü ile ilgili tüm de§i³ik- likler (hata düzeltme veya geli³tirme) adaptörler aracl§yla topland. ncelenen KYVT üzerinde de§i³iklik için üç farkl tip tanmlanm³tr: Hata, stek, Proje.

Bu nedenle hata düzeltme ve geli³tirme kolayca ayrt edilebildi.

Tablo 1: ncelenen Sistem Hakknda Bilgiler Finansal Yazlm Sistemi

Yazlm Bile³eni Says 274 Toplam Yazlmc Says 460

Toplam Satr Says 2.3 milyon Toplam Dosya Says 150 bin Toplam Dosya Sürümü Says 192 bin Veri Toplanan Zaman Dilimi 2009-2013

Bu çal³ma kapsamnda bir nansal yazlmn 274 bile³eni için 5 yla yay- lan bakm/evrim verileri toplanm³tr. lgili yazlm bile³enleri PL/I ve COBOL dilleri ile geli³tirilmi³ ve toplam 460 yazlmc görev alm³tr. ncelenen bile³enle- rin toplam büyüklü§ü 2.3 milyon satrdr ve 150 bin dosyadan olu³ur. ncelenen sistem ile ilgili detayl bilgi Tablo 1'de verilmi³tir.

(6)

6

3.3 Ölçütler

De§i³iklik Ba§la³m Ölçütleri De§i³iklik ba§la³m, yazlm sisteminin ev- rimi srasnda sk sk birlikte de§i³ti§i gözlenen iki veya daha fazla yazlm par- ças (artifact) arasndaki örtülü ili³kiler olarak tanmlanr. Yazlm parçalar ne kadar fazla birlikte de§i³tirilirseler aralarndaki de§i³iklik ba§la³m bu ölçüde güçlenir. Üzerinde kir birli§ine varlm³ de§i³iklik ba§la³m ölçütleri bulunma- makla birlikte daha önceki ara³trmalarda kullanlm³ baz ölçütler mevcuttur.

Çal³mamzda bu bölümde detaylar verilen 2 adet de§i³iklik ba§la³m ölçütü kullanlm³tr.

Çal³ma yaplan ³irkette, kaynak koda yaplan her de§i³iklik istekler (modi- cation request (MR)) ile hayata geçirilir. Bir MR, bir veya daha fazla kaynak kod dosyasnn bir veya daha fazla yazlm geli³tirici tarafndan de§i³tirilmesini kapsayan kavramsal bir yazlm de§i³imini temsil eder. Bu de§i³iklikler hata dü- zeltme ya da yeni i³levsellik olabilirler.

De§i³iklik ba§la³m ölçütlerinin hesaplanmasndaki yakla³mmz ³u ³ekilde ifade ettik.M Rde§i³iklik istekleri kümesini,mrtek bir de§i³iklik iste§ini temsil eder. f, mr kapsamnda de§i³tirilen bir kaynak kod deposu dosyasn temsil eder. Bu tanmlara dayanarak, belirli bir dosya için de§i³iklik ba§la³m kümesi

³u ³ekilde hesapland:

SECF(f) ={fi|mr∈M R∧fi∈mr∧fi=f}

Belirli birf dosyas ile de§i³iklik ba§la³m olan toplam dosya says:

N oECF(f) =|SECF(f)|

Belirli bir f dosyasnn belirli bir mr kapsamndaki de§i³iklik ba§la³m kü- mesi:

SECF M R(f, mr) ={fi|fi∈mr∧fi=f}

Belirli bir f dosyas ile bütün ilgili mr'lar kapsamnda de§i³iklik ba§la³m olan dosya saylarnn kümülatif toplam:

N oECF M R(f) =

n

i=0

|SECF(f, mri)|

De§i³iklik ba§la³m ölçümü için üç temel husus ele alnm³tr: ölçümün yap- laca§ detay seviyesi (granularity), dosyalarn gruplanmas, ölçümlemenin yap- laca§ birimin snrlar. Yazlm hatalar çal³ma yapt§mz sistemler için dosya seviyesinde e³le³tirildi§inden, de§i³iklik ba§la³m ölçütlerini de dosya baznda hesaplanm³tr. Dosyalarn gruplanmas daha önce açkland§ gibi MR baznda yaplm³tr. Bir dosyann içinde bulundu§u alt-sistem ile olan ba§la³m, dosya seviyesindeki ikili de§i³iklik ba§la³m ölçütlerinin toplanmas ile hesaplanm³tr.

Yazlm Büyüklü§ü Ölçüm Ölçütleri Büyüklük ölçümü ve elde edilen öl- çütlerin normalizasyonu için LOC ölçütü kullanlm³tr.

LOC : Toplam Satr Says (Lines of Code)

(7)

Hata Ölçütleri Hata ölçümlemesi için de a³a§daki ölçütler tanmlanm³tr:

NoF : Hata says (Number of Faults)

DD : Hata Yo§unlu§u (Defect Density) Hata yo§unlu§u ölçütü ³u ³ekilde hesaplanacaktr:

DD=N oF/LOC

3.4 Deney Tasarm

Ara³trma sorusuna cevap bulabilmek için Pearson ve Spearman korelasyon ana- lizleri kullanlm³tr. Çal³ma kapsamnda üretilen de§i³iklik ba§la³m ölçütleri- nin ölçüm de§erleri ile hata saylar korelasyon analizine girdi olarak verilmi³tir.

Bu analizler sonucunda, de§i³iklik ba§la³m ve yazlmn hatalar arasndaki ili³ki -1 ile 1 arasnda bir de§er ile ifade edilir. Yüksek korelasyon 1 ve -1'e yakn de§erler ile gösterilir. 1 ayn yönde pozitif korelasyonu temsil ederken -1 tersi yönde negatif bir korelasyonu gösterir. 0'a yakn de§erler ise hiçbir kore- lasyon olmad§nn göstergesidir. Korelasyon sonuçlarnn anlaml (signicant) saylmas için önem (signicance) seviyesi 0.05 olarak alnm³tr. Bu de§erin al- tndaki sonuçlar önemli olarak de§erlendirilmi³tir. Analizler SPSS yazlm [19]

kullanlarak yaplm³tr. SPSS istatistiksel analiziçin yaygn olarak kullanlan bir yazlm oldu§undan ve yazarlarn daha önce deneyimleri olmasndan dolay seçilmi³tir.

Toplanan de§i³iklik ba§la³m (DB) ve hata ölçütleri üzerinde her yazlm bile³eni için ayr ayr yaplan korelasyon analizlerinin sonucu elde edilen rho, p veStdErrde§erleri incelenmi³tir.

Çal³ma kapsamnda bulunan korelasyon de§erleri daha önceki ara³trma- lardan da yararlanarak ³u ³ekilde de§erlendirildi [21] [22]: 0.1'den daha dü³ük korelasyon de§erleri önemsiz, 0.1 ve 0.3 arasndaki de§erler dü³ük, 0.3 ve 0.5 arasndakiler orta, 0.5 ve 0.7 arasndaki de§erler yüksek, 0.7 ile 0.9 arasndakiler çok yüksek, ve 0.9'dan daha büyük de§erler mükemmel.

4 Analiz Sonuçlar

4.1 Korelasyon Analizi Sonuçlar

DB ölçütlerinin hesaplanabildi§i 274 yazlm bile³eninin 161'inde DB ölçütleri ile hata saylar (NoF) arasnda Spearman analizi kullanlarak anlaml (signicant) bir korelasyon (p <0.05) tespit edildi. Bu 161 yazlm bile³eninin Spearman rho de§erlerinin da§lm “ekil 2'deki histogram üzerinde görülebilir. DB ölçütleri ile hata saylar arasnda genel olarak dü³ük ve orta düzeyde korelasyon gözlemlen- mi³tir. Azsayda bile³en için ise yüksek düzeyde korelasyon tespit edilmi³tir.

Korelasyon tespit edilmeyen 113 projenin 46'snda DB ölçütlerinin de§erinin 0 ya da dü³ük de§erler (<10) oldu§u tespit edildi. Ayn veri üzerinde Pearson

(8)

< rho

(9)

(10)

10

Bu iki varsaymn geçerlili§i özellikle baz kayt türleri için (üretime alma, kod gözden geçirme) garanti edilebilir fakat her hata için bütün ili³kilerin bulunmas garanti edilemez.

Bunun d³nda yaplan bütün de§i³ikliklerin kaynak kod deposuna aktarld§

(commit) varsaylm³tr. Derleme, teste alma ve üretime alma süreçlerine konulan kontrollerle bu garanti altna alnmaya çal³lm³tr. Di§er bir varsaym yazlm- clarn bir MR ile ilgili de§i³en dosyalar ayn de§i³iklik paketine koydu§udur.

Bu varsaym, de§i³iklik ba§la³m metrklerinin hesaplanmasndan kullanlm³tr.

6 Sonuçlar ve Öneriler

Bu makalede, bir nansal yazlm sistemi üzerinde de§i³iklik ba§la³m ve yazlm hatalar ili³kisi konusunda yaplan çal³mann detaylar ve sonuçlar sunulmu³tur.

lgili yazlm sistemini olu³turan 274 adet yazlm bile³eni için ayr ayr ve de§i³ik- lik ba§la³m ve hata ölçütleri (hata says ve hata yo§unlu§u) kullanlarak kore- lasyon analizi yaplm³tr. Çal³mada Yazlm Depolar Madencili§i (YDM) tek- nikleri kullanlm³tr. Çal³mamzn sonuçlar, incelenen yazlmn bakm/evrimi faznda de§i³iklik ba§la³mnn yazlm hatalar ile ili³kili olabilece§ini göstermi³- tir. De§i³iklik ba§la³m ölçütleri ve hata ölçütleri arasndaki korelasyon analizi sonucunda, raporlanan hata saylar/hata yo§unlu§u ve de§i³iklik ba§la³m öl- çütleri arasnda pozitif korelasyon saptanm³tr. Analiz sonuçlar, genel olarak dü³ük ve orta düzeyde korelasyon oldu§unu göstermektedir.

Gelecek çal³malarmz için, de§i³iklik ba§la³m ölçütlerini kullanarak hata tahminleme modelleri olu³turmay ve bu modellerin mevcut modellere göre per- formanslarn incelemeyi planlyoruz. Ayrca, Git, Subversion gibi di§er kaynak depolarn kullanabilmek için YEKA'da iyile³tirmeler planlamaktayz.

Kaynaklar

1. Gall, H., Hajek, K., Jazayeri, M.: Detection of logical coupling based on pro- duct release history. In: Software Maintenance, 1998. Proceedings., International Conference on, IEEE (1998) 190198

2. Gall, H., Jazayeri, M., Krajewski, J.: Cvs release history data for detecting logical couplings. In: Software Evolution, 2003. Proceedings. Sixth International Works- hop on Principles of, IEEE (2003) 1323

3. D'Ambros, M., Lanza, M., Robbes, R.: On the relationship between change coup- ling and software defects. In: Reverse Engineering, 2009. WCRE'09. 16th Working Conference on, IEEE (2009) 135144

4. Graves, T.L., Karr, A.F., Marron, J.S., Siy, H.: Predicting fault incidence using software change history. Software Engineering, IEEE Transactions on 26(7) (2000) 653661

5. Knab, P., Pinzger, M., Bernstein, A.: Predicting defect densities in source code les with decision tree learners. In: Proceedings of the 2006 international workshop on Mining software repositories, ACM (2006) 119125

6. Ball, T., Kim, J.M., Porter, A.A., Siy, H.P.: If your version control system could talk. In: ICSE Workshop on Process Modelling and Empirical Studies of Software Engineering. (1997)

(11)

7. Ying, A.T., Murphy, G.C., Ng, R., Chu-Carroll, M.C.: Predicting source code changes by mining change history. Software Engineering, IEEE Transactions on 30(9) (2004) 574586

8. Zimmermann, T., Zeller, A., Weissgerber, P., Diehl, S.: Mining version histories to guide software changes. Software Engineering, IEEE Transactions on 31(6) (2005) 429445

9. Pinzger, M., Gall, H., Fischer, M., Lanza, M.: Visualizing multiple evolution met- rics. In: Proceedings of the 2005 ACM symposium on Software visualization, ACM (2005) 6775

10. Breu, S., Zimmermann, T.: Mining aspects from version history. In: Automated Software Engineering, 2006. ASE'06. 21st IEEE/ACM International Conference on, IEEE (2006) 221230

11. Beyer, D., Hassan, A.E.: Animated visualization of software history using evolution storyboards. In: Reverse Engineering, 2006. WCRE'06. 13th Working Conference on, IEEE (2006) 199210

12. Ste, M., Russo, B.: Co-evolution of logical couplings and commits for defect estimation. In: Mining Software Repositories (MSR), 2012 9th IEEE Working Conference on, IEEE (2012) 213216

13. Tantithamthavorn, C., Ihara, A., Matsumoto, K.I.: Using co-change histories to improve bug localization performance. In: Software Engineering, Articial Intelli- gence, Networking and Parallel/Distributed Computing (SNPD), 2013 14th ACIS International Conference on, IEEE (2013) 543548

14. Kouroshfar, E.: Studying the eect of co-change dispersion on software quality. In:

Software Engineering (ICSE), 2013 35th International Conference on, IEEE (2013) 14501452

15. CASCM: Webpage of ca software change manager (2013)

16. Carlisle, F., Eisinger, J., Johnson, M., Kowalski, V., Mukerji, J., Snelling, D., Vambenepe, W., Waschke, M., Wiles, V.: Conguration management database (cmdb) federation specication (2010)

17. JDBC: Java database connectivity (2013)

18. Kirbas, S., Sen, A.: Yazlm depolar madencili§i ile endüstriyel yazlm evrimi

ncelemesi. In: UYMS. (2013) 19. SPSS: Webpage of spss (2013)

20. Hall, M., Frank, E., Holmes, G., Pfahringer, B., Reutemann, P., Witten, I.H.: The weka data mining software: an update. ACM SIGKDD explorations newsletter 11(1) (2009) 1018

21. Hopkins, W.G.: A New View of Statistics. Will G. Hopkins (1997)

22. Lu, H., Zhou, Y., Xu, B., Leung, H., Chen, L.: The ability of object-oriented metrics to predict change-proneness: a meta-analysis. Empirical Software Engineering 17 (2012) 200242

(12)

12

EK: Kullanlan Ksaltmalar

KISALTMALAR BT Bilgi Teknolojisi

CA Computer Associates

CA SCM Computer Associates Software Change Manager

DB De§i³iklik Ba§la³m (Change Coupling / Evolutionary Coupling) DD Defect Density (Hata Yo§unlu§u)

HVD Hata Verisi Deposu

ITIL Information Technology Infrastructure Library (BT Altyap Kütüphanesi) JDBC Java Database Connectivity

KYVT Kongürasyon Yönetimi Veri Taban LOC Lines of Code (Toplam Satr Says) MR Modication Request (De§i³iklik ste§i) NoF Number of Faults, Hata Says

SDK Yazlm Geli³tirme Kiti YDM Yazlm Depolar Madencili§i YEVT Yazlm Evrimi Veri Taban YEKA Yazlm Evrimi Kontrol Arac

YÖ Yaplandrma Ö§esi (Conguration Item)

Références

Documents relatifs

Araç içinde dört detektör bulunmaktadır ve bu detektörler Bölüm 1.1 de bahsedilen araçların bulmadığı üç hata örüntüsünü (“Statik Olmayan İç Sınıf

Tablo 1.. Bu veritabanı 5 farklı projeden toplamda 5371 örneklem içer- mektedir. Verilerin elde edilmesinde popüler açık kaynak kodlu bazı projelerin kodla- rından

˙Ilgili ¸calı¸smalarda ortaya ¸cıkarılmı¸s olan veri setinin zen- ginle¸stirilmesi fikrine paralel olarak ilerisi i¸cin web uygulamalarında hata tahmini yapılması i¸cin

Gözden geçirme sürecine başlamadan önce, işlevsel büyüklük ölçüm dokümanlarındaki hataları tespit etmek için her farklı yazılım projesi için referans olarak

Yazılım test sürecinin olmadığı ya da eksik olduğu durumlarda yaĢanabilecek ne- gatif durumlar; proje yönetimi ile ilgili problemler, test yönetimi ile ilgili problemler,

solide pour transmettre l'effort du levier et est bon

Dans le cas d'une combinaison outil de préparation de sol avec semoir, lorsque la puissance de relevage du tracteur est insuffisante pour soulever la combinaison

Les entreprises, elles, réfléchissent à leur partage pour mieux répondre aux attentes des clients.. Face à l'avalanche de données numériques, des technologies voient le jour pour