Benzer belgeler
kili ve Çoklu Kar³la³trmalar

İngilizce Öğretmenlerinin Bilgisayar Beceri, Kullanım ve Pedagojik İçerik Bilgi Özdeğerlendirmeleri: e-inset NET. Betül Arap 1 Fidel Çakmak 2

Yazılım Depoları Madenciliği ile Endüstriyel Yazılım Evrimi İncelemesi

Danışma Kurulu Tüzüğü

Taş, Yaman ve Kayran. Altan KAYRAN. ÖZET

Yazılım Depolarının Analizi ile Tasarım Kod Uyumluluğunun Araştırılması

DB: IT SERVİS YÖNETİMİNİN KALBİ

Cebir II 2008 Bahar

BIM BUILDING INFORMATION MODELING YAPI BİLGİ MODELİ

İstemci Yönetimi ve Mobile Printing (Mobil Baskı) Çözümleri

Optimal Kamu Alm haleleri ve Rekabetçi Ortam: Türkiye

Kaynak Kodları GitHub Üzerinden Yönetilen ve Debian Depolarında Bulunan Yazılımların Geliştirme İstatistikleri. Dilara Koca

VAKIF MENKUL KIYMET YATIRIM ORTAKLIĞI A.Ş. (ESKİ UNVANI İLE VAKIF B TİPİ MENKUL KIYMETLER YATIRIM ORTAKLIĞI A.Ş. )

(i) (0,2], (ii) (0,1], (iii) [1,2), (iv) (1,2]

KİTAP İNCELEMESİ. Matematiksel Kavram Yanılgıları ve Çözüm Önerileri. Tamer KUTLUCA 1. Editörler. Mehmet Fatih ÖZMANTAR Erhan BİNGÖLBALİ Hatice AKKOÇ

Proje Yönetiminde Toplumsal Cinsiyet. Türkiye- EuropeAid/126747/D/SV/TR_Alina Maric, Hifab 1

Simülasyon Modellemesi

26 Ağustos 2010 tarih ve sayılı Resmi Gazete de yayınlanmıştır

Tasarım Raporu. Grup İsmi. Yasemin ÇALIK, Fatih KAÇAK. Kısa Özet

BİLGİSAYAR DESTEKLİ BİR DİL PROGRAMI -Türkçe Konuşma - Tanıma Sistemi-

x = [x] = [x] β = {y (x,y) β} (8.5) X = {x x X}. x,y X [(x = y) (x y = )]. b(b [x]) b [y] [x] [y] (8.8)

TURBOCHARGER REZONATÖRÜ TASARIMINDA SES İLETİM KAYBININ NÜMERİK VE DENEYSEL İNCELENMESİ

Anonim Verilerin Lenovo ile Paylaşılması. İçindekiler. Harmony

Çarpm ve Bölüm Uzaylar

Ar. Gör. Cemil OSMANO LU Erciyes Üniversitesi lahiyat Fakültesi Din E itimi Anabilim Dal

V.A.D. Yaklamnn avantajlar. Ünite 9 Veri Ak Diagramlarnn Kullanm. Ana Konular. Temel semboller. Harici Varlklar. Veri Ak Diagramlar

Türkiye Esnaf ve Sanatkarları Konfederasyonu Genel Başkanı olarak şahsım ve kuruluşum adına hepinizi saygılarımla selamlıyorum.

Ortaö retim Alan Ö retmenli i Tezsiz Yüksek Lisans Programlar nda Akademik Ba ar n n Çe itli De i kenlere Göre ncelenmesi: Mersin Üniversitesi Örne i

SERMAYE PİYASASI KURULU İKİNCİ BAŞKANI SAYIN DOÇ. DR. TURAN EROL UN. GYODER ZİRVESİ nde YAPTIĞI KONUŞMA METNİ 26 NİSAN 2007 İSTANBUL

SÜREÇ YÖNETİMİ VE SÜREÇ İYİLEŞTİRME H.Ömer Gülseren > ogulseren@gmail.com

Simülasyon Modellemesi

ANKARA EMEKLİLİK A.Ş GELİR AMAÇLI ULUSLARARASI BORÇLANMA ARAÇLARI EMEKLİLİK YATIRIM FONU ÜÇÜNCÜ 3 AYLIK RAPOR

Yazılım Geliştirme Araçlarını Kullanan Öğrencilerin Kullanıcı Davranışlarının Karar Ağaçları Kullanılarak Modellenmesi Zeynep Behrin Güven

B A. A = B [(A B) (B A)] (2)

Web Madenciliği (Web Mining)

Ara Dönem Faaliyet Raporu MART 2014

Veritabanı Dersi. Teoriden Pratiğe. Çağıltay N.E., Tokdemir G. Veritabanı Sistemleri Dersi -Bölüm XXVI: Veri Ambarı Çağıltay, N., Tokdemir, G.

RİSKLİ YAPILAR ve GÜÇG

KAYNAK FİNANSAL KİRALAMA A.Ş.

GROUPAMA EMEKLİLİK A.Ş. GRUPLARA YÖNELİK GELİR AMAÇLI KAMU DIŞ BORÇLANMA ARAÇLARI EMEKLİLİK YATIRIM FONU

AB Mevzuatının Uygulanmasına Yönelik Teknik Desteğin Müzakere Edilmesi

ELEKTRĐKLĐ OCAK TR. Kurulum Kullanım Bakım

BİLGİ TEKNOLOJİLERİ VE İLETİŞİM KURULU KARARI

Deprem Yönetmeliklerindeki Burulma Düzensizliği Koşulları

İnşaat Firmalarının Maliyet ve Süre Belirleme Yöntemleri Üzerine Bir Alan Çalışması

YAYGIN ANKSİYETE BOZUKLUĞU OLAN HASTALARDA NÖROTİSİZM VE OLUMSUZ OTOMATİK DÜŞÜNCELER UZM. DR. GÜLNİHAL GÖKÇE ŞİMŞEK

Analiz aşaması sıralayıcı olurusa proje yapımında daha kolay ilerlemek mümkün olacaktır.

Bilişim Sistemleri. Modelleme, Analiz ve Tasarım. Yrd. Doç. Dr. Alper GÖKSU

ELEKTRİK ÜRETİM SANTRALLERİNDE KAPASİTE ARTIRIMI VE LİSANS TADİLİ

ÖZEL GÜVEN TIP MERKEZİ

İŞ SAĞLIĞI VE GÜVENLİĞİ UYGULAMALARI

YÖNETMELİK. a) Basamak kontrolü: On beş basamaklı IMEI numarasının son basamağının doğruluğunun kontrolünü,

ÜLKER BİSKÜVİ SANAYİ A.Ş. / ULKER [] :48:38

T.C. ÇANAKKALE ONSEK Z MART ÜN VERS TES

A = i IA i = i I A = A = i IA i = {x α((α I) (x A α ))} (7.7) A = (α,β I) (α β) A α A β = (7.8) A A

AvivaSA Emeklilik ve Hayat. Fiyat Tespit Raporu Görüşü. Şirket Hakkında Özet Bilgi: Halka Arz Hakkında Özet Bilgi:

1. YAPISAL KIRILMA TESTLERİ

Resmi Gazete Tarihi: Resmî Gazete Resmi Gazete Sayısı: YÖNETMELİK ELEKTRONİK HABERLEŞME SEKTÖRÜNDE HİZMET KALİTESİ YÖNETMELİĞİ

MC 311/ANAL Z III ARA SINAV I ÇÖZÜMLER

KONUTTA YENİ FİKİRLER

VER TABANI VE STANDART DOSYA PLANI KURULUM KLAVUZU

YAZILI YEREL BASININ ÇEVRE KİRLİLİĞİNE TEPKİSİ

ÖDEME TALEP FORMU GIDA, TARIM VE HAYVANCLIK İL MÜDÜRLÜĞÜNE İZMİR

Ara rma, Dokuz Eylül Üniversitesi Strateji Geli tirme Daire Ba kanl na ba

f( F) f(f) K = K F f 1 f( F) f 1 (K) = F F f 1 (S ) = [f 1 (S)] f(x) S V

1 OCAK 31 ARALIK 2009 ARASI ODAMIZ FUAR TEŞVİKLERİNİN ANALİZİ

TESİSAT TEKNOLOJİSİ VE İKLİMLENDİRME ÇELİK BORU TESİSATÇISI MODÜLER PROGRAMI (YETERLİĞE DAYALI)

KAPSAMLI İÇERİK SADELEŞTİRİLMİŞ ARAMA MOTORU YENİLİKÇİ BİLGİ İŞLEME TEKNOLOJİSİ PRATİK GÖRÜNTÜLEME ARAÇLARI MOBİL ERİŞİM

BEBEK VE ÇOCUK ÖLÜMLÜLÜĞÜ 9

Online Bilimsel Program Yönetici K lavuzu

Tematik Ağ Projesi AEHESIS

ALPHA ALTIN RAPORU ÖZET 26 Ocak 2016

Türkiye - EuropeAid/126747/D/SV/TR_ Alina Maric, Hifab 1

BÖLÜM 1 YAZILIM TASARIMINA GİRİŞ YZM211 YAZILIM TASARIMI. Yrd. Doç. Dr. Volkan TUNALI Mühendislik ve Doğa Bilimleri Fakültesi / Maltepe Üniversitesi

Söke İlçesinde Pnömatik Ekim Makinaları Talep Projeksiyonunun Belirlenmesi*


2. KIRSAL KALKINMA MALİ DESTEK PROGRAMI İLE İLGİLİ SORULAR

MADENCĠLĠK SEKTÖRÜNDE SU KĠRLĠLĠĞĠ KONTROLÜ YÖNETMELĠĞĠ UYGULAMALARI

VEGAWINA VERSION

F İ R M a. Herşey Bir Kaynaktan. Düz profillerin ve baraların işlenmesinde uzman

T.C KÜLTÜR VE TURZM BAKANLII Strateji Gelitirme Bakanl!"! (1. sayfa) ZEYLNAME

Yedi Karat Kullanım Klavuzu. Yedi Karat nedir? Neden Karat?

ÇÖKELME SERTLEŞTİRMESİ (YAŞLANDIRMA) DENEYİ

GEKA NİHAİ RAPOR TEKNİK BÖLÜM. 1. Açıklama

Epay, Turkcell MobilÖdeme Altyaps

10 y l önce Alarko ve Carrier ortakl k için el

G =< V,E> burada; m(i, t); i V,t Tarih. kd(i, j); i, j V. kd(i, j) 1. i V : j ayrßt(i,j)

GÜMRÜK ETKİNLİKLERİ BİLGİ ŞÖLENİ

Rekabet Kurumu Başkanlığından, REKABET KURULU KARARI

BĐSĐKLET FREN SĐSTEMĐNDE KABLO BAĞLANTI AÇISININ MEKANĐK VERĐME ETKĐSĐNĐN ĐNCELENMESĐ

2016 Yılı Mart Ayı Bülteni

Yazılım Güncelleştirme, Yedekleme ve Kurtarma. Belge Bölüm Numarası:

(ÇEKAP) Çevresel Kapasitemiz Gelişiyor

ALPHA ALTIN RAPORU ÖZET 10 Kasım 2015

Çeyrek Sonuçları TÜRK TELEKOM GRUBU ÇEYREK OPERASYONEL VE FİNANSAL SONUÇLARINI AÇIKLADI

BÖLÜM 7 BİLGİSAYAR UYGULAMALARI - 1

Başarıda Sürekliliğin Dünü, Bugünü, Yarını. Cahit Güvensoy

Ürün Kataloğu 01/2007 Conergy Montaj Sistemleri

1.1 FET Çal³ma Bölgeleri. Elektronik-I Laboratuvar 6. Deney. Ad-Soyad: mza: Grup No: JFET; jonksiyon FET. MOSFET; metal-oksit yar iletken FET

Transkript:

De i³iklik Ba la³m ve Yazlm Hatalar li³kisinin ncelenmesi Serkan Krba³ 1, Alper en 1, Bora Ça layan 2, Ay³e Bener 2 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 sisteminin 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 hatalarnn 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. Yazlm 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 ortaya ç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 problemlerine i³aret edebilece ini [1] [2] ve hata tahminlemede kullanlabilece ini [3] 419

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 ihtiyaç 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³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. 2 lgili Çal³malar De i³iklik ba la³m kavram ilk olarak 1997 ylnda ortaya atld [6]. Bu ilk çal³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ümeleri 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 incelendi 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 özelliklerinin muhtemel olarak hata saylarn tahminlemede kullanlaca n de erlendirmek için çe³itli istatistiksel modeller geli³tirildi. Çal³mann sonuçlar, de i³iklik 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ü tasarlanm³ arayüzler ve kaltm (inheritance) hiyerar³ileri gibi mimari zayklarn 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 ylndaki ö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³mlarnn 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 420

3 kod içyap düzenlemesi (code refactoring) için aday modüllerin tespit edilebilece 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 noktalarna 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 kullanm³ 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çütlerinin 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 çal³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 tespit 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 önermi³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ülleri 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 saklamak ve yönetmek için kullanlr. De i³ikliklerin tarihçesi, de i³ikli i yapan yazlmc, 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 depolarndaki 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ürasyon Yönetimi Veritabannda (KYVT) depolar. KYVT terimi, BT hizmet yönetimi için en iyi uygulamalar (best practice) tanmlayan Bilgi Teknolojisi Altyap Kütüphanesinden (Information Technology Infrastructure Library, ITIL) 421

4 ekil 1: zlenen Yakla³m kaynaklanyor olsa da, benzer sistemler neredeyse tüm BT departmanlar tarafndan kullanlmaktadr. KYVT ³u verileri içerir [16]: bilgisayar sistemleri ve uygulama yazlmlar gibi yönetilen kaynaklar; de i³iklik kaytlar gibi süreç ögeleri; 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³tirilmi³ bir sistemdir. Çal³mamzda hata kaytlar hakknda gerekli bilgi ³irketin Hata Verisi Deposundan (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 arasndaki 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 sahiptir 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 kendisini 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- 422

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. Örne 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 istatistiksel 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Ö) (conguration item) olarak tanmlanr ve her de i³iklik kaydedilip ilgili YÖ ile ili³kilendirilir. Çal³mamzda belirlenen süre içinde yazlm ürünü ile ilgili tüm de i³iklikler (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 yaylan 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³enlerin 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. 423

6 3.3 Ölçütler De i³iklik Ba la³m Ölçütleri 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ç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 bulunmamakla 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. MR de i³iklik istekleri kümesini, mr tek 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) ={f i mr MR f i mr f i f} Belirli bir f dosyas ile de i³iklik ba la³m olan toplam dosya says: NoECF(f) = SECF(f) Belirli bir f dosyasnn belirli bir mr kapsamndaki de i³iklik ba la³m kümesi: SECFMR(f,mr) ={f i f i mr f i 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 NoECFMR(f) = SECF(f,mr i ) i=0 De i³iklik ba la³m ölçümü için üç temel husus ele alnm³tr: ölçümün yaplaca detay seviyesi (granularity), dosyalarn gruplanmas, ölçümlemenin yaplaca 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) 424

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 = NoF/LOC 3.4 Deney Tasarm Ara³trma sorusuna cevap bulabilmek için Pearson ve Spearman korelasyon analizleri kullanlm³tr. Çal³ma kapsamnda üretilen de i³iklik ba la³m ölçütlerinin ö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 korelasyon olmad nn göstergesidir. Korelasyon sonuçlarnn anlaml (signicant) saylmas için önem (signicance) seviyesi 0.05 olarak alnm³tr. Bu de erin altndaki 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 ve StdErr de erleri incelenmi³tir. Çal³ma kapsamnda bulunan korelasyon de erleri daha önceki ara³trmalardan 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özlemlenmi³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 425

< rho 426

427

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 yazlmclarn 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³iklik ba la³m ve hata ölçütleri (hata says ve hata yo unlu u) kullanlarak korelasyon analizi yaplm³tr. Çal³mada Yazlm Depolar Madencili i (YDM) teknikleri 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 performanslarn 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 product 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 Workshop on Principles of, IEEE (2003) 1323 3. D'Ambros, M., Lanza, M., Robbes, R.: On the relationship between change coupling 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) 428

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 metrics. 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 Intelligence, 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 11 429

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) 430