Tez No İndirme Tez Künye Durumu
792119
Application of data mining techniques in software engineering / Yazılım mühendisliğinde veri madenciliği tekniklerinin uygulanması
Yazar:ELİFE ÖZTÜRK KIYAK
Danışman: DOÇ. DR. DERYA BİRANT
Yer Bilgisi: Dokuz Eylül Üniversitesi / Fen Bilimleri Enstitüsü / Bilgisayar Mühendisliği Ana Bilim Dalı
Konu:Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control
Dizin:Veri madenciliği = Data mining
Onaylandı
Doktora
İngilizce
2023
144 s.
Yazılım mühendisliği, veri madenciliği ve makine öğrenimi için en kullanışlı araştırma alanlarından biridir. Geliştiriciler, yazılım verilerini inceleyerek ve analiz ederek yazılım kalitesini iyileştirmeye çalışırlar. Yazılım geliştirme sürecinin ilk aşamalarında yazılım verilerini analiz etmek, tasarım, güvenlik ve diğer yazılım sorunlarının erken aşamada çözülmesine yardımcı olur. Bu tezde, çalışmalar üç önemli yazılım mühendisliği görevine odaklanmıştır. İlk olarak hata tahmininde, hata sayısına göre sıralı bir sınıflandırma çalışması ve yazılım verilerinin farklı özellik gruplarına ayrılmasına dayalı çoklu görünüm öğrenme çalışması yapılmıştır. İkinci olarak, kaynak kodda birden fazla kod hatası olması durumu göz önünde bulundurularak çok etiketli sınıflandırma önerilmiştir. Üçüncü olarak, kaynak kodlarını programlama dillerine göre sınıflandırmak için derin öğrenme çalışması yapılmıştır. Yazılım mühendisliği alanındaki bu problemlerin çözümü için aşağıdaki yöntemler önerilmiştir: (i) Yeni bir çok görünümlü öğrenme yöntemi olan Çok Görünümlü K-En Yakın Komşu (MVKNN), (ii) Kod hatası tespitinde birden fazla etiketi dikkate alan Çok Etiketli Kod Hatası Tespiti (ML-CSD), (iii) Yazılım hata tahmin problemine bir çözüm olarak sıralı sınıflandırmayı öneren yeni bir yöntem olan Sıralı Yazılım Hata Tahmini (OSBP), ve (iv) Programlama dillerini görüntü ve metin kaynak kodlarından tanımlayan evrişimsel sinir ağları mimarileri olan Görüntü-tabanlı ve Metin-tabanlı Kaynak Kodu Sınıflandırması (ISOC ve TSOC)'dır. Deneysel sonuçlar, önerilen yöntemlerin hem geleneksel hem de modern yöntemlerden daha iyi performans gösterdiğini ve yazılım mühendisliğinde başarılı çözümler sunduğunu açıkça ortaya koymuştur.
Software engineering is one of the most practical research areas for data mining and machine learning. Developers attempt to improve software quality by mining and analyzing software data. Analyzing software data in an initial phase of software development process helps solve design, security, and other software issues early on. In this thesis, studies focused on three significant software engineering tasks. First, in the defect (bug) prediction, an ordinal classification study based on the number of bugs and a multi-view learning study based on separation of the software data with different feature sets were carried out. Second, multi-label classification was proposed considering the case in which source code had more than one code smell. Third, a deep learning study was conducted to classify source codes according to their programming languages. The following methods are proposed to solve these problems in software engineering: (i) a new multi-view learning method called Multi-View K-Nearest Neighbors (MVKNN), (ii) Multi-Label Code Smell Detection (ML-CSD) which is proposed to consider more than one label in code smell detection, (iii) Ordinal Software Bug Prediction (OSBP) which is a novel method suggesting ordinal classification as a solution to software bug prediction problem, and (iv) Convolutional neural network architectures called Image-based and Text-based Source Code Classification (ISOC & TSOC) to identify programming languages from image and text source codes. Experimental results clearly demonstrated that the proposed methods outperformed both traditional and state-of-the-art techniques and offered successful solutions in software engineering.