Nesneye Dayalı Yazılımlarda Tasarım Düzeyinde Klonların Belirlenmesi

dc.contributor.advisor Buzluca, Feza tr_TR
dc.contributor.author Tekin, Umut tr_TR
dc.contributor.authorID 10032793 tr_TR
dc.contributor.department Bilgisayar Mühendisliği tr_TR
dc.contributor.department Computer Engineering en_US
dc.date 2014 tr_TR
dc.date.accessioned 2014-04-23 tr_TR
dc.date.accessioned 2015-04-08T11:50:00Z
dc.date.available 2015-04-08T11:50:00Z
dc.date.issued 2014-04-25 tr_TR
dc.description Tez (Doktora) -- İstanbul Teknik Üniversitesi, Fen Bilimleri Enstitüsü, 2014 tr_TR
dc.description Thesis (PhD) -- İstanbul Technical University, Institute of Science and Technology, 2014 en_US
dc.description.abstract 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. tr_TR
dc.description.abstract 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. en_US
dc.description.degree Doktora tr_TR
dc.description.degree PhD en_US
dc.identifier.uri http://hdl.handle.net/11527/540
dc.publisher Fen Bilimleri Enstitüsü tr_TR
dc.publisher Institute of Science and Technology en_US
dc.rights İTÜ tezleri telif hakkı ile korunmaktadır. Bunlar, bu kaynak üzerinden herhangi bir amaçla görüntülenebilir, ancak yazılı izin alınmadan herhangi bir biçimde yeniden oluşturulması veya dağıtılması yasaklanmıştır. tr_TR
dc.rights İTÜ theses are protected by copyright. They may be viewed from this source for any purpose, but reproduction or distribution in any format is prohibited without written permission. en_US
dc.subject Klon belirleme tr_TR
dc.subject Tasarım klonları tr_TR
dc.subject Nesneye dayalı tasarım tr_TR
dc.subject Clone detection en_US
dc.subject Design level clones en_US
dc.subject Object oriented design en_US
dc.title Nesneye Dayalı Yazılımlarda Tasarım Düzeyinde Klonların Belirlenmesi tr_TR
dc.title.alternative Detection Of Design Clones In Object-oriented Software Systems en_US
dc.type Thesis en_US
dc.type Tez tr_TR
Dosyalar
Lisanslı seri
Şimdi gösteriliyor 1 - 1 / 1
thumbnail.default.placeholder
Ad:
license.txt
Boyut:
3.14 KB
Format:
Plain Text
Açıklama