Platformlar Arası Kod Klon Tespiti
Loading...
Date
2023
Authors
Journal Title
Journal ISSN
Volume Title
Publisher
İstanbul Kültür Üniversitesi
Abstract
Günümüzün taleplerine ayak uydurmak için yazılım mimarisi sürekli olarak geliştirilmektedir. En modern mimari yöntemlerden biri olmasına rağmen, mikroservis mimarisini uygulamanın zorlukları vardır. Mikroservis mimarisinin çok dilli yapısı organizasyon kolaylığı sağlarken, kod klonlarının algılanmasını da zorlaştırır. Kod klonları, bir yazılım sistemindeki, sistemi korumak için gereken bakım zamanını ve ihtiyaç duyduğu kaynağı artıran, yinelenen kod parçalarını ifade eder. Yazılım geliştirme için kod klonlarının hem olumlu hem de olumsuz etkileri olabilir. Bu nedenle, herhangi bir kod gözden geçirme ve yeniden düzenleme öncesi klonların tanımlanması gerekir. Çok dilli mikroservislerde, platformlar arasında kod klonlarını tespit etmek, onları aynı platformda bulmaktan daha zorlu bir iştir. Bu araştırma, JavaScript, C, C# ve Java ile geliştirilen yazılım bileşenlerinin, birbirinin kod klonları olma derecesini analiz etmek için bir metodoloji sunmaktadır. Spesifik olarak, kodların ne kadar benzer olduğunu belirlemek için Kosinüs Benzerliği, Öklid Uzaklığı ve Manhattan Uzaklığı ölçümlerini kullandık. Deney yoluyla, https://atcoder.jp sitesinden kod kopyalarından oluşan bir veri kümesi topladık ve çeşitli yaklaşımlar için deneysel eşikler belirledik. Deneylerimiz, platformlar arası kod klonlarını tespit etmede en etkili yaklaşımın Manhattan Uzaklığı olduğunu (%91,59), bunu Öklid Uzaklığı (%91,08) ve son olarak da Kosinüs Benzerliği'nin (%72,83) izlediğini gösteriyor. Aynı platformda kod klonlarını tespit etmedeki başarı oranı ise Kosinüs Benzerliği %94,73, Öklid Uzaklığı %91,77 ve Manhattan Uzaklığı %91,15'tir. Bu tekniğin, yazılım geliştirme ekiplerinin çeşitli teknolojiler kullandığı ortamlarda ortaya çıkabilecek platformlar arası benzer kod örneklerini belirlemek için kullanılabileceği tespit edilmiştir.
Description
▪ Yüksek lisans tezi.
Keywords
Mikroservis, Mikroservis Mimarisi, Kod Klon Tespiti, Çok Dilli Programlama