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
Yazar: MUSTAFA KAPDAN
Danışman: YRD. DOÇ. DR. MEHMET SIDDIK AKTAŞ
Yıldız Teknik Üniversitesi / Fen Bilimleri Enstitüsü / Bilgisayar Mühendisliği Ana Bilim Dalı
Derece: Yüksek Lisans, 2014
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control
Dizin: Açık kaynaklı yazılım = Open source software ; Bilgisayar yazılım dilleri = Computer software languages ; Bilgisayar yazılımları = Computer softwares ; Bilgisayar yazılımları = Computer softwares ; Mimari yazılımlar = Architectural softwares ; Nesneye dayalı yazılım = Object oriented software

Özet:
Gereksiz tekrarlanmış kodlar (klonlar) iyi dokümante edilmemiş ve bakımı zor olan kodlardır. Bu tip kodlarda, tespit edilen bir hatanın tüm tekrarlarda düzeltilmesi gerekir. Bu durum yazılım bakım maliyetlerini önemli ölçüde artırdığı gibi kodların okunabilirliği ve anlaşılabilirliği için daha fazla çaba sarf edilmesini de gerektirir.
 Günümüz literatüründe kod klon problemlerini azaltmak ya da engellemek için birçok teknik önerilmiştir. Bu tekniklerin odağında basit klon ve yapısal klon kod tespiti yer almaktadır. Klon kod'lar iki ana başlık altında incelenmektedir. Yazılım içerisinde kod parçacığının benzerliğinden kaynaklanan kod tekrarlamalarına basit klon adı verilirken, sistem mimarisi içerisinde, aynı yapı ile inşa edilmiş kodlara yapısal klon denmektedir.
 Basit klon tespit teknikleri, tekrarlanan kod parçacıklarına geniş bir açıdan bakamadıkları için, tasarım seviyesindeki olası tekrarlamalardan kaynaklanan yapısal kod klonlarını saptayamamaktadır. Buradaki eksikliği gidermeyi amaçlayan yapısal klon tespitleri ise, yazılımdaki üst seviye benzerliklerinin ortaya çıkartılması, yeniden kullanılabilirliğin artırılması ve yazılımın basitleştirilmesine odaklanmaktadır. 
Yapısal klon tespit teknikleri literatürde önerilen basit klon tekniklerinin kullanımına dayanmaktadır. Bu tez kapsamında metrik tabanlı olarak yapısal kod klon tespiti için en uygun metrikler ve bu metriklere dayalı olarak klon tespit metodolojisi önerilmektedir. Ortaya konan yöntembilimi gerçeklenerek, açık kaynaklı Sonar Kalite Ölçüm aracına eklenti olarak geliştirilmektedir. Yöntemin değerlendirilmesi yapılmakta ve sadece metriklere dayalı olarak yapısal kod klon tespitlerinde başarılı sonuçlar alındığı ortaya konulmaktadır.

Abstract:
Unnecessary repeated codes clones have not been well documented and are difficult to maintain. Detected bugs must be fixed in all occurences in these types of codes. Code clones may become an important problem in software development cycle and they must be fixed in all occurrences. This condition increases significantly software maintenance costs and required effort/duration for understanding the code.
 Many techniques have been proposed in order to minimize or prevent the code cloning problems in contemporary literature. The main focus of these techniques is on the detection of clones. In such studies, code cloning is studied under two main categories. While the repetition of code fragments arising from the code similarity is called as simple clone in the software, codes built with the same structure are called as structural clone in the system architecture.
 Simple clone detection techniques fail to determine the reasons of code repetition whether it is due to design or not, as they do not look at the code from a wider perspective for repetitive code snippets. Structural code clone detection techniques reveal the high level similarities, increase the reusability and simplify the software for filling the deficiency of simple clone detection techniques.
The structural code clone detection techniques are based on existing simple code clone techniques in the literature. In this thesis, the most suitable metrics for metric based structural code clone detection and detection methodology based on these metrics are proposed. The proposed methodology has been implemented as a plugin for Sonar that is an open source quality management tool.  In conclusion,this thesis evaluates the proposed methodology and proves that metric based structural code clone detection gives the successful results.