<!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>Tersine Mühendislik ile PL/SQL Programlarında Yazılım Mimari Tasarımının Elde Edilmesi</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Hasan Sözer</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Özyeğin Üniversitesi</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Hasan Sözer</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Özyeğin Üniversitesi</string-name>
        </contrib>
      </contrib-group>
      <abstract>
        <p>Software architecture design documentation is an important artifact that supports the understandability and maintainability of large and complex software systems. However, this documentation might be missing or obsolete. Clustering techniques have been utilized for reverse engineering the software architecture design of a software system based on its source code. These techniques provide high-level abstractions by automatically grouping software modules based on direct interdependencies among them; however, they cannot be directly applied for all types of systems. Software modules can be coupled for various reasons. For example, modules in PL/SQL programs can be coupled indirectly, due to commonly accessed database tables. In this seminar, we discuss a software architecture reconstruction approach for PL/SQL programs. In this approach, separate clustering results are obtained based on various types of dependencies. Then, cluster aggregation is used for combining these results to obtain the final clustering. The approach is applied on a large-scale legacy system from the telecommunications domain and the accuracy of the obtained results is confirmed by the software architects.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Özet: Büyük ve karmaşık yazılım sistemlerinin kolay anlaşılabilmeleri ve idame
edilebilmeleri için mimari tasarımları önem teşkil etmektedir. Ancak bu sistemlerin mimari
tasarımlarına ilişkin dokümanlar mevcut veya güncel olmayabilir. Bir sistemin mimari
seviyedeki organizasyonunu tersine mühendislik ile kaynak kodundan üretmek üzere
kümele teknikleri kullanılagelmiştir. Bu teknikler yazılım modülleri arasındaki
bağımlılıkları dikkate alarak bir gruplama önermektedir; ancak, tüm programlar için
maalesef doğrudan uygulanamamaktadır. Modüller birbirlerine farklı sebeplerle bağımlı
olabilirler. Örneğin, PL/SQL programlarında yer alan modüller, aynı veritabanı tablolarına
eriştiklerinden ötürü birbirlerine oldukça bağımlı olan ayrık prosedürler içerebilirler. Bu
seminerde, modüller arasındaki birden fazla ve farklı tipte bağımlılıkları dikkate alarak
sistemlerin mimari tasarımını elde etmek üzere önerilen bir yaklaşım anlatılmaktadır. Bu
yaklaşımda, öncelikle her bir bağımlılık türüne göre ayrı bir kümeleme
gerçekleştirilmektedir. Ardından, elde edilen kümeleme sonuçları bir araya getirilerek
nihai gruplamalar elde edilmektedir. Önerilen yaklaşım telekomünikasyon alanında
kullanılmakta olan büyük ölçekli yazılım sistemleri üzerine uygulanmıştır ve elde edilen
sonuçların doğruluğu yazılım mimarları tarafından teyit edilmiştir.</p>
    </sec>
  </body>
  <back>
    <ref-list />
  </back>
</article>