<!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 Mimarisi Geri Kazan m : Hiyerarsik Kumeleme Yontemi</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Ozan ZORLU</string-name>
          <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: Software architecture</institution>
          ,
          <addr-line>Reverse engineeering, Architecture recovery, Hierarchical clustering</addr-line>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Hava Harp Okulu</institution>
          ,
          <addr-line>I</addr-line>
        </aff>
      </contrib-group>
      <fpage>733</fpage>
      <lpage>743</lpage>
      <abstract>
        <p>As a result of not running appropriately the software development process, many problems occurs. One of important these problems is not forming software architecture. Analysis, development and testing will become harder, maybe impossible with a system without software architecture.For this reason, focused on software architecture recovery from source code and tested various methods. While lack of source about software architecture recovery domain is trying to be satis ed, also, explanation of past studies with a comprehensible way and for this reason representing a source material for future research is aimed.With this perspective; hierarchical clustering for software architecture recovery examined and fundamental principals, clustering measures, algorithms and studies on software domain described.</p>
      </abstract>
      <kwd-group>
        <kwd>Anahtar Kelimeler</kwd>
        <kwd>Yaz l m mimarisi</kwd>
        <kwd>Tersine muhendislik</kwd>
        <kwd>Mimari geri kazan m</kwd>
        <kwd>Hiyerarsik kumeleme</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        GI_RI_S
Yaz l m sisteminin mimarisi nesneye dayal sistemlerde s n ar ve iliskileri ifade
eder. Bu yap lar n kullan larak yaz l m mimarisinin yeniden olusturulabiliyor
olmas cogu durumda hayati onem arz etmektedir. Gunumuzde baz yaz l mlar n,
kaynak kodundan baska hic bir dokuman bulunmamaktad r. Bu nedenledir ki
yaz l mda degisiklik yap lmas , gelistirmeler icin ihtiyaclar n analiz edilmesi veya
hata giderimleri icin gereksinim duyulan on bilginin olmay s nedeniyle zaman ve
para kay plar buyuk miktarlarda olabilmektedir. Bu problemleri asabilmek icin
yaz l m kaynak kodundan yaz l m mimarisinin c kar lmas ihtiyac ortaya c km s
ve otonom olarak cal san cesitli yontemler gelistirilmistir [
        <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>
        ].
      </p>
      <p>
        Cesitli alanlarda mimari geri kazan m (architecture recovery) icin bir cok
teknik gelistirilmis ve uygulanm st r. Bu yontemlerden baz lar , yaz l m mimarisinde
yap analizi, bag nt ve iliski c kar m ile kumeleme icin kullan lm st r [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ],[
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
Pollet ve digerlerinin sunmus olduklar mimari geri kazan m yaklas m nda, yaz l m
mimarisi tekrar insas nda (reconstruction) kumeleme, "quasi-auto- matic"
(otomatik gibi) olarak tan mlanm st r [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ].
      </p>
      <p>
        Bu alandaki tum cal smalar gostermistir ki; mimari geri kazan m yaklas mlar
n n temelinde kumeleme bulunmaktad r. Kumelemenin bu alanda kullan lmas
ve ilgi cekiyor olusu, Jain ve digerlerinin veri kumeleme incelemesiyle [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] buyuk
oranda art s gostermistir [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. Ayr ca bu cal smada kumeleme yaklas mlar nda
kullan lan algoritmalar, bolumlemeli ve hiyerarsik olmak uzere iki s n f olarak
tan mlanm st r. Bolumlemeli algoritmalar genel olarak, baslang cta giris
bolumlemelerinden olusan belirli say daki kumelerden olusur. Her bir ad mda, baslang cta
belirlenen kume say s sabit kalacak sekilde, bolumlemeler belirlenerek kriterlere
gore duzenlenirler. Bu algoritman n dezavantaj kumeleme yap lacak olan
sistemde kac adet kume oldugunun bilinmemesi durumunda ortaya c kmaktad r.
Diger taraftan, yaz l m mimarisi dusunuldugunde ise genellikle olusturulacak
olan kume say s bilinmemektedir. Bunun yan nda, bolumlemeler icerisindeki n
nesne k kume icerisinde aranmaktad r ve genellikle cok fazla hesaplama yuku
getirmektedir. Bu nedenlerden dolay arast rmac lar bulgusal (heuristic) tabanl
yaklas mlar benimsemislerdir [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ].
      </p>
      <p>
        Yaz l m sisteminin kume say bilgisi baslang cta edinilebiliyorsa, yaz l m
mimari geri kazan m icin bolumlemeli kumeleme kullan labilir. Ancak bu durumda
bile yaz l mlar n genel yap s itibari ile hiyerarsik yap da tasarlanmalar
nedeniyle, duz yap da olan bolumlemeli kumeleme cogu zaman uygun olmaz [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ],
[
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. Diger bir kumeleme yontemi olan hiyerarsik kumeleme de ise seviyeli yap
desteklenir. Hiyerarsik kumelemede onceki iterasyonlar mimariyi detayl olarak
ortaya c kar rken, sonraki iterasyonlarla yuksek seviye gorunum elde edilir ve
baslang cta kume say bilgisine ihtiyac duyulmaz.
      </p>
      <p>
        Cesitli alanlarda kullan lan kumeleme yontemlerinin temel yap s , ancak
kumeleme degerleri ve algoritmalar n n anlas lmas ile yaz l m mimarisinde geri kazan m
icin uyarlanabilir. Bu nedenle, hiyerarsik kumeleme yontemiyle yaz l m mimarisi
geri kazan m nda, bu cal smada da oldugu gibi diger cal smalarda da, kullan lan
temel kaynaklardan biri Maqbool ve Babri taraf ndan yay nlanm st r [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. Yapt
klar cal smada k saca:
      </p>
      <p>
        1. Cesitli benzerlik ve mesafe olcutleri yaz l mlar icin, analiz edilerek
benzerlik/mesafe gruplar c kar lm s, ayr ca ayn grup uyeleriyle yap lan incelemelerin
ayn sonuclar verdigi,
2. Yay nlanm s olan Weighted Combined Algorithm (WCA) [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] ve LIMBO
[
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] algoritmalar incelenmis ve ad m yaklas m benzerlikleri ac klanm s, ayr ca
bu yaklas mlar n uyarlanmas yla daha az say da key karar verildigi ve daha iyi
sonuclar elde edildigi,
      </p>
      <p>
        3. Bilinen hiyerarsik kumeleme algoritmalar analiz edilerek ve bag nt lar n n
guclu ve zay f yanlar degerlendirilerek, kumeleme algoritmalar n n performans n n
sadece kendi karakteristigine degil ayn zamanda uyguland g yaz l ma gore de
degisiklik gosterdigi sunulmustur [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
      </p>
      <p>
        Geri kazan m islemi icin gelistirilmis olan Dali [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ], PBS [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ], Imagix4D [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]
and Bauhaus [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] gibi yard mc araclar bulunmaktad r. R. Naseem ve digerleri
taraf ndan yay nlanan cal smada ise bu araclar n mimari geri kazan m ndaki
tum ad mlar n gerceklenmesinde tam anlam yla kullan lamamas nedeniyle DRT
isimli ozellestirilmis arac gelistirilmistir [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]. Bunun yan nda tersine muhendislik
icin yaklas mlar ac klanm st r.
      </p>
      <p>
        Otomatik olarak yaz l m mimarisinin kazan lmas alan nda bircok cal sma
sunulmustur [
        <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>
        ]. Bu cal smalardan T. Lutellier ve digerlerinin sundugu
cal smaya gore onceki cal smalar n gelistirildigi ve 10 milyon seviyesindeki sat rdan
olusan kodlarda sunulan alt modul tabanl teknik kullanarak cal sabildigi, diger
yontemlerle bunun yap lamad g sunulmustur [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
      </p>
      <p>
        Bu cal smada ise amac; hiyerarsik kumeleme yap s n n, ac k bir sekilde
incelenmesi ve gecmis cal smalar n ac klanmas ile yaz l m mimarisi geri kazan m
icin uygulanabilirliginin arast r larak, bu alanda eksik olan kaynak dokuman
problemine cozum bulmakt r. Bu nedenle; konu kapsam na giren cal smalar
incelenmis, ozellikle Maqbool ve Babri taraf ndan yap lan cal sma ana referans olarak
al nm s ve ilgili bilgiler kullan lm s [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], temel olusturacak bilgiler anlas l r bir
sekilde ifade edilmeye cal s lm s ve arast rmalara kaynak olmas hede enmistir.
Bu kapsamda; Bolum' 1 de yaz l m mimarisi ve kumeleme alanlar ndaki mevcut
problemler ile yap lan cal smalara deginilmis, Bolum 2' de kumeleme benzerlik
olculeri ve kars last rmalar k saca anlat lm s, Bolum 3'te hiyerarsik kumeleme
ad mlar yaz l m mimarisi boyutuyla anlat lm s, kullan lan algoritma ve
benzerlik olculerinin kars last rmal analiz cal smalar incelenmis ve Bolum 4'te ise
hiyerarsik kumeleme algoritmalar anlat larak kars last r lm st r.
2
      </p>
    </sec>
    <sec id="sec-2">
      <title>Kumeleme</title>
      <p>
        Kumeleme isleminde; gruplar icerisindeki madde veya varl klar birbirleriyle
benzerlik, diger gruplar ile farkl l k gosterecek sekilde bicimlendirilir. Yap lan bu
ayr mda benzerlik veya farkl l klar madde/varl klar n karakteristik veya
ozelliklerine gore olur. Bunun yan nda, benzerliklerin belirlenmesi icin formal ve nonformal
ozellikler kullan lm s, baz arast rmac lar taraf ndan ise beraber kullan lm st r
[
        <xref ref-type="bibr" rid="ref15">15</xref>
        ], [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ]. Formal ozeliklere; global degiskenleri, fonksiyonlar , nonformal ozelliklere
ise yorum veya ac klama sat rlar ornek olarak verilebilir.
      </p>
      <p>Kumelemede ozelliklerin ifade sekli genellikle binary olarak yap l r ve '1-0'
seklinde ifade edilir. Benzerliklerin olculmesi icin kullan lan binary tan mlamada
kars last r lan iki farkl madde/varl k ayn ozelliklerinin durumuna gore incelenir.
Eger ikisinde de ozellik '1' olarak ifade ediliyorsa benzerlik olma olas l g yuksek
demektir. Diger bir taraftan ise iki ozelligin de '0' olmas '1' olmas na gore daha
dusuk olas l kla benzerlik olabilecegini gosterir. Bu nedenle benzerlikte ozellik
degerlerinin '0' olmas degil, '1' olmas kumeleme icin daha yuksek oneme
sahiptir.</p>
      <p>Kumeleme isleminde oncelikli olarak varl klar ve ozellikler tan mlanarak her
bir varl k icin ozellik vektoru olusturulur. O zellik vektorleri genellikle '1' ve
'0'lardan olusur. Devam nda benzerlik olcutu belirlenerek her bir varl g n
digerleriyle olan benzerlikleri kare matris seklinde ifade edilir. Benzerlik matrisinin
olusturulmas sonucunda ise kumeleme algoritmas kullan larak uygun
grupland rma islemi yap l r. O nemli olan grup icerisindeki benzerliklerin yuksek
olmas ve gruplar aras benzerliklerin daha dusuk olmas d r.
2.1</p>
      <sec id="sec-2-1">
        <title>Benzerlik O lculeri</title>
        <p>
          Kumeleme isleminde kullan lacak olan benzerlik degerleri olarak, mesafe olculeri
(distance measures) ve bag nt katsay lar (correlation coe cient) kullan l r. Bir
cok benzerlik olcusu vard r ve bunlar mesafe katsay lar , iliski katsay lar , bag nt
katsay lar , olas l k katsay lar seklinde grupland rabiliriz. Bilinen mesafe ve
benzerlik olculeri Tablo 1' de verilmistir [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ].
        </p>
        <p>Tablo 1. Mesafe ve Benzerlik Olculeri
Mesafe O lcusu
Minkowski
Canberra
Bray-Curtis
Chord
Hellinger</p>
        <p>Formul</p>
        <p>yijr)1=r
(P jxi
P jxi yij= xjij + jyij</p>
        <p>P jxi yij</p>
        <p>P (xjij+jyij)
r
s</p>
        <p>
          P
Jaccard ve Sorenson-Dize olculeri kars last r ld g nda ayn kumeleri bulduklar
gorulmustur [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ]. Ancak; Sorenson-Dice olculerinde ekstradan ag rl k verme islemi
olmas nedeniyle, daha uygun sonuclar vermesi beklenirdi [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ]. Jaccard,
SorensonDice ve Sokal-Sneath degerleri ile yapt klar cal sma sonucu, ayn kumeleri
bulmalar n n nedeninin monotonik bag nt lar oldugunu gorduler [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ]. Monotik bag nt
da varl klar (E1 E4) aras ndaki benzerlik iliskisi benzerlik(E1; E2) &gt; benzerlik
(E3; E4) ve bu sonuca s1 benzerlik degeri ile hesaplama sonucu ulas ld ysa E3
ve E4 degerleri s1 degeriyle monotik olarak iliskili ise diger metrikleri icinde her
zaman benzerlik(E1; E2) &gt; benzerlik(E3; E4) olacakt r [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ].
        </p>
        <p>
          Bag nt katsay s yaklas m nda, olmayan ozellik degerlerinin hesaplamalarda
kullan lmas na ragmen, yaz l m kumeleme icin iyi sonuclar elde etmesi
beklenmeyen bir durumdur ve nedeni olarak ise benzerlikleri ifade eden '1' degerlerinin
'0' olan degerlere oranla yuksek seviyede oneme sahip olmas d r ve formulsel
ac klamas da cesitli cal smalarla yap lm st r [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ].
        </p>
        <p>
          Ayr ca bu cal smada gorulmustur ki farkl olculerle al nan sonuclar yaz l m
karakteristiklerine ve ozellik ifade sekline bag ml d r [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ] .
        </p>
        <p>
          Tablo 1'de yer alan mesafe olculerinde x ve y Euclidian uzay ndaki noktalar
temsil etmektedir. Tablo 1'deki benzerlik olculerinde; kars last r lan varl klar n
ikisinde de '1' olan ozellik say s a, ikisinde de '0' olan ozellik say s d, birisinde '1'
iken digerinde '0' olan ozelliklerin say s ise s ras yla b ve c ile ifade edilmektedir.
Yaz l m mimarisinde ozelliklerin asimetrik olmas nedeniyle mesafe degerlerinden
d icermeyenlerin, icerenlere oranla daha iyi sonuclar verdigi gozlemlenmistir [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ],
[
          <xref ref-type="bibr" rid="ref23">23</xref>
          ].
        </p>
        <p>
          Hiyerarsik kumelemede birden fazla varl k birbirine benzer c kabilir ve key
secim yap lmas soz konusudur. Bu durumdan sak nman n daha iyi sonuclar
verdigi cal smalar ile gosterilmistir [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ].
        </p>
        <p>
          Temel hiyerarsik kumeleme algoritmalar Tablo 2'te verilmistir [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ]. Bu
algoritmalar ile; belirlenmis olan yeni kume ve diger varl klar n benzerlikleri, belirtilen
hesaplamalar ile yap l r. Ei, Em ve Eo varl klar Emo ise varl klar n birlestirilerek
kume olusturulmas n ifade eder. Tablo 2'de verilen algoritmalara gore CLA
yaz l m kumelemede digerlerine gore daha basar l d r. Bunun yan nda; SLA daha
basar s z ve WLA ile ULA ise bu iki algoritman n aras nda basar ya sahiptir [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ].
        </p>
        <p>Tablo 2. Hiyerarsik Kumeleme Algoritmalar
Algoritma
Single Linkage (SLA)
Complete Linkage (CLA)</p>
        <p>Kume Benzerligi
sim (Ei; Emo) = M ax (sim (Ei; Em) ; sim (Ei; Eo))
sim (Ei; Emo) = M in (sim (Ei; Em) ; sim (Ei; Eo))
Weighted
(WLA)</p>
        <p>Average</p>
        <p>Linkage sim (Ei; Emo)
1=2sim (Ei; Eo)
=
1=2 (sim (Ei; Em))
+
Unweighted Average Linkage sim (Ei; Emo) = (sim (Ei; Em) + size (Em) +
(ULA) sim (Ei; Eo) size (Eo) t)= (size (Em) + size (Eo))
3</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Mimarisinde Kumeleme Ad mlar</title>
      <p>Yaz l m mimarisi geri kazan m na uyarlanm s olan kumeleme arast rmalar n n
temelini olusturan ad mlara, bu bolumde deginilecektir. Ancak ve ancak bu
ad mlar n incelenip, iyi analiz edilmesi sonucu basar ya ulas labilecegi
vurgulanmas gereken bir gercektir.
3.1</p>
      <sec id="sec-3-1">
        <title>O zellik Secimi</title>
        <p>Kumeleme isleminin temelinde benzerliklerin c kar lmas ve cesitli kumeleme
algoritmalar yard m yla gruplaman n yap lmas yer almaktad r. Benzerliklerin
c kar labilmesi icin ise her bir varl ga ait ozelliklerin tespit edilmesi, secilmesi,
belirlenmesi gerekmektedir. Suphesiz ki, varl klar n ozelliklerinin c kar lmas islemi
ne kadar basar l olursa, o denli basar l sonuclar elde edilebilir.</p>
        <p>
          O zellik c kar m nda formal ve nonformal ozelliklerin ayr k veya birlikte
kullan ld g cesitli arast rmalar bulunmaktad r [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ], [
          <xref ref-type="bibr" rid="ref23">23</xref>
          ]. Formal ozelliklerde; varl k
taraf ndan cag r lan fonksiyonlar, global degiskenler ve kullan c tan ml
degiskenler yer al rken nonformal ozellikler icerisinde; yorumlar, tan mlar,
fonksiyondosya-gelistirici isimleri, son duzenleme zaman gibi bilgiler yer al r.
Performans n art r m icin ozelliklerin ag rl kland r lmas yontemini kullanarak, daha
onemli ve/veya kumelemede daha yuksek oneme sahip olan ozelliklerin, on plana
c kar lmas n amaclayan bir cok cal sma da bulunmaktad r [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ], [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ].
3.2
        </p>
        <sec id="sec-3-1-1">
          <title>Yaz l m Genelinde Kullan lan Modullerin Tespiti</title>
          <p>
            Yaz l m sistemlerinde, baz fonksiyonlar diger fonksiyonlar taraf ndan s kl kla
cag r l r ve omnipresant modules (OM ) olarak adland r l rlar [
            <xref ref-type="bibr" rid="ref24">24</xref>
            ]. Bu
fonksiyonlar n karakteristiklerinin farkl olmas nedeniyle kumeleme islemi yap lmadan
once sistemden c kar lmal ve karakteristiklerine uygun ayr bir kume olarak
veya dag t k bir sekilde diger kumeler icerisinde yer almalar onerilmektedir
[
            <xref ref-type="bibr" rid="ref5">5</xref>
            ]. O celikli olarak bu fonksiyonlar n tespit edilmesi ihtiyac kars lanmal d r.
Bu amacla geistirilen yontemlerden bir tanesi; belirli bir esik degerinin tespit
edilmesi ve fonksiyonlar n cag r lma say lar n n bu esik degerinin uzerine c kmas
soucu OM olarak degerlendirilmesidir. Bunun yan s ra; Wen ve Tzerpos bu
fonksiyonlar n tespitini, fonksiyonlar n, belirlenen kumelere olan bagl l klar na gore
degerlendirilmesi incelemesi yapm slard r. [
            <xref ref-type="bibr" rid="ref25">25</xref>
            ].
3.3
          </p>
        </sec>
      </sec>
      <sec id="sec-3-2">
        <title>Kume I_simlendirmesi</title>
        <p>
          Kumeleme islemi yap larak grupland r lan yaz l m n anlas l r olabilmesi icin
gruplar n etiketlenmesi gerekir. Bu nedenle; etiketleme islemi, ozelliklerin ozetlerinden
yararlanarak manuel olarak [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ], rota tabanl tan ma ile benzer alt sistemlerin
degerlendirilmesiyle otomatik olarak [
          <xref ref-type="bibr" rid="ref26">26</xref>
          ] veya ozel kelimelere dayal olarak [
          <xref ref-type="bibr" rid="ref27">27</xref>
          ]
dinamik olarak yap labilmektedir.
3.4
        </p>
      </sec>
      <sec id="sec-3-3">
        <title>O lculerin Degerlendirilmesi</title>
        <p>
          Kumeleme islemi tamamland ktan sonra tahmin edilen gruplar n
degerlendirilmesi, performans n olculmesi gerekmektedir. Bu amacla; d sar dan uzmanlar n
mudahalesi ile belirlenen gruplar n, kumeleme sonucu belirlenen gruplarla kars
last r larak olculdugu d s degerlendirme yontemi, icsel verilerin kullan larak degisik
ozelliklerle kumeleme isleminin yap lmas yla ic degerlendirme yontemi ve farkl
kumeleme algoritmalar n n uygulanmas sonucu elde edilen verilerin kars last r
larak veya ayn algoritmayla farkl ozelliklerin degerlendirilerek kullan ld g goreceli
degerlendirme yontemleri kullan labilmektedir [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ].
        </p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Hiyerarsik Kumeleme Algoritmalar</title>
      <p>
        Kumeleme algoritmalar , yaz l mlar icin ozelliklerin kullan lmas yla gruplama
islemi icin kullan l rlar. Yaz l m mimarisinin hiyerarsik yap da olmas nedeniyle
de kullan lacak olan kumeleme algoritmalar n n hiyerarsik kumeleme
algoritmalar olmalar gereklidir. Bu nedenle temel olarak CA [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ], WCA [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] ve LIMBO
[
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] gelistirilmis, yaz l m mimari geri kazan m icin kullan lm slard r. Bu
algoritmalar benzerlik matrisi kullanarak varl k veya kume benzerliklerini olcerler.
      </p>
      <p>
        Ayr ca; benzerlik yaklas mlar , baslang cta yeni olusturulan kumenin ozellik
vektoru c kar lmas yla, mevcut varl klar ile bu kumenin benzerliginin yeniden
hesaplanmas na dayan r. Kumeleme algoritmalar ndaki onemli degerlerden bir
tanesi ayn degerlere sahip iki varl ktan hangisinin kumeye dahil edilecegi (key
secim), digeri ise kullan lacak ozellik say s n n belirlenmesidir. Yap lan cal smalarda
bu key secimin azalt lmas yla ve kullan lan ozellik say s n n belirli bir noktaya
kadar art r lmas yla daha iyi sonuclar elde edildigi, daha da art r lmas sonucu
daha kotu sonuclar elde edildigi gorulmustur [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
4.1
      </p>
      <sec id="sec-4-1">
        <title>Combined ve Weighted Combined Algoritmalar</title>
        <p>
          CA cal smas Sekil 1' de [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ] anlat ld g gibi olup key secim say s n n dusurulmesine
kars n yeni ozellik vektoru c kar ld g nda varl g n eristigi ozellik bilgisi
kaybolmaktad r. WCA' da ise bu bilgiler saklanarak CA' daki dezavantaj
giderilmektedir. WCA' n n cal smas n n CA'dan fark Sekil 2' de [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ] gosterilmistir.
        </p>
        <p>Sekil 1. Hiyerarsik kumeleme icin Combined Algorithm (CA)
1. Her bir varl k Ei bilesenleri fi1; fi2:::fin olan fi ozellik vektorleri c kar larak
tan mlan r.
2. Her bir varl k aras ndaki benzerlik hesaplan r.
3. Asag daki ad mlar tekrar edilir;
(a) En cok benzeyenleri kumelenir,
(b) Yeni olusturulan kumeyi olusturan varl klar n ozellik vektorleriyle
binary OR yap larak yeni ozellik vektoru olusturulur. Ei ve Ej
kumelenecek varl klar, fi ve fj ise bu varl klar n ozellik vektorleri, fij de
yeni ozellik vektoru olmak kayd yla fij = fi [ fj seklinde olusturulur.
(c) Yeni uretilen kume varl k olarak degerlendirilerek diger varl klarala olan
bezerligi hesaplan r,
Tekrarla</p>
        <p>Gerekli say da kume olusturulana veya tek kume kalana kadar
4.2</p>
      </sec>
      <sec id="sec-4-2">
        <title>LIMBO</title>
        <p>
          WCA'ya gore cesitli temel farklar vard r. Bunlardan birincisi, dogruluk kayb
indirgenirken hesaplama ihtiyaclar n en aza indirmek icin Summary Artifacts
Sekil 2. Weighted Combined Algorithm WCA ile Combined Algorithm (CA) Fark
3b. Yeni olusturulan kumeyi olusturan varl klar n ozellik vektorleriyle binary
OR yap larak yeni ozellik vektoru olusturulur. Ei ve Ej kumelenecek
varl klar, fi ve fj ise bu varl klar n ozellik vektorleri, fij yeni olusturulacak
olan ozellik vektoru, Ei nin varl k say s ni ve Ej nin varl k say s nj olarak
tan mlan rsa;
fij = (fi + fj )=(ni + nj ) seklinde olusturulur.
(SA) denen metod kullan lmas d r. I_kincisi, birlestirilmis kume icin yeni ozellik
vektoru olusturulmas ve son olarak ise bilgi kayb olcusu (Information Loss) ile
varl klar aras benzerliklerin c kar lmas d r [
          <xref ref-type="bibr" rid="ref29">29</xref>
          ].
        </p>
        <p>
          Kumeleme islemi s ras ndaki bilgi kayb n en aza indirgemeyi amaclayan
AIB algoritmas na dayal olarak LIMBO algoritmas gelistirilmis ve temel amac
olarak, aktar labilen maksimum seviyede bilginin bir sonraki islem icin aktar lmas n
temel al nm st r [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ]. Algoritman n WCA ile olan fark Sekil 3'te [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ] gosterilmistir.
        </p>
        <p>Sekil 3. Hiyerarsik kumeleme icin LIMBO.
1. Her bir varl k Ei bilesenleri fi1; fi2:::fin olan fi ozellik vektorleri c kar larak
tan mlan r.
2. Her bir varl k aras ndaki benzerlik hesaplan r.
3. Asag daki ad mlar tekrar edilir;
(a) En cok benzeyenleri kumelenir,
(b) Yeni olusturulan kumeyi olusturan varl klar n ozellik vektorleriyle
binary OR yap larak yeni ozellik vektoru olusturulur. Ei ve Ej
kumelenecek varl klar, fi ve fj ise bu varl klar n ozellik vektorleri, fij de
yeni ozellik vektoru olmak kayd yla fij = fi [ fj seklinde olusturulur.
(c) Yeni uretilen kume varl k olarak degerlendirilerek diger varl klarala olan
bezerligi hesaplan r,
Tekrarla</p>
        <p>Gerekli say da kume olusturulana veya tek kume kalana kadar</p>
        <p>
          Normalized WCA ve LIMBO s n f algoritmalar ile geleneksel kumeleme
algoritmalar kars last r ld g nda WCA ve LIMBO'nun kumeleme isleminde daha
az ozellik bilgisi kaybettigi, ayr ca daha az key secimler yapt g , bundan dolay
da daha iyi sonuclar al nd g testler sonucu gorulmustur [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ].
4.3
        </p>
      </sec>
      <sec id="sec-4-3">
        <title>Kumeleme Algoritmalar ve Beraberinde Kullan lan Benzerlik</title>
      </sec>
      <sec id="sec-4-4">
        <title>Degerlerinin Analizi</title>
        <p>
          Arast rmac lar taraf ndan, yaz l m kumeleme kalitesinin art r lmas amac yla;
algoritmalar, benzerlik degerleri ve ozellikler kars last r larak analiz edilmistir. Bu
kapsamda ilk hiyerarsik kumleme yonteminin yaz l m sistemlerine uyarlanmas ,
1985 y l nda Hutchens ve Basili taraf ndan yap lm s ve Single Linkage
Algorithm(SLA) sunulmustur [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ]. Cal smalar na gore Recomputed binding, Expected
binding, ve Weighted binding algoritmalar na gore kucuk test sistemlerinde SLA
daha basar l sonuclar verirken Recomputed binding algoritmas buyuk
sistemlerde daha iyi sonuc vermektedir [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ].
        </p>
        <p>
          Anquetil and Lethbridge taraf ndan, formal-nonformal ozellikler beraber
kullan lm s [
          <xref ref-type="bibr" rid="ref23">23</xref>
          ] ve Jaccard-Sorenson-Dice benzerlik degerlerinin en iyi sonuclar
verdigi belirtilmistir. Bunun yan nda Complete linkage algortimas n n (CLA),
SLA'ya gore daha iyi sonuclar elde ettigi belirtilmistir. Cesitli cal smalar ile
CLA algoritmas n n daha iyi sonuclar verdigi desteklenmistir [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ].
        </p>
        <p>
          Saeed ve digerleri hiyerarsik kumeleme icin Combined Algorithm (CA)
sunmustur [
          <xref ref-type="bibr" rid="ref28">28</xref>
          ]. Maqbool and Babri kumeleme kalitesinin, varl klar n kume icerisinde
eristikleri ozelliklerle degerlendirilerek daha iyilenebilecegini, Weighted combined
algorithm (WCA) sunarak gostermistir [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ]. I_ncelenen CA, WCA, SLA, CLA,
Weighted linkage algorithm (WLA) ve Unweighted linkage algorithm (ULA)
icerisinde WCA ile elde edilen sonuclar n digerlerine gore daha iyi oldugu
sunulmustur. Ayr ca WCA'n n CLA'ya gore otomatik isimlendirme isleminde daha
dengeli ve anlas labilir mimari yap da oldugu, sunulan isimlendirme semalar n n
kullan lmas yla yap lan analizde tespit edilmistir [
          <xref ref-type="bibr" rid="ref30">30</xref>
          ].
        </p>
        <p>
          Tzerpos cal smas nda Mojo metric sunarak, ayn sistemdeki bolumlemeler
aras ndaki mesayi olcmeyi amaclam s ve kararl l klar n incelemistir [
          <xref ref-type="bibr" rid="ref26">26</xref>
          ]. Yapt g
kars last rmada ACDC, SLA ve CLA aras nda, en kararl olan SLA iken en
karars z olan ACDC olarak tespit etmistir.
        </p>
        <p>
          Kumeleme islemi esnas nda bilgi kayb n n en aza indirgenmesine dayal LIMBO
algoritmas sunulmus ve bu algoritma ile yap sal olmayan ozelliklerin, kullan sl
olup olmad klar n n ag rlakland rma ile olculmesi yaklas m incelenmistir [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ].
Linux, Mozilla ve Tobey sistemleri uzerinde LIMBO, SLA, CLA, WLA, ULA,
ACDC, NAHC, SAHC [
          <xref ref-type="bibr" rid="ref31">31</xref>
          ] algoritmalar kars last rmas na gore LIMBO diger
algoritmalarla ayn veya daha iyi sonuclar elde etmistir.
        </p>
        <p>
          Yap lan bir baska cal smada ise Bunch, ACDC, SLA ve CLA kars l st r lm s
olup, uzman degerlendirmesine gore Bunch ve CLA sonuclar n n daha uygun
olmas na ragmen ACDC ve SLA'n n daha kararl oldugu gozlemlenmistir [
          <xref ref-type="bibr" rid="ref32">32</xref>
          ].
5
        </p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Sonuc</title>
      <p>
        Bu cal sma ile; yaz l m mimarisi geri kazan m icin hiyerarsik kumeleme yonteminin
nas l, hangi parametrelerle kullan lmas gerektigi ve algoritma, olculerin
incelenmesikars last r lmas ile bu alana genel bir bak s yap lm st r. Bu nedenle alandaki
onemli cal smalardan baz lar temel referans kaynag olarak ele al nm st r [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
Boylece yaz l m mimarisi geri kazan m alan nda eksik olan kaynak eksikligi
doldurulmaya cal s lm st r.
      </p>
      <p>O ncelikli olarak kumelemenin anlas lmas icin algoritmalar ve olculer
sunulmustur. Ayr ca incelenen kars last rma cal smalar da sunularak yaz l m alan na
en uygun algoritma ve olculerin tespit edilmesi amaclanm st r. Ayn zamanda
kullan lan algoritma ve olculerin uyguland klar yaz l m karakteristiklerine gore
performans fark gosterdigi de goz ard edilmemelidir. Gelecek cal smalarda yaz l m
mimarisi geri kazan m alan nda, kumeleme ile daha iyi sonuclar elde edilmesi
amac yla, buyuk olcekli yaz l mlar cesitli algoritmalar ve mesafe olculeriyle analiz
edilerek sunulacakt r.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>C.</given-names>
            <surname>Sun</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Zhou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Cao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Jin</surname>
          </string-name>
          , C. Liu,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Shen</surname>
          </string-name>
          ,
          <article-title>"ReArchJBs: a tool for automated software architecture recovery of JavaBeans-based applications,"</article-title>
          <source>Proc. Software Engineering Conference</source>
          , pp.
          <fpage>270</fpage>
          -
          <lpage>280</lpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>H.</given-names>
            <surname>Sajnani</surname>
          </string-name>
          ,
          <article-title>"Automatic software architecture recovery: A machine learning approach"</article-title>
          <source>Proc. 20th International Conference on Program Comprehension (ICPC)</source>
          , pp.
          <fpage>265</fpage>
          -
          <lpage>268</lpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          <string-name>
            <surname>3. H.M. Fahmy</surname>
            ,
            <given-names>R.C.</given-names>
          </string-name>
          <string-name>
            <surname>Holt</surname>
            , and
            <given-names>J.R.</given-names>
          </string-name>
          <string-name>
            <surname>Cordy</surname>
          </string-name>
          ,
          <article-title>"Wins and Losses of Algebraic Transformations of Software Architectures,"</article-title>
          <source>Proc. 16th Ann. Int'l Conf</source>
          .
          <source>Automated Software Eng.</source>
          , pp.
          <fpage>51</fpage>
          -
          <lpage>62</lpage>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>T.</given-names>
            <surname>Lutellier</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Chollak</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Garciaz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Tan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Rayside</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Medvidovicy</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Kroeger</surname>
          </string-name>
          ,
          <article-title>"Comparing Software Architecture Recovery Techniques Using Accurate Dependencies"</article-title>
          , https://ece.uwaterloo.ca
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>D.H.</given-names>
            <surname>Hutchens</surname>
          </string-name>
          and
          <string-name>
            <given-names>V.R.</given-names>
            <surname>Basili</surname>
          </string-name>
          ,
          <article-title>"System Structure Analysis: Clustering with Data Bindings,"</article-title>
          <source>IEEE Trans. Software Eng.</source>
          , vol.
          <volume>11</volume>
          , no.
          <issue>8</issue>
          , pp.
          <fpage>749</fpage>
          -
          <lpage>757</lpage>
          , Aug.
          <year>1985</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>R.W.</given-names>
            <surname>Schwanke</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.A.</given-names>
            <surname>Plato</surname>
          </string-name>
          ,
          <article-title>"Cross References Are Features,"</article-title>
          <source>Proc. Int'l Conf. Software Con guration Management</source>
          , pp.
          <fpage>86</fpage>
          -
          <lpage>95</lpage>
          ,
          <year>1989</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>D.</given-names>
            <surname>Pollet</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ducasse</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Poyet</surname>
          </string-name>
          , I. Alloui,
          <string-name>
            <given-names>S.</given-names>
            <surname>Cimpan</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H.</given-names>
            <surname>Verjus</surname>
          </string-name>
          ,
          <article-title>"Towards a Process-Oriented Software Architecture Reconstruction Taxonomy,"</article-title>
          <source>Proc. 11th European Conf. Software Maintenance and Reeng</source>
          ., pp.
          <fpage>137</fpage>
          -
          <lpage>148</lpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>A.K. Jain</surname>
            ,
            <given-names>M.N.</given-names>
          </string-name>
          <string-name>
            <surname>Murty</surname>
            , and
            <given-names>P.J.</given-names>
          </string-name>
          <string-name>
            <surname>Flynn</surname>
          </string-name>
          ,
          <article-title>"Data Clustering:A Review," ACM Computing Surveys</article-title>
          , vol.
          <volume>13</volume>
          , no.
          <issue>3</issue>
          , pp.
          <fpage>264</fpage>
          -
          <lpage>323</lpage>
          , Sept.
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>O.</given-names>
            <surname>Maqbool</surname>
          </string-name>
          and
          <string-name>
            <given-names>H.A.</given-names>
            <surname>Babri</surname>
          </string-name>
          ,
          <article-title>"Hierarchical Clustering for Software Architecture Recovery,"</article-title>
          <source>IEEE Trans. Software Eng.</source>
          , vol.
          <volume>33</volume>
          , no.
          <issue>11</issue>
          , pp.
          <fpage>759</fpage>
          -
          <lpage>780</lpage>
          , Nov.
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>K.</given-names>
            <surname>Sartipi</surname>
          </string-name>
          and
          <string-name>
            <given-names>K.</given-names>
            <surname>Kontogiannis</surname>
          </string-name>
          ,
          <article-title>"A User-Assisted Approach to Component Clustering,"</article-title>
          <source>J. Software Maintenance and Evolution: Research and Practice</source>
          , vol.
          <volume>15</volume>
          , no.
          <issue>4</issue>
          , pp.
          <fpage>265</fpage>
          -
          <lpage>295</lpage>
          , July-Aug.
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <given-names>B.S.</given-names>
            <surname>Mitchell</surname>
          </string-name>
          and
          <string-name>
            <given-names>S.</given-names>
            <surname>Mancoridis</surname>
          </string-name>
          ,
          <article-title>"On the Automatic Modularization of Software Systems Using the Bunch Tool,"</article-title>
          <source>IEEE Trans. Software Eng.</source>
          , vol.
          <volume>32</volume>
          , no.
          <issue>3</issue>
          , pp.
          <fpage>193</fpage>
          -
          <lpage>208</lpage>
          , Mar.
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <given-names>A.</given-names>
            <surname>Shokoufandeh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Mancoridis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Denton</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Maycock</surname>
          </string-name>
          ,
          <article-title>"Spectral and MetaHeuristic Algorithms for Software Clustering,"</article-title>
          <source>J. Systems and Software</source>
          , vol.
          <volume>77</volume>
          , no.
          <issue>3</issue>
          , pp.
          <fpage>213</fpage>
          -
          <lpage>223</lpage>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <given-names>M.</given-names>
            <surname>Shtern</surname>
          </string-name>
          and
          <string-name>
            <given-names>V.</given-names>
            <surname>Tzerpos</surname>
          </string-name>
          ,
          <article-title>"A Framework for the Comparison of Nested Software Decompositions,"</article-title>
          <source>Proc. 11th IEEE Working Conf. Reverse Eng</source>
          ., pp.
          <fpage>284</fpage>
          -
          <lpage>292</lpage>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <given-names>O.</given-names>
            <surname>Maqbool</surname>
          </string-name>
          and
          <string-name>
            <given-names>H.A.</given-names>
            <surname>Babri</surname>
          </string-name>
          ,
          <article-title>"The Weighted Combined Algorithm: A Linkage Algorithm for Software Clustering,"</article-title>
          <source>Proc. Eighth European Conf. Software Maintenance and Reeng</source>
          ., pp.
          <fpage>15</fpage>
          -
          <lpage>24</lpage>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <given-names>P.</given-names>
            <surname>Andritsos</surname>
          </string-name>
          and
          <string-name>
            <given-names>V.</given-names>
            <surname>Tzerpos</surname>
          </string-name>
          ,
          <article-title>"Information-Theoretic Software Clustering,"</article-title>
          <source>IEEE Trans. Software Eng.</source>
          , vol.
          <volume>31</volume>
          , no.
          <issue>2</issue>
          , pp.
          <fpage>150</fpage>
          -
          <lpage>165</lpage>
          , Feb.
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <given-names>O</given-names>
            <surname>'Brien</surname>
          </string-name>
          ,
          <string-name>
            <surname>L.</surname>
          </string-name>
          ,
          <article-title>"Dali: A Software Architecture Reconstruction Workbench"</article-title>
          , Software Engineering Institute, Carnegie Mellon University, May
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>P.J. Finnigan</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Holt</surname>
            , I. Kalas,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Kerr</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          <string-name>
            <surname>Kontogiannis</surname>
          </string-name>
          , et al.
          <article-title>"The software bookshelf"</article-title>
          .
          <source>IBM Systems Journal</source>
          ,
          <volume>36</volume>
          (
          <issue>4</issue>
          ):
          <volume>564</volume>
          {
          <fpage>593</fpage>
          ,
          <string-name>
            <surname>November</surname>
          </string-name>
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>18. Imagix4D, http://ww.imagix.comImagix Corp.</mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19. Bauhaus group,
          <article-title>"Tour de Bauhaus"</article-title>
          , http://www.Bauhausstuttgart. de/demo/index.html.
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <given-names>R.</given-names>
            <surname>Naseem</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Maqbooly</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Muhammad</surname>
          </string-name>
          ,
          <article-title>"Improved Similarity Measures For Software Clustering</article-title>
          ,
          <source>15th European Conference on Software Maintenance and Reengineering (CSMR)"</source>
          ,pp.
          <fpage>45</fpage>
          -
          <lpage>54</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <given-names>J.</given-names>
            <surname>Davey</surname>
          </string-name>
          and
          <string-name>
            <given-names>E.</given-names>
            <surname>Burd</surname>
          </string-name>
          ,
          <article-title>"Evaluating the Suitability of Data Clustering for Software Remodularization,"</article-title>
          <source>Proc. Seventh Working Conf. Reverse Eng</source>
          ., pp.
          <fpage>268</fpage>
          -
          <lpage>277</lpage>
          ,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <given-names>B.S.</given-names>
            <surname>Everitt</surname>
          </string-name>
          and
          <string-name>
            <given-names>S.</given-names>
            <surname>Landau</surname>
          </string-name>
          ,
          <article-title>"Cluster Analysis"</article-title>
          , fourth ed.
          <source>Arnold Publishers</source>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <given-names>N.</given-names>
            <surname>Anquetil</surname>
          </string-name>
          and
          <string-name>
            <given-names>T.C.</given-names>
            <surname>Lethbridge</surname>
          </string-name>
          ,
          <article-title>"Experiments with Clustering as a Software Remodularization Method,"</article-title>
          <source>Proc. Sixth Working Conf. Reverse Eng</source>
          ., pp.
          <fpage>235</fpage>
          -
          <lpage>255</lpage>
          ,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <given-names>S.</given-names>
            <surname>Mancoridis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Mitchell</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Chen</surname>
          </string-name>
          , and
          <string-name>
            <given-names>E.</given-names>
            <surname>Gansner</surname>
          </string-name>
          ,
          <article-title>"Bunch: A Clustering Tool for the Recovery and Maintenance of Software System Structures,"</article-title>
          <source>Proc. Int'l Conf. Software Maintenance</source>
          , pp.
          <fpage>50</fpage>
          -
          <lpage>62</lpage>
          ,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <given-names>Z.</given-names>
            <surname>Wen</surname>
          </string-name>
          and
          <string-name>
            <given-names>V.</given-names>
            <surname>Tzerpos</surname>
          </string-name>
          ,
          <article-title>"</article-title>
          <source>Software Clustering Based on Omnipresent Object Detection," Proc. 13th IEEE Int'l Workshop Program Comprehension</source>
          , pp.
          <fpage>269</fpage>
          -
          <lpage>278</lpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26.
          <string-name>
            <given-names>V.</given-names>
            <surname>Tzerpos</surname>
          </string-name>
          ,
          <article-title>"Comprehension-Driven Software Clustering,"</article-title>
          <source>PhD dissertation</source>
          , Univ. of Toronto,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          27.
          <string-name>
            <given-names>P.</given-names>
            <surname>Tonella</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Ricca</surname>
          </string-name>
          , E. Pianta, and
          <string-name>
            <given-names>C.</given-names>
            <surname>Girardi</surname>
          </string-name>
          ,
          <article-title>"Using Keyword Extraction for Web Site Clustering,"</article-title>
          <source>Proc. Fifth Int'l Workshop Web Site Evolution</source>
          , pp.
          <fpage>41</fpage>
          -
          <lpage>48</lpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          28.
          <string-name>
            <surname>M. Saeed</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          <string-name>
            <surname>Maqbool</surname>
            ,
            <given-names>H.A.</given-names>
          </string-name>
          <string-name>
            <surname>Babri</surname>
            ,
            <given-names>S.M.</given-names>
          </string-name>
          <string-name>
            <surname>Sarwar</surname>
            , and
            <given-names>S.Z.</given-names>
          </string-name>
          <string-name>
            <surname>Hassan</surname>
          </string-name>
          ,
          <article-title>"Software Clustering Techniques and the Use of the Combined Algorithm,"</article-title>
          <source>Proc. Seventh European Conf. Software Maintenance and Reeng</source>
          ., pp.
          <fpage>301</fpage>
          -
          <lpage>306</lpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          29.
          <string-name>
            <surname>J. Garcia</surname>
            , I. Ivkovic,
            <given-names>N.</given-names>
          </string-name>
          <string-name>
            <surname>Medvidovic</surname>
          </string-name>
          ,
          <article-title>"A Comparative Analysis of Software Architecture Recovery Techniques"</article-title>
          ,
          <source>28th International Conference on Automated Software Engineering (ASE)</source>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          30.
          <string-name>
            <given-names>O.</given-names>
            <surname>Maqbool</surname>
          </string-name>
          and
          <string-name>
            <given-names>H.A.</given-names>
            <surname>Babri</surname>
          </string-name>
          ,
          <article-title>"</article-title>
          <source>Automated Software Clustering: An Insight Using Cluster Labels," J. Systems and Software</source>
          , vol.
          <volume>79</volume>
          , no.
          <issue>11</issue>
          , pp.
          <fpage>1632</fpage>
          -
          <lpage>1648</lpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          31.
          <string-name>
            <given-names>B.S.</given-names>
            <surname>Mitchell</surname>
          </string-name>
          ,
          <article-title>"A Heuristic Search Approach to Solving the Software Clustering Problem,"</article-title>
          <source>PhD dissertation</source>
          , Drexel Univ.,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          32.
          <string-name>
            <surname>J. Wu</surname>
            ,
            <given-names>A.E.</given-names>
          </string-name>
          <string-name>
            <surname>Hassan</surname>
            , and
            <given-names>R.C.</given-names>
          </string-name>
          <string-name>
            <surname>Holt</surname>
          </string-name>
          ,
          <article-title>"Comparison of Clustering Algorithms in the Context of Software Evolution,"</article-title>
          <source>Proc. Int'l Conf. Software Maintenance</source>
          , pp.
          <fpage>525</fpage>
          -
          <lpage>535</lpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>