Geri Dön

Kod kusurlarının tespitinde makine öğrenmesi tekniklerinin kullanılması ve karşılaştırmalı performans analizi

Application and comparative performance analysis of machine learning techniques for code smell detection

  1. Tez No: 944667
  2. Yazar: ARMAN YAVUZ
  3. Danışmanlar: PROF. DR. OYA KALIPSIZ
  4. Tez Türü: Yüksek Lisans
  5. Konular: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol, Computer Engineering and Computer Science and Control
  6. Anahtar Kelimeler: Belirtilmemiş.
  7. Yıl: 2025
  8. Dil: Türkçe
  9. Üniversite: Yıldız Teknik Üniversitesi
  10. Enstitü: Fen Bilimleri Enstitüsü
  11. Ana Bilim Dalı: Bilgisayar Mühendisliği Ana Bilim Dalı
  12. Bilim Dalı: Bilgisayar Mühendisliği Bilim Dalı
  13. Sayfa Sayısı: 70

Özet

Kod kusurları, yazılım geliştirme sürecinde dikkatsizlik, yanlış mantık, programlama dili karmaşıklığı, yazılım ekibi içerisinde iletişim eksikliği, zaman baskısı, yetersiz bilgi ve deneyim etkenleri sebebiyle, yazılım kodunda bakımı ve anlaşılırlığı zorlaştıran hatalı yaklaşımlardır. Yazılımın beklenen işlevselliğini engellemekte, istenmeyen sonuçlara yol açabilmektedirler. Kusurlu kod parçaları, yazılım projesinin teknik borcuna olumsuz katkıda bulunmaktadırlar. Kod kusurlarının tespitinde manuel, kural tabanlı, şablon ve görselleştirme tabanlı olmak üzere birbirinden farklı yaklaşımlar izlenmektedir. Kod kusurlarının tespitinde makine öğrenmesi tekniklerinden yararlanılması ise, özellikle son yıllarda literatürde üzerine çok sayıda çalışma gerçekleştirilmiş bir yöntemdir. Makine öğrenmesi ile tespit; kural tabanlı yaklaşımlarda gerçekleştirilen eşik değer belirlenmesinin öznelliğinden ve veri dağılımından kaynaklanan olumsuzluklardan etkilenmemektedir. Literatürde bulunan makine öğrenmesi ile tespit çalışmalarının çoğunda model eğitimi amacıyla kullanılan veri seti, Java programlama dilinde yazılan projelerdeki sınıf ve nesne örneklerinden oluşmaktadır. Literatürde C++ programlama dilinde yazılan projelerden oluşturulan veri seti üzerinde makine öğrenmesi yöntemleri ile kod kusurlarının tespitine yönelik bir çalışma bulunmaması, tez çalışmasının özgün değerini oluşturmaktadır. Tez çalışmasının amacı, C++ kodundaki kusurların, makine öğrenmesi yöntemleriyle etkili bir şekilde tespit edilebileceğini kanıtlamaktır. Bu kapsamda, C++ programlama dilinde yazılmış projelerden kusurlu ve kusursuz sınıf örnekleri ile bu sınıf örneklerine ait çeşitli nesneye dayalı kod metrikleri, bir C++ statik kod analiz aracı kullanılarak elde edilmiştir. Elde edilen verilerle etiketli bir veri seti oluşturulmuş ve bu veri seti üzerinde çeşitli makine öğrenmesi algoritmaları kullanılarak modeller eğitilmiştir. Son olarak, birden fazla makine öğrenmesi modelinin tahmin performansları çeşitli tahmin performans ölçütleri referans alınarak hesaplanmış ve karşılaştırılmıştır.

Özet (Çeviri)

Code smells are faulty approaches in software development that make maintenance and readability difficult, resulting from factors such as carelessness, incorrect logic, complexity of programming languages, lack of communication within the software team, time pressure, insufficient knowledge and experience. These smells can hinder the expected functionality of the software and lead to undesired outcomes. Faulty code fragments contribute negatively to the technical debt of a software project. In detecting code smells, various approaches such as manual, rule-based, template-based, and visualization-based methods are employed. The use of machine learning techniques for smell detection has been a method extensively studied in the literature, particularly in recent years. Machine learning-based detection is not influenced by the subjectivity of threshold determination or negative effects stemming from data distribution, which are common in rule-based approaches. In most of the machine learning-based smell detection studies found in the literature, the dataset used for model training consists of class and object examples from projects written in the Java programming language. The lack of a study on detecting code smells using machine learning methods on datasets created from projects written in the C++ programming language is what provides uniqueness to this thesis work. Aim of the thesis is to demonstrate that code smells in C++ code can be effectively detected using machine learning methods. In this scope, smelly and non-smelly class examples from projects written in the C++ programming language, along with various object-oriented code metrics of these class examples are obtained using a C++ static code analysis tool. From the obtained data, a labeled dataset is created, and models are trained on this dataset using various machine learning algorithms. Prediction performances of multiple machine learning models are calculated and compared based on various prediction performance metrics.

Benzer Tezler

  1. Oto-kodlayıcı mimarisi kullanarak mermer yüzey anomali tespiti

    Marble surface anomaly detection using autoencoder architecture

    MUHAMMAD YAHYA ABDULLAH

    Yüksek Lisans

    Türkçe

    Türkçe

    2024

    Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolSakarya Üniversitesi

    Bilgisayar ve Bilişim Mühendisliği Ana Bilim Dalı

    PROF. DR. CEMİL ÖZ

  2. Yazılım hata kestirim yaklaşımları

    Software defect prediction approaches

    ÖZKAN SARI

    Yüksek Lisans

    Türkçe

    Türkçe

    2015

    Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolYıldız Teknik Üniversitesi

    Bilgisayar Mühendisliği Ana Bilim Dalı

    PROF. DR. OYA KALIPSIZ

  3. Geçici koruma kapsamındaki Suriyeli bireyler üzerine bir inceleme: Avcılar örneği

    A study on Syrian individuals under temporary protection in Turkey: The case of Avcılar

    GÜLDER KORKMAZ

    Yüksek Lisans

    Türkçe

    Türkçe

    2022

    Sosyal HizmetÜsküdar Üniversitesi

    Sosyal Hizmet Ana Bilim Dalı

    DR. ÖĞR. ÜYESİ ZÜLFİKAR ÖZKAN

  4. Impact of code review process smells on code smells

    Kod gözden geçirme sürecindeki kötü uygulamaların kod kusurları üzerindeki etkisi

    ERDEM TUNA

    Yüksek Lisans

    İngilizce

    İngilizce

    2023

    Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrolİhsan Doğramacı Bilkent Üniversitesi

    Bilgisayar Mühendisliği Ana Bilim Dalı

    DR. ÖĞR. ÜYESİ ERAY TÜZÜN

  5. Yazılım ölçütleri üzerinden beyin metot ve beyin sınıf kod kusurlarının tespiti

    Detection of brain method and brain class code smells through software metrics

    DENİZ NACAR

    Yüksek Lisans

    Türkçe

    Türkçe

    2019

    Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolYıldız Teknik Üniversitesi

    Bilgisayar Mühendisliği Ana Bilim Dalı

    DR. ÖĞR. ÜYESİ YUNUS EMRE SELÇUK