Dergiler / Bilişim Teknolojileri Dergisi / 2020 / Cilt: 13 - Sayı: 1

Konvolüsyonel Sinir Ağları İle Kod Klonlarının Tespiti

Code Clone Detection with Convolutional Neural Networks

Sayfa
1–12
DOI
—

Özet

Yazılım geliştirirken kopyalama ve yeniden kullanma yoluyla oluşturulan benzer veya aynı kod parçaları, kod klonları olarak adlandırılır. Bu klonları tespit etmek için pek çok çalışma yapılmış olsa da, çalışmalar genellikle katar karşılaştırma tekniklerini kullanılmakta ve çok azı popüler araştırma alanlarından olan derin öğrenmeden faydalanmaktadır. Bu makale, konvolüsyonel sinir ağı olarak adlandırılan, popüler ve başarılı görüntü sınıflandırma yöntemine dayanan yeni bir yaklaşım önermektedir. Bu yöntem, görüntü dosyalarını oluşturmak için her aday klon çiftini sembollere ayırır. Daha sonra, konvolüsyonel sinir ağı bu görüntü verilerini “klon” veya “klon değil” etiketleriyle sınıflandırmak için kullanılır. Ağı eğitmek ve test etmek için altı milyon java metodu içeren bir veri tabanından örneklerler seçilerek kullanılmıştır. Sonuç olarak, bu yaklaşım metot bazındaki klonları % 95'lik bir doğrulukla etkili bir şekilde tespit etmektedir.

Abstract

Similar or identical code portions which are generated by copying and reusing code portions within the source code are named as code clones. While so many works have been conducted to detect these clones, they generally use string comparison techniques and very few of them take advantage of popular learning based approaches, such as deep learning. This paper proposes a new approach based on a popular and successful image classification technique named as convolutional neural network. It simply tokenizes each candidate clone pair in order to generate image files. Then, convolutional neural network is used to classify these image data with labels “clone” and “not clone”. In order to train and test the network, clone and not clone pairs are chosen from a public database including six million methods. As a result, the approach gives 99% accuracy, effectively detects clones and not clones with 2-5% false alarms rates at method granularity.