Geri Dön

Nesneye dayalı yazılımlarda tasarım düzeyinde klonların belirlenmesi

Detection of design clones in object-oriented software systems

  1. Tez No: 363711
  2. Yazar: UMUT TEKİN
  3. Danışmanlar: DOÇ. DR. FEZA BUZLUCA
  4. Tez Türü: Doktora
  5. Konular: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol, Computer Engineering and Computer Science and Control
  6. Anahtar Kelimeler: Belirtilmemiş.
  7. Yıl: 2014
  8. Dil: Türkçe
  9. Üniversite: İstanbul Teknik Üniversitesi
  10. Enstitü: Fen Bilimleri Enstitüsü
  11. Ana Bilim Dalı: Bilgisayar Mühendisliği Ana Bilim Dalı
  12. Bilim Dalı: Belirtilmemiş.
  13. Sayfa Sayısı: 152

Özet

Yazılımlardaki kopya veya belli bir ölçüte göre benzer yapılar yazılım klonları olarak adlandırılmaktadır. Bu tür klonların hızlı ve doğru biçimde belirlenebilmesi, yazılımların tasarımlarının anlaşılması ve iyileştirilmesi (tekrar eden yapıların kütüphanelerde toplanması, sık tekrarlanan tasarım hatlarının düzeltilmesi, lisans ihlallerinin belirlenmesi) konularında yarar sağlamaktadır. Bu tez çalışması kapsamında nesneye dayalı yazılımların tasarımlarındaki klonların belirlenebilmesi için özgün bir yöntem geliştirilmiştir. Geliştirilen yöntem üç temel aşamadan oluşmaktadır. Birinci aşamada, nesneye dayalı yazılımların kodları analiz edilerek kodun soyut sözdizimi ağacı çıkartılmaktadır. Bu ağaç yardımıyla yazılımların üst düzey tasarımlarını temsil eden bir çizge modeli oluşturulmaktadır. Daha sonra, yöntemi hızlandırmak ve aynı yazılım içindeki klonları da bulabilmek amacıyla bir çizge bölmeleme algoritması kullanılarak yazılımın çizge modeli uygun alt çizgelere bölünmektedir. Bölmeleme işlemi sırasında, nesneye dayalı yazılımlar için oldukça önemli ve değiştirilmesi zor olan kalıtım türü ilişkilerin kaybolmaması için bu ilişki tiplerine yüksek ağırlık atanarak, bölmeleme işlemi ağırlıklı biçimde gerçekleştirilmektedir. Üçüncü aşamada ise elde edilen parçalardan bir çizgeler kümesi oluşturulup, bu küme üzerine“sık görünen eş yapılı alt çizge”bulma algoritması uygulanmaktadır. Son aşamada elde edilen sık görünen eş yapılı alt çizgeler, üzerinde çalışılan yazılım veya yazılımların tasarımlarında bulunan tasarım klonlarının modellerini ifade etmektedirler. Çalışma kapsamında açık kaynak kodlu ve endüstriyel yazılımlar üzerinde yapılan deneyler, geliştirilen yöntem ile aynı yazılımın içindeki veya farklı yazılımlar arasındaki tasarım klonlarının belirlenebildiğini göstermiştir. Belirlenen bu tasarım klonlarının, kopyalama sonucu oluşanlarında genellikle kaynak kodları değiştirildiğinden sadece kod karşılaştırması yapan yöntemler ile belirlenmeleri mümkün değildir.

Özet (Çeviri)

Many software projects contain a significant number of software clones, which are duplicated parts of source code or design models. Identifying these design structures can help designers to understand the high-level architecture of the object-oriented software, discovering reusability possibilities and detecting repeated design flaws that require refactoring. This work proposes a sub-graph mining-based approach for detecting identical design structures in object-oriented systems. The proposed approach contains three main steps. In the first step, the AST (abstract syntax tree) of the source code of the system is analyzed and the design level of abstraction is created. Based on this abstraction, we construct a software model graph, in which classes, interfaces and templates of software constitute the vertices, and the relations between them form the directed edges. According to the importance of the relation type, we assign weight values to the edges of the graph. In the next step, we apply a graph partitioning algorithm to divide the directed and weighted software model graph into small pieces. Finally, in the last step, a sub-graph mining algorithm is applied to discover identical design structures in the generated software model. By analyzing several open-source and industrial projects, we evaluated our approach and discussed the results. The results show that we can detect many design clones within a project or between different projects even if the source codes of the copied structures were changed.

Benzer Tezler

  1. Kavram haritaları modeli ile zeki öğretim sistemi tasarımı

    Intelligent tutoring system design using concept maps

    EMRAH DİKBIYIK

    Yüksek Lisans

    Türkçe

    Türkçe

    2013

    Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolMarmara Üniversitesi

    Elektronik-Bilgisayar Eğitimi Ana Bilim Dalı

    YRD. DOÇ. DR. BUKET DOĞAN

  2. FDDI tabanlı bir ağ sistemi için etkin bir gerçek zamanlı iletişim yapısının tasarımı

    Design of an efficient real time communication structure for an fddi based network system

    FEZA BUZLUCA

    Doktora

    Türkçe

    Türkçe

    1997

    Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrolİstanbul Teknik Üniversitesi

    Bilgisayar Bilimleri Ana Bilim Dalı

    PROF. DR. EMRE HARMANCI

  3. A learning-based method for detecting defective classes in object-oriented systems

    Nesneye dayalı yazılımlarda hatalı sınıfların öğrenme temelli yöntemle belirlenmesi

    ÇAĞIL BİRAY

    Yüksek Lisans

    İngilizce

    İngilizce

    2015

    Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrolİstanbul Teknik Üniversitesi

    Bilgisayar Mühendisliği Ana Bilim Dalı

    DOÇ. DR. FEZA BUZLUCA

  4. Nesneye dayalı programlama tabanlı yazılımlarda yazılım metrikleri kullanılarak yapısal kod klon tespiti

    Structural code clone detection on object oriented software using software metrics

    MUSTAFA KAPDAN

    Yüksek Lisans

    Türkçe

    Türkçe

    2014

    Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolYıldız Teknik Üniversitesi

    Bilgisayar Mühendisliği Ana Bilim Dalı

    YRD. DOÇ. DR. MEHMET SIDDIK AKTAŞ

  5. Nesneye dayalı yazılımları servis odaklı modüllere ayrıştırma için öğrenme tabanlı bir yöntem

    A learning-based method for extracting service-oriented modules in object-oriented software

    URAL ERDEMİR

    Doktora

    Türkçe

    Türkçe

    2014

    Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrolİstanbul Teknik Üniversitesi

    Bilgisayar Bilimleri Ana Bilim Dalı

    DOÇ. DR. FEZA BUZLUCA