<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Yazılım Depoları Madenciliği ile Endüstriyel Yazılım Evrimi İncelemesi</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Serkan Kırbaş</string-name>
          <email>serkan.kirbas@boun.edu.tr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Alper Şen</string-name>
          <email>alper.sen@boun.edu.tr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Anahtar Kelimeler. Yazılım Depoları Madenciliği</institution>
          ,
          <addr-line>Yazılım Evrimi, Endüstriyel Yazılım, Örnek Olay İncelemesi, Ölçümleme</addr-line>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Bilgisayar Mühendisliği Bölümü Boğaziçi Üniversitesi İstanbul</institution>
          ,
          <country country="TR">Türkiye</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Özet Yazılım evrimi alanında, açık kaynak yazılım geliştirmeden daha zengin veri içeren endüstriyel yazılımlar üzerinde daha fazla ampirik araştırma yapılmasına ihtiyaç vardır. Bu çalışmada, Yazılım Depoları Madenciliği (YDM) teknikleri kullanılarak endüstriyel bir yazılımın evrimi analiz edilmiştir. Veri kaynağı olarak kaynak kod depoları, hata depoları ve iletişim arşivlerini kullanmaya odaklanan mevcut çalışmaların aksine, bu araştırma Kurumsal Kaynak Planlama, Konfigürasyon Yönetimi Veritabanı ve İnsan Kaynakları (İK) sistemlerini kullanır. Bu sistemler, yazılımcı deneyimi, yazılım bakımı için harcanan süre, efor tipi gibi veriler içerir. Bu verileri bu çalışma kapsamında incelenen yazılımın kaynak kod deposundan alınan ve her bir değişikliğin detaylarını içeren verilerle birleştirdik. Daha sonra bu birleştirilen veriler üzerinde kontrol grafikleri, Spearman korelasyon ve ANOVA testleri gibi çeşitli istatistiksel analizler uyguladık. Çalışmamızın sonuçları, incelenen yazılımın bakım/evrim fazında yazılımcı deneyimi ve fazla mesainin verimlilik üzerinde etkileri olduğunu gösterdi. Buna karşın kaynak kodun karmaşıklığı ve bağımlılığı (coupling) üzerinde herhangi bir önemli (significant) etkisi gözlenmedi. Ayrıca, süreç ve ürün metrikleri arasında yapılan korelasyon analizi bazı önemli yazılım eğilimlerini ortaya çıkardı.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        odaklanmıştır [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. Farklı yazılım depolarında saklanan verilerin
çekilmesi ve birleştirilmesi yeni bilgi ve içgörülerin ortaya çıkarılmasını sağlayabilir.
Çalışmamızda, endüstriyel yazılım geliştirme ortamında bulunan farklı yazılım
depolarından faydalanmayı hedefledik.
      </p>
      <p>Bu çalışmada, endüstriyel bir yazılım üzerinde ampirik bir araştırma
gerçekleştirildi. Bakım fazındaki bir finansal yazılım bileşeninin son 2 yıllık verileri
analiz edildi. Yazılımın nasıl evrildiği konusunda detaylı ve doğru bilgi
edinebilmek için YDM teknikleri kullanıldı. Bu çalışma kapsamında kullanılan yazılım
depoları şunlardır: Konfigürasyon Yönetimi Veritabanı (KYVT), Kurumsal
Kaynak Planlaması (KKP), İnsan Kaynakları (İK) sistemi ve kaynak kod deposudur.
Bu yaklaşım, ana veri kaynağı olarak daha önce sözü edilen yazılım depolarını
kullanmaya odaklanmış mevcut YDM araştırmalarından farklıdır.</p>
      <p>YDM teknikleri ile farklı yazılım depolarından toplanan verileri birleştirerek,
çalışmamızda şu sorulara cevap vermeye çalışacağız:
S1 Yazılım evriminde hangi ürün ve süreç metrikleri arasında korelasyon vardır?
S2 Yazılımın bakımını yapan yazılımcıların deneyiminin verimlilik üzerinde
etkisi var mıdır?
S3 Fazla mesainin verimlilik üzerinde etkisi var mıdır?
S4 Yazılımın bakımını yapan yazılımcıların deneyiminin kaynak kod
karmaşıklığı ve bağımlılığı (coupling) üzerinde etkisi var mıdır?
S5 Fazla mesainin kaynak kod karmaşıklığı ve bağımlılığı (coupling) üzerinde
etkisi var mıdır?
Çalışmamızın sonuçları, incelenen yazılımın bakım/evrimi fazında yazılımcı
deneyimi ve fazla mesainin verimlilik üzerinde etkileri olduğunu gösterdi. Buna
karşın kaynak kodun karmaşıklığı ve bağımlılığı üzerinde herhangi bir önemli
(significant) etkisi gözlenmedi. Ayrıca, süreç ve ürün metrikleri arasındaki
korelasyon analizi sonucunda, raporlanan hata sayıları ve hata düzeltme, destek
faaliyetleri için harcanan efor için artış eğilimi saptandı. Sonuçlar, aynı zamanda
kaynak kodun bazı parçalarının yeniden düzenlenmesi (refactoring) ihtiyacını
ortaya çıkarmıştır.
2</p>
      <p>
        İlgili Çalışmalar
Manny Lehman’ın araştırmaları ve ortaya koyduğu sekiz yasa yazılım evrimi
araştırmalarının temelini oluşturmaktadır. Lehman’ın ampirik çalışmaları
yazılım değişikliklerine ve yazılım evriminin doğasına odaklanmıştır. Yazılım sistem
evrimini analiz etmek için oluşturulan yaklaşımlar kullanılan veri ve veri
kaynaklarına göre değişiklik gösterirler [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. Açık kaynak yazılım geliştirmenin
yaygınlaşması ve bu açık kaynak projelerin kullandığı yazılım depolarının erişilebilirliği
sayesinde YDM alanı popülerlik kazanmıştır. Birçok YDM araştırması kaynak
kod için CVS, hata raporları için Bugzilla sistemlerini kullanmıştır [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. Bunların
dışında SVN [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], ClearCase [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], Git ve Mercurial [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] gibi farklı kaynak
kod depolarından veri kullanan başka çalışmalar da vardır. Bazı çalışmalarda
[
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] iletişim arşivleri de veri kaynağı olarak kullanılmıştır.
      </p>
      <p>
        Literatürde endüstriyel yazılımlar üzerinde yapılmış çeşitli vaka incelemeleri
de vardır. Gall [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] Java ile yazılmış endüstriyel yazılımlar üzerinde CVS
and Bugzilla kullanarak vaka çalışmaları yapmıştır. Ayrıca Gall [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] C dilinde
yazılmış bir telekomünikasyon sisteminde vaka çalışması da yapmıştır. Gegick
[
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] güvenlik hata raporlarının belirlenmesi için Bugzilla hata deposunu
kullanarak endüstriyel vaka çalışması gerçekleştirmiştir. Bieman [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] C++ ile yazılmış
gerçek-zamanlı endüstriyel bir yazılım sistemi üzerinde vaka çalışması
bildirmiştir.
      </p>
      <p>
        Literatürde KYVT [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ], İK sistemleri [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ], ve KKP sistemleri [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ]
[
        <xref ref-type="bibr" rid="ref24">24</xref>
        ] [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ] [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ] üzerinde yapılmış veri madenciliği çalışmaları da mevcuttur. Ancak
bu çalışmalarda elde edilen veriler kaynak kod depolarındaki versiyon geçmişi
verileri ile birleştirilip analiz edilmemiştir.
      </p>
      <p>
        Çalışmamızda, versiyon geçmişi, hata/istek raporları, yazılımcı efor ve
deneyim verileri sırasıyla kaynak kod deposu, VYVT, KKP ve İK veri kaynakları
kullanılarak elde edilmiştir. Çalışmamızda, yazılım evrimi konusunda
tanımlanan iki açık noktaya [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ] katkı yapılması hedeflenmiştir:
      </p>
      <p>Endüstriyel yazılımlar hakkında daha fazla deneysel araştırma ihtiyacı, ve
Daha çeşitli yazılım depolarından veri kulanımı ve entegrasyonu
Çalışmamızda geliştirilen adaptörler, SPSS betikleri (scripts) ve Yazılım
Evrimi Kontrol Aracı (YEKA) prototipi sayesinde yapılan analizler tek bir kereye
mahsus olmamakta ve sürekliliği sağlanmaktadır. Analiz için sürdürülebilir bir
çözüm sağlaması çalışmamızın diğer bir katkısıdır.
3
3.1</p>
    </sec>
    <sec id="sec-2">
      <title>Yaklaşım, Metrikler ve Hipotezler</title>
      <sec id="sec-2-1">
        <title>Yaklaşım</title>
        <p>
          Şekil 1 yaklaşımımızın özetini sunar. Farklı veri kaynaklarından veri
toplayabilmek için dört adaptör geliştirdik: KYVT adaptörü, KKP adaptörü, İK 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
yapılan kaynak kod değişiklikleri ve kaynak kodun kendisini alabilmek için CA
SCM SDK (Yazılım Geliştirme Kiti) kullanır. KYVT, İK ve KKP adaptörleri
Java veri erişim teknolojisi olan JDBC (Java Database Connectivity) [
          <xref ref-type="bibr" rid="ref28">28</xref>
          ]
kullanarak bu sistemlerin veritabanını sorgular. İlgili tablo ve sütun eşleşmeleri
kullanıcı tarafından sağlanmaktadır. Adaptörlerin çıktıları belirli bir tarih
aralığı için veri kaynağından alınan verileri içeren Virgülle Ayrılmış Değerler (VAD)
(Comma-Separated Values) dosyalarıdır.
        </p>
        <p>
          VAD dosyaları veri işleme ve ölçüm için Yazılım Evrimi Kontrol Aracına
(YEKA) girdi olarak verilir. YEKA üç modülden oluşmaktadır: VAD Modülü,
Metrik Modülü ve PMD [
          <xref ref-type="bibr" rid="ref29">29</xref>
          ]. VAD Modülü, VAD dosyalarını çözümler ve
verileri diğer modüller için kullanılabilir hale getirir. Metrik Modülü metriklerin
hesaplanmasını sağlar. Metrik Modülü, Java kaynak kodu ölçümlemesi için PMD
aracının değiştirilmiş bir sürümünü kullanır. PMD, Soyut Sözdizimi Ağacı
(Abstract Syntax Tree) temsilini kullanan popüler bir Java statik kaynak kod analiz
        </p>
        <p>
          Şekil 1: İzlenen Yaklaşım
aracıdır. PMD ile analiz için kaynak kodun derlenmesine gerek olmadığından
çok esnek ve verimli bir çözüm sağlar. Metrik Modülünün bir diğer önemli rolü
ise farklı veri kaynaklarından toplanan ilişkili verilerin eşleştirilmesidir.
Örneğin, KKP sisteminden alınan bir efor kaydı ile kaynak kod deposundan alınan
bir ya da birkaç kaynak kod değişikliği birbiriyle ilişkilendirilmelidir. Bu eşleşme
Metrik Modülü tarafından gerçekleştirilir. Çalışmamızda istatistiksel analizler
için SPSS Statistics [
          <xref ref-type="bibr" rid="ref30">30</xref>
          ] aracı kullanılmıştır. Oluşturulan VAD dosyaları SPSS’e
aktarılarak üzerinde kontrol grafikleri, Spearman korelasyonu, ANOVA testleri,
Pareto analizi gibi çeşitli istatistiksel analizler uygulanır.
3.2
        </p>
      </sec>
      <sec id="sec-2-2">
        <title>Metrikler</title>
        <p>Bu çalışmada kullanılan metrikler üç kategoriye ayrıldı: ürün, süreç ve kaynak
metrikleri. Aşağıdaki bölümlerde, ilk olarak taban metrikler daha sonra da bu
taban metrikler kullanılarak oluşturulan türetilmiş (derived) metrikler
anlatılmaktadır.
Ürün Metrikleri Kaynak kod evrimini izlemek amacıyla, literatürde nesne
yönelimli programlama için tanımlanmış aşağıdaki metrikler taban metrik olarak
kullanılmıştır:</p>
      </sec>
      <sec id="sec-2-3">
        <title>CC : Karmaşıklık (Cyclomatic Complexity) [31]</title>
      </sec>
      <sec id="sec-2-4">
        <title>CBO : Objeler arası Bağımlılık (Coupling between Objects) [32]</title>
      </sec>
      <sec id="sec-2-5">
        <title>NOA : Nitelik Sayısı (Number of Attributes) [33]</title>
      </sec>
      <sec id="sec-2-6">
        <title>NOO : Metot Sayısı (Number of Operations) [33] [32]</title>
      </sec>
      <sec id="sec-2-7">
        <title>NCSS : Yorum satırları dışındaki Komut Sayıları (Non Commenting Source Statements) [34]</title>
        <p>Boyut ölçümü ve elde edilen metriklerin normalizasyonu için NCSS
metriği kullanılmıştır. Ayrıca kontrol grafikleri üzerinde yazılım evrim verisindeki
kontrol-dışı noktaların tespiti için NCSS kullanılmıştır. Diğer metrikler
korelasyon analizi sonuçlarına göre seçilmiştir. Metot seviyesinde hesaplanabilen bir
metrik olan CC metriğini sınıf seviyesinde kullanmak için, bir sınıfın tüm
metotları için ayrı ayrı ölçülen CC değerlerinin ortalaması alınmıştır.</p>
        <p>Sınıf seviyesindeki metrikler ile korelasyonlarını kontrol etmek için, iki metot
seviyesi metriği de çalışmaya dahil edilmiştir: CCMetotMax ve NCSSMetotMax.
Bu iki metrik ile sınıfların boyut ve karmaşıklık açısından en büyük metotlarının
evrim eğilimlerini tespit etmeyi hedefledik:</p>
      </sec>
      <sec id="sec-2-8">
        <title>CCMetotMax : Bir sınıfın tüm metotları içindeki maksimum CC değeri</title>
      </sec>
      <sec id="sec-2-9">
        <title>NCSSMetotMax : Bir sınıfın tüm metotları içindeki maksimum</title>
      </sec>
      <sec id="sec-2-10">
        <title>NCSS değeri</title>
        <p>Sadece değişikliklerin etkilerini ölçmek amacıyla, tüm kaynak kod metrikleri
için (Delta) metrikleri tanımlanmış ve analizler bu delta değerleri üzerinde
gerçekleştirilmiştir.</p>
        <p>Bu yaklaşımımızı şu şekilde formüle ettik. wi yazılımın bakım fazındaki i
nolu haftayı temsil eder, ti i nolu haftanın başlangıç tarihini gösterir, cij i nolu
haftada değiştirilen j nolu Java sınıfını gösterir, m wi haftasında değiştirilen
tüm sınıfların sayısını temsil eder. CC(ti; cij ), cij sınıfının ti tarihindeki
karmaşıklığını göstermektedir. Bu tanımlara dayanarak, belirli bir hafta wi ve o hafta
içerisinde değiştirilen sınıfların listesi 0’dan m’e kadar kullanılarak o hafta için
Delta CC metriği şu şekilde hesaplanır:</p>
        <p>CC(wi) =
m
X(CC(ti; cij )
j=0</p>
        <p>CC(ti 1; cij ))</p>
        <p>Benzer şekilde, diğer metrikler için Delta tanımları yapılır.</p>
        <p>Süreç Metrikleri Kaynak kod metriklerine ek olarak, yazılım bakım/evrim
süreçleri için de metrikler tanımlanmıştır:</p>
      </sec>
      <sec id="sec-2-11">
        <title>NoF : Hata sayısı (Number of Faults)</title>
      </sec>
      <sec id="sec-2-12">
        <title>NoER : Geliştirme İstekleri (Enhancement Requests) sayısı</title>
      </sec>
      <sec id="sec-2-13">
        <title>CorrEf: Hata Düzeltme (Corrective Maintenance) için harcanan</title>
      </sec>
      <sec id="sec-2-14">
        <title>Efor (adam-saat)</title>
      </sec>
      <sec id="sec-2-15">
        <title>EnhcEf: Geliştirme İstekleri (Enhancements) için harcanan Efor (adam-saat)</title>
        <p>NoF ve NOER ölçümleri KYVT’den elde edilmiştir. Efor metrikleri (CorrEf
ve EnhcEf) KKP sisteminden elde edilir. Efor metrikleri için iki kategori
tanımlamıştır: Fazla mesai ve normal mesai. Fazla mesai, günlük 8 saati geçen
çalışmaları ve hafta sonu çalışmalarını kapsamaktadır. Verimlilik ölçümü için eforlar
toplanırken, en az bir fazla mesai girişi içeren efor toplamlarını fazla mesai olarak
sınıflandırıldık. Bunun dışındaki efor toplamları normal olarak sınıflandırıldı. Bu
veriler, 3 ve 5 nolu araştırma sorularını cevaplandırmak için kullanıldı.</p>
        <p>Ürün ve süreç taban metriklerini kullanarak, araştırma sorularını yanıtlamak
için aşağıdaki türetilmiş metrikler tanımlanmıştır:</p>
      </sec>
      <sec id="sec-2-16">
        <title>BirimCCArtışı : Birim karmaşıklık artışı</title>
      </sec>
      <sec id="sec-2-17">
        <title>BirimCBOArtışı : Birim bağımlılık artışı</title>
      </sec>
      <sec id="sec-2-18">
        <title>Verimlilik: Efor başına düşen kaynak kod büyüklüğü değişimi</title>
        <p>Verimlilik ölçümü için üç temel husus ele alınmıştır: kaynak kod ölçümleri
ile efor ölçümlerinin eşleştirilmesi, verimlilik hesaplamasına dahil edilecek efor
kategorileri, verimlilik ölçümünün yapılacağı periyot (haftalık, günlük, vb.).
Değişiklik tarihi (hafta numarası), yazılımcı ve proje bilgilerini kullanarak girilen
efor ile kaynak kod deposuna aktarılan (check-in) değişiklikleri eşleştirdik.
Verimlilik hesaplamasına dahil edilecek efor kategorisi olarak kodlama seçildi. Testler
ve yönetim için harcanan efor verimlilik hesaplamasında kullanılmadı.
Verimlilik ölçümünün hafta bazında yapılmasına karar verdik, böylece kaynak kodun
eforun harcandığı gün kaynak kod deposuna aktarılmadığı durumların büyük
ölçüde üstesinden geldik.</p>
        <p>Türetilmiş metriklerin hesaplanması için aşağıdaki denklemler kullanılmıştır:
BirimCCArtisi(wi) =</p>
        <p>CC(wi)</p>
        <p>N CSS(wi)
BirimCBOArtisi(wi) =</p>
        <p>CBO(wi)</p>
        <p>N CSS(wi)
V erimlilik(wi) =</p>
        <p>N CSS(wi)</p>
        <p>EnhcEf (wi)</p>
        <p>Yazılımcı deneyiminin ve fazla mesainin türetilmiş metrikler üzerindeki
etkisini bulmak için, yazılımcı ve fazla mesai özelliklerine göre gruplandırılma
yapılmıştır. Bu ölçümler, 2., 3., 4. ve 5. araştırma sorularını cevaplandırmak için
kullanılmıştır.</p>
        <p>Kaynak Metrikleri Yazılımcı deneyimi için aşağıdaki metrik tanımlanmıştır:</p>
      </sec>
      <sec id="sec-2-19">
        <title>YazılımcıDeneyimi : Yıl olarak Çalışma Deneyimi</title>
        <p>Bu metrik için yapılan ölçümler İK sisteminden elde edilmiş, 2. ve 4.
araştırma sorularını cevaplamak için kullanılmıştır.</p>
        <p>
          Daha önce yapılan çalışmalara dayanarak yazılımcı deneyimi için üç kategori
tanımladık [
          <xref ref-type="bibr" rid="ref35">35</xref>
          ] [
          <xref ref-type="bibr" rid="ref36">36</xref>
          ]: deneyimsiz, orta derece deneyimli ve deneyimli. Üç yıldan
daha az toplam deneyime sahip bütün yazılımcılar deneyimsiz olarak
sınıflandırıldı. Üç yıldan on yıla kadar toplam deneyime sahip yazılımcılar orta derece
deneyimli, on yıldan daha uzun çalışma deneyimine sahip olanlar ise deneyimli
olarak sınıflandırıldı.
3.3
        </p>
        <p>Sıfır Hipotezleri
2 ile 5 arasındaki soruları yanıtlamak için sırasıyla aşağıdaki sıfır hipotezleri
tanımlanmıştır:
– Hipotez 1: Yazılımcı deneyiminin verimlilik üzerinde etkisi yoktur. (H1)
– Hipotez 2: Fazla mesainin verimlilik üzerinde etkisi yoktur. (H2)
– Hipotez 3: Yazılımcı deneyiminin kaynak kod karmaşıklığı ve bağımlılığı
(coupling) üzerinde etkisi yoktur. (H3)
– Hipotez 4: Fazla mesai kaynak kod karmaşıklığı ve bağımlılığı (coupling)
üzerinde etkisi yoktur. (H4)</p>
        <p>Sıfır hipotezleri ANOVA testleri kullanılarak sınanmıştır.
4
4.1</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Yöntem</title>
      <sec id="sec-3-1">
        <title>Veri Kaynakları</title>
        <p>
          Kaynak kod depoları, kaynak kodu ve kaynak koda yapılan değişiklikleri
saklamak ve yönetmek için kullanılır. Değişikliklerin tarihçesi, değişikliği yapan
yazılımcı, değişiklik tarihi, oluşan versiyonlar ve hatta ilgili ister veya proje
görevinin bilgisi kaynak kod depolarından elde edilebilir. Kaynak kod depolarındaki
bu zengin veri, YDM araştırmalarının temelini oluşturmaktadır. Bu çalışmada,
kaynak kod deposu yönetmek için kullanılan araç, Computer Associates (CA)
şirketinin bir ürünü olan CA Software Change Manager (CA SCM) [
          <xref ref-type="bibr" rid="ref37">37</xref>
          ] aracıydı.
CA SCM versiyon kontrolüne ek olarak değişim yönetimi (change management)
işlevselliğine de sahiptir. Yazılımcıların, CA SCM’de değişiklik yapabilmesi için
mutlaka değişiklik paketi (diğer SCM araçlarındaki "değişiklik grubu" (change
set) kavramına benzer) seçmesi gerekir. Değişiklik paketi, aynı hata düzeltme
veya geliştirme görevi kapsamında birlikte yapılan tüm ilgili değişiklikleri içerir
ve bir arada tutar. CA SCM üzerinde daha önce yapılmış herhangi bir YDM
araştırması bulunmamaktadır.
        </p>
        <p>
          Birçok şirket bilgi sistemlerinin tüm bileşenleri ile ilgili bilgileri Konfigürasyon
Yönetimi Veritabanında (KYVT) depolar. KYVT terimi, BT hizmet yönetimi
için en iyi uygulamaları (best practice) tanımlayan Bilgi Teknolojisi Altyapı
Kütüphanesinden (Information Technology Infrastructure Library, ITIL)
kaynaklanıyor olsa da, benzer sistemler neredeyse tüm BT departmanları tarafından
kullanılmaktadır. KYVT şu verileri içerir [
          <xref ref-type="bibr" rid="ref38">38</xref>
          ]: bilgisayar sistemleri ve uygulama
yazılımları gibi yönetilen kaynaklar; istek, hata ve değişiklik kayıtları gibi süreç
ögeleri; ve yönetilen kaynaklar ve süreç ögeleri arasındaki ilişkiler. Çalışmamızda,
hata raporları ve bu hata raporlarının yazılım bileşenleri ve proje görevleri ile
ilişkisi hakkındaki verileri KYVT sisteminden elde ettik. Çalışmamızda
kullanılan KYVT, hata ve istek kayıtları hakkında gerekli bilgileri depoladığından,
ayrıca hata deposundan veri çekmek durumda kalmadık. Çalışmada kullanılan
KYVT sistemi kurum içi geliştirilmiş bir sistemdir.
        </p>
        <p>Kurumsal Kaynak Planlama (KKP) sistemleri finans/muhasebe, üretim,
satış, servis ve müşteri ilişkileri yönetimini kapsayan, kurumların iç ve dış yönetim
entegrasyonunu sağlayan bütünleşik yönetim sistemleridir. Çalışmamızda,
yazılımcı efor verisi KKP sisteminden elde edilmiştir. Çalışmada kullanılan KKP
sistemi kurum içi geliştirilmiş bir sistemdir.</p>
        <p>İnsan Kaynakları (İK) sistemleri veya İnsan Kaynakları Yönetim Sistemleri
(İKYS), çalışan bilgilerinin bir araya toplanması ve birleştirilmesi için özel olarak
tasarlanmış sistemleri ifade eder. İK sistemleri bordro yönetiminden performans
değerlendirmeye kadar birçok işlevi sağlayabilir. Çalışmamızda yazılımcıların
deneyim bilgileri her çalışan hakkında en doğru verileri içeren İK sisteminden elde
edilmiştir. İK sistemi de kurum içi geliştirilmiş bir sistemdir.
4.2</p>
      </sec>
      <sec id="sec-3-2">
        <title>Veri Toplama</title>
        <p>Çalışma kapsamında, kaynak kod verileri CA SCM versiyon kontrol sisteminden,
hata/geliştirme verileri KYVT’dan, yazılımcı efor verileri KKP sisteminden ve
yazılımcı deneyimi İK sisteminden toplanmıştır.</p>
        <p>Kaynak kod verileri için, öncelikle kaynak kod deposunda belirtilen dönemde
oluşturulan tüm versiyonlar adaptörler aracılığıyla çekildi. Daha sonra çekilen
her sürüm üzerinde YEKA ile statik kod analizi yapıldı. PMD tarafından metot
ve sınıf seviyesindeki metrikler hesaplandı. Kod metrikleri yanında, ilgili
versiyonu oluşturan yazılımcı, oluşturma tarihi ve ilgili hata/istek/proje numarası da
kaynak kod deposundan sağlandı.</p>
        <p>KYVT üzerinde her yazılım ürünü ayrı bir yapılandırma öğesi (YÖ)
(configuration item) olarak tanımlanır ve her değişiklik kaydedilip ilgili YÖ ile
ilişkilendirilir. Çalışmamızda belirlenen süre içinde yazılım ürünü ile ilgili tüm
değişiklikler (hata düzeltme veya geliştirme) adaptörler aracılığıyla toplandı. İncelenen
KYVT üzerinde değişiklik için üç farklı tip tanımlanmıştır: Hata, İstek, Proje.
Bu nedenle hata düzeltme ve geliştirme kolayca ayırt edilebildi.</p>
        <p>İncelenen KKP sistemine her yazılımcı sorun, istek ya da proje için her gün
harcanan eforu saat olarak girer. İzin verilen minimum değer 0.5 saattir.
Örneğin bir problem çözme 0.5 saatten daha az sürerse, 0.5’e yuvarlanır. Bu çalışma
kapsamında tek bir giriş için azami efor değeri 10 saat olarak gözlendi. Girilen
her efor değeri kullanıcı tarafından sağlanan hata, istek ya da bir proje görev
numarası (id) ile ilişkilendirilir. Böylece efor verisi her yazılımcı ve her gün için
hata/geliştirme taskı seviyesinde toplanabilmiştir. Her efor girişi için aynı
zamanda fazla mesai olup olmadığı belirtilmiştir. Detay seviyesi yüksek efor verileri
sayesinde çalışmamızda detaylı analiz ve inceleme yapabildik.</p>
        <p>Yazılımcı deneyimi verileri İK sisteminden çalışma kapsamında geliştirilen
adaptörler aracılığıyla elde edildi. Yazılımcı deneyimi, çalışanın çalışmış ve
çalışıyor olduğu şirket veya kurumlardaki iş deneyimleri toplanarak yıl olarak
hesaplanır. Çalışma kapsamında kaynak kod deposu analizinde tespit edilen her
yazılımcı için deneyim verisi İK sisteminden temin edildi.
4.3</p>
      </sec>
      <sec id="sec-3-3">
        <title>Veri Analizi</title>
        <p>
          Süreç sapmalarını tespit etmek ve kontrol-dışı noktalardan gelen verileri
ayıklamak için kontrol grafikleri kullandık. Kontrol grafikleri istatistiksel süreç kontrol
(İSK) araçlarından biridir [
          <xref ref-type="bibr" rid="ref39">39</xref>
          ]. İSK’ya göre iki ayrı tip varyasyon vardır: Yaygın
neden varyasyonu (common cause variation) ve özel neden varyasyonu (special
cause variation). Çalışmamıza sadece ilgili kaynak kod değişikliklerini dahil
etmek amacıyla yazılım bakım/evrim sürecindeki özel neden varyasyonları tespit
edildi ve bu noktalar analizden muaf tutuldu.
        </p>
        <p>
          Metrikler arasındaki korelasyonun tespiti için, Spearman korelasyon analizi
kullandık. Çalışma kapsamında bulunan korelasyon değerleri daha önceki
araştırmalardan da yararlanarak şu şekilde değerlendirildi [
          <xref ref-type="bibr" rid="ref40">40</xref>
          ] [
          <xref ref-type="bibr" rid="ref41">41</xref>
          ]: 0.1’den daha
düşük korelasyon değerleri önemsiz, 0.1 ve 0.3 arasındaki değerler düşük, 0.3 ve
0.5 arasındakiler orta, 0.5 ve 0.7 arasındaki değerler yüksek, 0.7 ile 0.9
arasındakiler çok yüksek, ve 0.9’dan daha büyük değerler mükemmel.
        </p>
        <p>Yazılımcı deneyimi ve mesai tipinin (fazla mesai/normal) etkisini ölçmek için,
varyans analizi (ANOVA) uygulanmıştır (alfa düzeyi 0.05). ANOVA deneysel
araştırmalarda grupların ölçülen özellik bakımından birbirinden istatistiksel
olarak farklı olup olmadığını kontrol etmek için yaygın olarak kullanılır. Ancak,
ANOVA hangi grupların özellikle hangilerinden farklı olduğu bilgisini sağlamaz.
Bu amaçla çalışmamızda Tukey HSD ve Games-Howell testlerini post-hoc testler
olarak kullandık.</p>
        <p>ANOVA analizinde grupların eşit varyanslara sahip olduğu varsayılır.
Çalışmamızda bu varsayımı kontrol etmek için Levene testi kullanılmıştır. Bu
varsayımın karşılanmadığı durumlarda, çalışmamızda Welch ve Brown-Forsythe testleri
kullanılmıştır. Ayrıca bu gibi durumlarda post-hoc test olarak Tukey HSD yerine
eşit olmayan varyanslar için tasarlanmış Games-Howell testi kullanılmıştır.</p>
        <p>
          Bu çalışma kapsamında yapılan istatistiksel analizler için SPSS [
          <xref ref-type="bibr" rid="ref30">30</xref>
          ] aracı
kullanılmıştır.
5
        </p>
        <p>Örnek Olay İncelemesi
Bu çalışmada analizi yapılan finansal yazılım bileşeninin 2 yıla yayılan bakım/evrim
verileri incelenmiştir. İlgili bileşenin yazılım geliştirmesi 10 ayda tamamlanmış
ve bu süre sonunda ilk sürümü kullanıma alınmıştır. Sunulan çalışma bu
noktadan sonra başlayan bakım/evrim fazının ilk 2 yılını kapsar. Yazılım bileşeni Java
ile geliştirilmiş ve 6 yazılımcı bakımında görev almıştır.</p>
        <p>Şekil 2: Kontrol Grafiği - Kod Büyüklüğü Değişiminin Evrimi
5.1</p>
      </sec>
      <sec id="sec-3-4">
        <title>Veri Doğrulama</title>
        <p>İlk olarak yazılımın kaynak kod büyüklüğünün değişimi kontrol edildi. Amacımız
sadece ilgili değişikliklerin analiz için kullanılmasını sağlamaktı. Kaynak kod
deposundan ölçümlenen değişikliklerin kod büyüklüğü (Delta-NCSS) için kontrol
grafiği çizdik (Şekil 2).</p>
        <p>Çizilen kontrol grafiğinde 36. haftanın NCSS değerinin ÜKS (Üst Kontrol
Sınırı) üzerinde olduğunu gördük. Bu nedenle bu nokta kontrol-dışı nokta olarak
değerlendirildi. 36. haftada kaynak kod deposuna aktarılan dosyalar detaylıca
incelendiğinde, şirketteki başka bir bileşenin kaynak kodunun uygulamanın kaynak
kod deposuna kopyalanmış olduğu tespit edildi. Böylece aynı şirketteki projeler
arasında kaynak kod tekrarını (duplication) ortaya çıkarmış olduk. Ilgili
kaynak kod çalışılan yazılımın bakım projeleri kapsamında geliştirilmediğinden ilgili
metrik veri noktasının analizden çıkarılmasına karar verildi.</p>
        <p>Kontrol-dışı veri noktası çıkarıldıktan sonra, kontrol grafiği yeniden çizildi
(Şekil 3). Bu sefer, hesaplanan yeni kontrol limitlerine göre 95. hafta
kontroldışı nokta olarak tespit edildi. Detaylı incelemede, yeni oluşturulan bir Java
sınıfının projenin varolan bir Java sınıfından kopyalandığı ortaya çıktı. Bu durum
efor ve kaynak kod metrikleri arasındaki ilişkiyi analiz ederken hataya neden
olabileceğinden, ilgili Java sınıfı analizden çıkarıldı.</p>
        <p>Tablo 1: Spearman Korelasyon Analizi Sonuçları</p>
        <p>HaftaNo CorrEf
CorrEf =.492**</p>
        <p>p=.000</p>
        <p>Bu kontrol-dışı nokta da çıkardıktan sonra çizilen kontrol grafiğinde (Şekil
4) tüm değerler kontrol limitleri arasında görülmüştür. Bu çalışmada sunulan
diğer analizler bu iki kontrol-dışı noktanın kaldırılması sonucu oluşan kaynak
kod ölçümlerini kulllanmışlardır.
5.2</p>
        <p>Korelasyon Analizi Sonuçları
1 numaralı araştırma sorusunu yanıtlamak için bu çalışmada dikkate alınan
metrikler arasında yapılan Spearman korelasyon analizinin sonuçları Tablo 1’de
gösterilmiştir. CC, NCSS, NOA, NOO, ve CBO gibi tüm kaynak kod
metrikleri ile geliştirme istekleri için harcanan efor (EnhcEf) arasında orta düzeyde
korelasyon gözlemlenmiştir. Öte yandan hata düzeltme eforu (CorrEf) ve delta
kaynak kod metrikleri arasında herhangi bir korelasyon tespit edilmemiştir. Bu
gözlemler, kaynak kod üzerindeki değişikliklerin esas olarak geliştirme istekleri
(enhancements) kapsamında yapıldığını göstermektedir.</p>
        <p>Hafta numarası ve hata düzeltme eforu (CorrEf) arasında tespit edilen
ortaderece korelasyon ilginç bir gözlem olarak değerlendirilebilir. Hafta numarası ve</p>
        <p>Tablo 2: ANOVA Sonuçları - Yazılımcı Deneyimi
Verimlilik
BirimCCArtışı
BirimCBOArtışı
Tablo 3: Verimlilik - Yazılımcı Deneyimi için Games-Howell Sonuçları</p>
        <p>Deneyimsiz Orta-Deneyimli</p>
        <p>Deneyimsiz
Orta-Deneyimli .967</p>
        <p>Deneyimli .002*
.002*
hata sayısı (NoF) arasında da orta-derece korelasyon tespit edildi. Bu hata
düzeltme ve destek faaliyetleri için harcanan haftalık efor ve tespit edilen haftalık
hata sayıları için artan bir eğilim ortaya koymaktadır. Ayrıca, ilginç olmamakla
beraber hata düzeltme eforu (CorrEf) ile hata sayısı (NoF) arasında yüksek
korelasyon tespit edilmesi analizi yapılan verilerin doğrulamasına katkı
sağlamaktadır.</p>
        <p>
          CC - CCMetotMax ve NCSS - NCSSMetotMax metrikleri arasında
oldukça yüksek korelasyon (sırasıyla p değerleri: 0,873 ve 0,928) gözlemlendi. Bu
projedeki sınıfların büyüklüğünün, özellikle sınıfın en büyük boyutlu metodunun
boyutunu artırarak arttığını ortaya koymaktadır. Bu ilgili sınıfların metotlarının
yeniden düzenlenmesi (refactoring) için bir ihtiyaç olarak yorumlanabilir.
Fowler’ın önerdiği yeniden düzenleme (refactoring) tekniklerinin [
          <xref ref-type="bibr" rid="ref42">42</xref>
          ] ikisi burada
uygulanabilir: Metot Ayıklama (Extract Method) ve Sınıf Ayıklama (Extract
Class). Bu şekilde büyük boyutlu metotlar mevcut veya yeni sınıflar içinde daha
küçük metotlara ayrılır ve böylece kaynak kod daha anlaşılır ve bakımı-kolay
(maintainable) hale getirilir.
5.3
        </p>
      </sec>
      <sec id="sec-3-5">
        <title>Hipotezlerin Testi ve Tartışma</title>
      </sec>
      <sec id="sec-3-6">
        <title>S2: Yazılımın bakımını yapan yazılımcıların deneyiminin verimlilik</title>
        <p>üzerinde etkisi var mıdır? 1 numaralı Hipotezin ANOVA testinin
sonuçları Tablo 2’de sunulmaktadır. Levene testi grup varyanslarının eşit olmadığını
gösterir (p = 0.004 &lt; 0.05). Bu nedenle Welch ve Brown-Forsythe testlerinde
(tabloda sırasıyla * ve ** ile işaretlenmiş) elde edilen sonuçlar kontrol edilir.
Her iki test de yazılımcı deneyiminin verimlilik üzerinde önemli (significant)
etkisi (p değerleri 0.003 ve 0.0) olduğunu göstermektedir. Bu nedenle, ilgili
sıfır hipotezi H1 reddedilir. Tablo 3’de gruplar arasındaki farkların ayrıntılarını
gösteren (önemli değerler * ile işaretlenmiştir) Games-Howell testinin sonuçları
verilmiştir. Testlere göre, deneyimli yazılımcıların verimlilik değerleri
deneyim</p>
        <p>Tablo 4: Mesai Tipi için ANOVA Sonuçları
Verimlilik
BirimCCArtışı
BirimCBOArtışı
siz ve orta-deneyimli yazılımcılarınkinden önemli derecede (significant) farklıdır.
Ancak, deneyimsiz ve orta-deneyimli yazılımcıların verimlilik değerleri arasında
önemli bir fark tespit edilmemiştir. Bu, verilen görevlerin zorluk seviyesi,
teknoloji ve uygulama deneyimi gibi farklı nedenlere bağlanabilir. Farklı faktörlerin
verimlilik üzerindeki etkisi gelecekteki çalışmalarımızda ayrıca incelenecektir.</p>
      </sec>
      <sec id="sec-3-7">
        <title>S3: Fazla mesainin verimlilik üzerinde etkisi var mıdır? 2 numaralı Hi</title>
        <p>
          potez için ANOVA testi sonuçları Tablo 4’de sunulmuştur. Levene testi (p =
0.003 &lt; 0.05) grup varyanslarının eşit olmadığını gösterir. Bu nedenle Welch ve
Brown-Forsythe testlerinde elde edilen sonuçlar kontrol edilir (sırasıyla * ve **
ile işaretlenmiş). Her iki test de fazla mesainin verimlilik üzerinde önemli bir
etkisi (p = 0.040 &lt; 0.05) olduğunu göstermektedir. Bu nedenle ilgili hipotez H2
reddedildi. Genel kanının aksine, analiz sonuçları fazla mesai grubu için
verimliliğin diğer gruba göre daha yüksek olduğunu ortaya koymuştur. Bu durum için
bir açıklama; yazılımcıların fazla mesai sırasında normaleden daha az kesintiye
(interrupt) uğraması olabilir. Yazılımcılarla yaptığımız görüşmelerde normal
çalışma saatleri içinde gün boyunca genellikle e-posta, gelen telefon çağrıları ve
diğer acil istekler ile geliştirme işlerinin kesintiye uğradığını dile getirdiler. Bazı
çalışmalar [
          <xref ref-type="bibr" rid="ref43">43</xref>
          ] [
          <xref ref-type="bibr" rid="ref44">44</xref>
          ] kesintiye uğramış bir göreve devam etmenin toparlanma süresi
(recovery time) diye adlandırılan fazladan bir süreye malolduğunu ortaya
koymuştur. Kesintilerin verimlilik üzerindeki etkileri gelecekteki çalışmalarımızda
daha detaylı olarak incelenecektir.
        </p>
        <p>Bu sonucu yorumlarken, fazla mesai eforunun genel efora oranı da (bu
uygulama için %10) dikkate alınmalıdır (Şekil 5). Daha yüksek fazla mesai oranlarına
sahip uygulamların sonuçları ile karşılaştırmak ilginç olacaktır. Sonuçlar
üzerinde etkisi olabilecek bir diğer parametre de fazla mesai ücreti olabilir. Analiz
yapılan şirkette yazılımcılara fazla mesai ücreti ödeniyordu. Fazla mesai ödenen
yazılımcıların ödenmeyenlere göre daha motive çalışmaları beklenir. Bu konuyu
da gelecekteki çalışmalarımızda araştırmayı planlıyoruz.</p>
        <p>S4: Yazılımın bakımını yapan yazılımcıların deneyiminin kaynak kod
karmaşıklığı ve bağımlılığı (coupling) üzerinde etkisi var mıdır? Tablo
2 Hipotez 3 için ANOVA sonuçlarını göstermektedir. Sonuçlar farklı yazılımcı
deneyimi grupları arasında BirimCCArtışı ve BirimCBOArtışı metrikleri için
Şekil 5: Mesai Tipi Pareto Diyagramı
önemli (significant) bir fark göstermemektedir (p değerleri .745 ve .093). Bu
durumda, sıfır hipotezi H3 reddedilemez.</p>
      </sec>
      <sec id="sec-3-8">
        <title>S5: Fazla mesainin kaynak kod karmaşıklığı ve bağımlılığı (coupling)</title>
        <p>üzerinde etkisi var mıdır? Tablo 4 Hipotez 4 için ANOVA sonuçlarını
göstermektedir. Sonuçlar fazla mesai ve normal mesai arasında BirimCCArtışı ve
BirimCBOArtışı metrikleri için önemli (significant) bir fark göstermemektedir
(p değerleri sırasıyla .262 ve .807). Bu nedenle, sıfır hipotezi H4 reddedilemez.
6</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Sonuçlar ve Öneriler</title>
      <p>Bu makalede, bir finansal yazılım bileşeninin evrimi için örnek olay incelemesi
sunuldu. Çalışmada YDM teknikleri kullanılmıştır. Kaynak kod deposu, VYVT,
KKP ve İK sistemleri veri kaynakları olarak kullanılarak versiyon geçmişi, hata
raporları/geliştirme istekleri, yazılımcı deneyimi, efor ve mesai tipi verileri analiz
edilmiştir. Bu yaklaşım, temel veri kaynağı olarak kaynak kod, hata depoları ve
iletişim arşivlerine odaklanmış YDM kullanan mevcut yazılım evrimi
araştırmalarından farklıdır. Bu çalışmada, çeşitli yazılım depolarından elde edilen veriler
birleştirilip üzerinde kontrol grafikleri, Spearman korelasyon ve ANOVA testleri
gibi istatistiksel analizler uygulanmıştır. Bu analizler sonucunda, süreç ve ürün
metrikleri arasındaki ilişkiler, korelasyonlar, süreçteki sapmalar ve eğilimler gibi
yazılım evrimi için değerli bilgiler ve içgörüler elde edilmiştir.</p>
      <p>Çalışmamızda, projedeki sınıfların büyüklüğünün, özellikle sınıfın en büyük
boyutlu metodunun boyutunun arttırılarak arttığı ortaya çıkmıştır. Bu ilgili
sınıfların metotlarının yeniden düzenlenmesi (refactoring) için bir ihtiyaç olarak
yorumlanmıştır. Ayrıca, aynı şirkette faklı projeler arasında kaynak kod tekrarı
(duplication) yapıldığı ortaya çıktı. Çalışmamızın sonuçları, incelenen yazılımın
bakım/evrimi fazında yazılımcı deneyimi ve fazla mesainin verimlilik üzerinde
etkileri olduğunu gösterdi. Buna karşın kaynak kodun karmaşıklığı ve
bağımlılığı üzerinde herhangi bir önemli (significant) etkisi gözlenmedi. Ayrıca, süreç
ve ürün metrikleri arasındaki korelasyon analizi sonucunda, raporlanan hata
sayıları ve hata düzeltme, destek faaliyetleri için harcanan efor için artış eğilimi
saptandı.</p>
      <p>Gelecek çalışmalarımız için, atanan görevlerin zorluk seviyesi, ilgili
teknoloji ya da uygulamadaki deneyim gibi verimlilik üzerinde etkisi olabilecek farklı
faktörleri incelemeyi planlıyoruz. Ayrıca, Git, Mercurial, Subversion gibi diğer
kaynak depoları için adaptörler geliştirmeyi ve YEKA geliştirmesini
tamamlamayı planlamaktayız.</p>
    </sec>
    <sec id="sec-5">
      <title>Kaynaklar</title>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Hemmati</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nadi</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Baysal</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kononenko</surname>
          </string-name>
          , O.,
          <string-name>
            <surname>Wang</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Holmes</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Godfrey</surname>
            ,
            <given-names>M.W.:</given-names>
          </string-name>
          <article-title>The msr cookbook: Mining a decade of research</article-title>
          .
          <source>In: Proceedings of the 10th Working Conference on Mining Software Repositories. MSR '13</source>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Hassan</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>The road ahead for mining software repositories</article-title>
          .
          <source>In: Frontiers of Software Maintenance</source>
          ,
          <year>2008</year>
          . FoSM
          <year>2008</year>
          . (
          <year>2008</year>
          )
          <fpage>48</fpage>
          -
          <lpage>57</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Kagdi</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Collard</surname>
            ,
            <given-names>M.L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Maletic</surname>
            ,
            <given-names>J.I.:</given-names>
          </string-name>
          <article-title>A survey and taxonomy of approaches for mining software repositories in the context of software evolution</article-title>
          .
          <source>J. Softw. Maint. Evol</source>
          .
          <volume>19</volume>
          (
          <issue>2</issue>
          ) (
          <year>March 2007</year>
          )
          <fpage>77</fpage>
          -
          <lpage>131</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>D</given-names>
            <surname>'Ambros</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Gall</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            ,
            <surname>Lanza</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Pinzger</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.</surname>
          </string-name>
          :
          <article-title>Analysing software repositories to understand software evolution</article-title>
          .
          <source>In: Software Evolution</source>
          . Springer Berlin Heidelberg (
          <year>2008</year>
          )
          <fpage>37</fpage>
          -
          <lpage>67</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Fischer</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pinzger</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gall</surname>
          </string-name>
          , H.:
          <article-title>Populating a release history database from version control and bug tracking systems</article-title>
          .
          <source>In: Proceedings of the International Conference on Software Maintenance. ICSM '03</source>
          (
          <year>2003</year>
          )
          <fpage>23</fpage>
          -
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Bevan</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Whitehead</surname>
            , Jr.,
            <given-names>E.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kim</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Godfrey</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Facilitating software evolution research with kenyon</article-title>
          .
          <source>SIGSOFT Softw. Eng. Notes</source>
          <volume>30</volume>
          (
          <issue>5</issue>
          ) (
          <year>September 2005</year>
          )
          <fpage>177</fpage>
          -
          <lpage>186</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Sadowski</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lewis</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lin</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zhu</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Whitehead</surname>
            , Jr.,
            <given-names>E.J.:</given-names>
          </string-name>
          <article-title>An empirical analysis of the fixcache algorithm</article-title>
          .
          <source>In: Proceedings of the 8th Working Conference on Mining Software Repositories. MSR '11</source>
          (
          <year>2011</year>
          )
          <fpage>219</fpage>
          -
          <lpage>222</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>McIntosh</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Adams</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nguyen</surname>
            ,
            <given-names>T.H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kamei</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hassan</surname>
            ,
            <given-names>A.E.:</given-names>
          </string-name>
          <article-title>An empirical study of build maintenance effort</article-title>
          .
          <source>In: Proceedings of the 33rd International Conference on Software Engineering</source>
          . ICSE '
          <volume>11</volume>
          (
          <year>2011</year>
          )
          <fpage>141</fpage>
          -
          <lpage>150</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Khomh</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dhaliwal</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zou</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Adams</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Do faster releases improve software quality? an empirical case study of mozilla firefox</article-title>
          .
          <source>In: Mining Software Repositories (MSR)</source>
          ,
          <year>2012</year>
          9th IEEE Working Conference on. (
          <year>2012</year>
          )
          <fpage>179</fpage>
          -
          <lpage>188</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Bird</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rigby</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Barr</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hamilton</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>German</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Devanbu</surname>
            ,
            <given-names>P.:</given-names>
          </string-name>
          <article-title>The promises and perils of mining git</article-title>
          .
          <source>In: Mining Software Repositories</source>
          ,
          <year>2009</year>
          . MSR '
          <volume>09</volume>
          . 6th IEEE International Working Conference on. (
          <year>2009</year>
          )
          <fpage>1</fpage>
          -
          <lpage>10</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>German</surname>
            ,
            <given-names>D.M.</given-names>
          </string-name>
          :
          <article-title>Mining CVS repositories, the softchange experience</article-title>
          .
          <source>In: Proceedings of the First International Workshop on Mining Software Repositories</source>
          , Edinburg, Scotland, UK (
          <year>2004</year>
          )
          <fpage>17</fpage>
          -
          <lpage>21</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Čubranić</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Murphy</surname>
            ,
            <given-names>G.C.</given-names>
          </string-name>
          :
          <article-title>Hipikat: recommending pertinent software development artifacts</article-title>
          .
          <source>In: Proceedings of the 25th International Conference on Software Engineering</source>
          . ICSE '
          <volume>03</volume>
          (
          <year>2003</year>
          )
          <fpage>408</fpage>
          -
          <lpage>418</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>ČubraniĆ</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Murphy</surname>
            ,
            <given-names>G.C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Singer</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Booth</surname>
            ,
            <given-names>K.S.</given-names>
          </string-name>
          :
          <article-title>Learning from project history: a case study for software development</article-title>
          .
          <source>In: Proceedings of the 2004 ACM conference on Computer supported cooperative work. CSCW '04</source>
          (
          <year>2004</year>
          )
          <fpage>82</fpage>
          -
          <lpage>91</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Gall</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hajek</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jazayeri</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Detection of logical coupling based on product release history</article-title>
          .
          <source>In: Proceedings of the International Conference on Software Maintenance. ICSM '98</source>
          (
          <year>1998</year>
          )
          <fpage>190</fpage>
          -
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Gall</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jazayeri</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Krajewski</surname>
          </string-name>
          , J.:
          <article-title>Cvs release history data for detecting logical couplings</article-title>
          .
          <source>In: Proceedings of the 6th International Workshop on Principles of Software Evolution. IWPSE</source>
          '
          <volume>03</volume>
          (
          <year>2003</year>
          )
          <fpage>13</fpage>
          -
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Gall</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jazayeri</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Riva</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Visualizing Software Release Histories: The Use of Color and Third Dimension</article-title>
          . In: ICSM, IEEE (
          <year>1999</year>
          )
          <fpage>99</fpage>
          -
          <lpage>108</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Gegick</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rotella</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Xie</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Identifying security bug reports via text mining: An industrial case study</article-title>
          . In Whitehead, J.,
          <string-name>
            <surname>Zimmermann</surname>
          </string-name>
          , T., eds.: MSR. (
          <year>2010</year>
          )
          <fpage>11</fpage>
          -
          <lpage>20</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Bieman</surname>
            ,
            <given-names>J.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Andrews</surname>
            ,
            <given-names>A.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yang</surname>
            ,
            <given-names>H.J.:</given-names>
          </string-name>
          <article-title>Understanding change-proneness in oo software through visualization</article-title>
          .
          <source>In: Proceedings of the 11th IEEE International Workshop on Program Comprehension</source>
          . IWPC '
          <volume>03</volume>
          (
          <year>2003</year>
          )
          <fpage>44</fpage>
          -
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Nadi</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Holt</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mankovskii</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Does the past say it all? using history to predict change sets in a cmdb</article-title>
          .
          <source>In: Software Maintenance and Reengineering (CSMR)</source>
          ,
          <year>2010</year>
          14th European Conference on. (
          <year>2010</year>
          )
          <fpage>97</fpage>
          -
          <lpage>106</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Anchuri</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zaki</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Barkol</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bergman</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Felder</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Golan</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sityon</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Infrastructure pattern discovery in configuration management databases via large sparse graph mining</article-title>
          .
          <source>In: Data Mining (ICDM)</source>
          ,
          <year>2011</year>
          IEEE 11th International Conference on. (
          <year>2011</year>
          )
          <fpage>11</fpage>
          -
          <lpage>20</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Ranjan</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Goyal</surname>
            ,
            <given-names>D.P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ahson</surname>
            ,
            <given-names>S.I.</given-names>
          </string-name>
          :
          <article-title>Data mining techniques for better decisions in human resource management systems</article-title>
          .
          <source>Int. J. Bus. Inf. Syst</source>
          .
          <volume>3</volume>
          (
          <issue>5</issue>
          ) (
          <year>June 2008</year>
          )
          <fpage>464</fpage>
          -
          <lpage>481</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>Poon</surname>
            ,
            <given-names>S.K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Davis</surname>
            ,
            <given-names>J.G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Choi</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Augmenting productivity analysis with data mining: An application on it business value</article-title>
          .
          <source>Expert Syst. Appl</source>
          .
          <volume>36</volume>
          (
          <issue>2</issue>
          ) (
          <year>March 2009</year>
          )
          <fpage>2213</fpage>
          -
          <lpage>2224</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <surname>Nemati</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Barko</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Organizational data mining</article-title>
          .
          <source>In: Data Mining and Knowledge Discovery Handbook</source>
          . Springer US (
          <year>2005</year>
          )
          <fpage>1057</fpage>
          -
          <lpage>1067</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <surname>Symeonidis</surname>
            ,
            <given-names>A.L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kehagias</surname>
            ,
            <given-names>D.D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mitkas</surname>
            ,
            <given-names>P.A.</given-names>
          </string-name>
          :
          <article-title>Intelligent policy recommendations on enterprise resource planning by the use of agent technology and data mining techniques</article-title>
          .
          <source>Expert Systems With Applications</source>
          <volume>25</volume>
          (
          <issue>4</issue>
          ) (
          <year>2003</year>
          )
          <fpage>589</fpage>
          -
          <lpage>602</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <surname>Xu</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wang</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Luo</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Shi</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          :
          <article-title>Integrating knowledge management and erp in enterprise information systems</article-title>
          .
          <source>Systems Research and Behavioral Science</source>
          <volume>23</volume>
          (
          <issue>2</issue>
          ) (
          <year>2006</year>
          )
          <fpage>147</fpage>
          -
          <lpage>156</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26.
          <string-name>
            <surname>Zhang</surname>
          </string-name>
          , H.,
          <string-name>
            <surname>Liang</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          :
          <article-title>A knowledge warehouse system for enterprise resource planning systems</article-title>
          .
          <source>Systems Research and Behavioral Science</source>
          <volume>23</volume>
          (
          <issue>2</issue>
          ) (
          <year>2006</year>
          )
          <fpage>169</fpage>
          -
          <lpage>176</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          27.
          <string-name>
            <surname>Mens</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wermelinger</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ducasse</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Demeyer</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hirschfeld</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jazayeri</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>Challenges in software evolution</article-title>
          .
          <source>In: Proceedings of the Eighth International Workshop on Principles of Software Evolution. IWPSE</source>
          '
          <volume>05</volume>
          (
          <year>2005</year>
          )
          <fpage>13</fpage>
          -
          <lpage>22</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          28. JDBC:
          <article-title>Java database connectivity (</article-title>
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          29. PMD:
          <article-title>Web page of pmd tool (</article-title>
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          30. SPSS:
          <article-title>Web page of spss (</article-title>
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          31.
          <string-name>
            <surname>McCabe</surname>
            ,
            <given-names>T.J.:</given-names>
          </string-name>
          <article-title>A complexity measure</article-title>
          .
          <source>IEEE Trans. Softw. Eng</source>
          .
          <volume>2</volume>
          (
          <issue>4</issue>
          )
          <issue>(</issue>
          <year>July 1976</year>
          )
          <fpage>308</fpage>
          -
          <lpage>320</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          32.
          <string-name>
            <surname>Chidamber</surname>
            ,
            <given-names>S.R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kemerer</surname>
            ,
            <given-names>C.F.</given-names>
          </string-name>
          :
          <article-title>A metrics suite for object oriented design</article-title>
          .
          <source>IEEE Trans. Softw. Eng</source>
          .
          <volume>20</volume>
          (
          <issue>6</issue>
          ) (
          <year>June 1994</year>
          )
          <fpage>476</fpage>
          -
          <lpage>493</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          33.
          <string-name>
            <surname>Lorenz</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kidd</surname>
          </string-name>
          , J.:
          <string-name>
            <surname>Object-Oriented Software Metrics. Prentice Hall</surname>
          </string-name>
          (
          <year>1994</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          34. NCSS:
          <article-title>Specification for the ncss and javancss-tool (</article-title>
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          35.
          <string-name>
            <surname>Jørgensen</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sjøberg</surname>
            ,
            <given-names>D.I.K.</given-names>
          </string-name>
          :
          <article-title>Impact of experience on maintenance skills</article-title>
          .
          <source>Journal of Software Maintenance</source>
          <volume>14</volume>
          (
          <issue>2</issue>
          ) (
          <year>March 2002</year>
          )
          <fpage>123</fpage>
          -
          <lpage>146</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref36">
        <mixed-citation>
          36.
          <string-name>
            <surname>Jorgensen</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Experience with the accuracy of software maintenance task effort prediction models</article-title>
          .
          <source>Software Engineering, IEEE Transactions on 21(8)</source>
          (
          <year>1995</year>
          )
          <fpage>674</fpage>
          -
          <lpage>681</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref37">
        <mixed-citation>
          37. CASCM:
          <article-title>Web page of ca software change manager (</article-title>
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref38">
        <mixed-citation>
          38.
          <string-name>
            <surname>Carlisle</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Eisinger</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          , Johnson,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Kowalski</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            ,
            <surname>Mukerji</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            ,
            <surname>Snelling</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            ,
            <surname>Vambenepe</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            ,
            <surname>Waschke</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Wiles</surname>
          </string-name>
          ,
          <string-name>
            <surname>V.</surname>
          </string-name>
          :
          <article-title>Configuration management database (cmdb) federation specification (</article-title>
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref39">
        <mixed-citation>
          39.
          <string-name>
            <surname>Burr</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Owen</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Statistical methods for software quality: using metrics to control process and product quality</article-title>
          . International Thomson Computer Press (
          <year>1996</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref40">
        <mixed-citation>
          40.
          <string-name>
            <surname>WG</surname>
          </string-name>
          , H.:
          <article-title>A new view of statistics</article-title>
          .
          <source>SportScience</source>
          (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref41">
        <mixed-citation>
          41.
          <string-name>
            <surname>Lu</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zhou</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Xu</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Leung</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chen</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>The ability of object-oriented metrics to predict change-proneness: a meta-analysis</article-title>
          .
          <source>Empirical Software Engineering</source>
          <volume>17</volume>
          (
          <year>2012</year>
          )
          <fpage>200</fpage>
          -
          <lpage>242</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref42">
        <mixed-citation>
          42.
          <string-name>
            <surname>Beck</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>Refactoring: improving the design of existing code</article-title>
          .
          <source>The Addison-Wesley Object Technology Series. Addison-Wesley</source>
          (
          <year>1999</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref43">
        <mixed-citation>
          43.
          <string-name>
            <surname>Parnin</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rugaber</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Resumption strategies for interrupted programming tasks</article-title>
          .
          <source>Software Quality Control</source>
          <volume>19</volume>
          (
          <issue>1</issue>
          ) (
          <year>March 2011</year>
          )
          <fpage>5</fpage>
          -
          <lpage>34</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref44">
        <mixed-citation>
          44.
          <string-name>
            <surname>Van</surname>
            <given-names>Solingen</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            ,
            <surname>Berghout</surname>
          </string-name>
          , E.,
          <string-name>
            <surname>van Latum</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>Interrupts: just a minute never is</article-title>
          .
          <source>Software, IEEE</source>
          <volume>15</volume>
          (
          <issue>5</issue>
          ) (
          <year>1998</year>
          )
          <fpage>97</fpage>
          -
          <lpage>103</lpage>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>