Yazılım Güvenliğinde Derin Öğrenme Tabanlı Kaynak Kod Analizi ve Uygun Kod Önerimi


Tezin Türü: Doktora

Tezin Yürütüldüğü Kurum: Eskişehir Osmangazi Üniversitesi, Fen Bilimleri Enstitüsü, Bilgisayar Yazılımı Bilim Dalı, Türkiye

Tezin Onay Tarihi: 2023

Tezin Dili: Türkçe

Öğrenci: YUSUF KARTAL

Danışman: Kemal Özkan

Özet:

Modern kod incelemesi, güvenli ˘gi sa ˘gladı ˘gı, hataları erken tespit etti ˘gi ve

kod kalitesini iyile¸stirdi ˘gi için yazılım geli¸stirme süreçlerinde kritik bir adımdır.

Ancak, manuel incelemeler zaman alıcı ve güvenilmez olabilmektedir. Otomatik

kod incelemesi bu sorunları çözebilir. Kod inceleme yorumlarını önermek için

önerilmi¸s derin ö ˘grenme yöntemleri olsa da, bunların e ˘gitilmesi ve çalı¸stırılması

maliyetlidir. Bunun yerine, otomatik kod incelemesi için bilgi eri¸sim tabanlı

yöntemler verimlilik, etkililik ve esneklik açısından umut verici sonuçlar

sergilemektedir. Ana hedef, otomatik kod incelemede en iyi sonuçları veren

vektöre dönü¸stürme yöntemi ile benzerlik yönteminin optimal kombinasyonunu

belirlemek ve böylece bilgi eri¸sim tabanlı yöntemlerin performansını ölçmektir.

Ayrıca ön i¸slemlerin modellerin ba¸sarısı üzerindeki etkisini incelemek de hedefler

arasında bulunmaktadır. Önceki ara¸stırmalardan (TF-IDF ve Bag-of-Words) farklı

olan birden fazla vektörle¸stirme yöntemi (Word2Vec, Doc2Vec ve Transformer) ve

benzerlik yöntemi (Kosinüs, Öklid ve Manhattan) kaynak kod metinleri arasındaki

anlamsal benzerlikleri belirlemek için çalı¸smaya dahil edilmi¸stir. BLUE, METEOR

ve ROUGE-L gibi standart metrikleri kullanarak bu yöntemlerin performansı

de ˘gerlendirilmi¸s ve modellerin çalı¸sma süreleri de sonuçlara dahil edilmi¸stir. Elde

edilen sonuçlara göre Transformer modeli tüm standart metriklerde ve benzerlik

ölçümlerinde son çalı¸smalara göre daha iyi performans göstermektedir. Ayrıca tam

e¸sle¸sme sa ˘glamada %19,1’lik ve benzer öneriler sa ˘glamada %6,2’lik bir iyile¸sme

görülmektedir. Elde edilen bulgular, transformer modelinin, insanlar tarafından

yazılanlara çok benzeyen kod inceleme yorumları önermek için oldukça etkili ve

verimli bir yakla¸sım oldu ˘gunu, otomatik kod inceleme sistemleri geli¸stirmek için

de ˘gerli bilgiler sa ˘gladı ˘gını göstermektedir.