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ı: Belirtilmemiş.

Ö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. Profiling developers to predict vulnerable code changes

    Güvenlik açığı kod değişikliklerini öngörmek için geliştiricilerin profilini oluşturma

    TUĞÇE COŞKUN

    Yüksek Lisans

    İngilizce

    İngilizce

    2023

    Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrolİstanbul Teknik Üniversitesi

    Bilgisayar Mühendisliği Ana Bilim Dalı

    DOÇ. DR. AYŞE TOSUN KÜHN

  2. Novel deep learning based approaches for clutter removal and target detection in GPR

    Ynr'de kargaşa giderme ve hedef algılama için yeni derin öğrenme tabanlı yaklaşımlar

    YAVUZ EMRE KAYACAN

    Doktora

    İngilizce

    İngilizce

    2026

    Elektrik ve Elektronik Mühendisliğiİstanbul Teknik Üniversitesi

    Elektronik ve Haberleşme Mühendisliği Ana Bilim Dalı

    PROF. DR. IŞIN ERER

  3. Seçilen ekstraktif çözgenin etilasetat-etilalkol azeotropik sistemi üzerine etkisi

    Başlık çevirisi yok

    NAŞİDE FİDİ

    Yüksek Lisans

    Türkçe

    Türkçe

    1987

    Kimya MühendisliğiEge Üniversitesi

    Kimya Mühendisliği Ana Bilim Dalı

    DOÇ. DR. ERDEN ALPAY

  4. Altı yaş uygulaması karşısında okul müdürlerinin tavırları

    Başlık çevirisi yok

    MUALLA BİLGİN

    Yüksek Lisans

    Türkçe

    Türkçe

    1985

    Eğitim ve ÖğretimGazi Üniversitesi

    YRD. DOÇ. DR. MEHMET URAL

  5. Toz kakaoda tağşiş saptama metodları üzerinde çalışmalar

    Başlık çevirisi yok

    TOMRİS ALTUĞ

    Doktora

    Türkçe

    Türkçe

    1987

    Gıda MühendisliğiEge Üniversitesi

    Gıda Mühendisliği Ana Bilim Dalı

    YRD. DOÇ. DR. MERAL GÖNÜL