Geri Dön

Prediction of code refactoring using class and file level software metrics

Sınıf ve dosyaların yazılım ölçütleri kullanılarak tekrar tasarım durumlarının irdelenmesi

  1. Tez No: 246273
  2. Yazar: YASEMİN KÖŞKER
  3. Danışmanlar: YRD. DOÇ. AYŞE BAŞAR BENER
  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: 2009
  8. Dil: İngilizce
  9. Üniversite: Boğaziçi Üniversitesi
  10. Enstitü: Fen Bilimleri Enstitüsü
  11. Ana Bilim Dalı: Bilgisayar Mühendisliği Bölümü
  12. Bilim Dalı: Bilgisayar Mühendisliği Ana Bilim Dalı
  13. Sayfa Sayısı: 78

Özet

Yazılım geliştirme maliyetindeki payı açısından bakım maliyetleri, özellikle de modüllerin sıkı eşleştirmesine bağlı olan telekomünikasyon alanındaki gibi çoklu versiyonlu gerçek-zamanlı sistemlerde çok yüksek olabilir. Karmaşık sınıfların geliştirilmesi ile birlikte kodun okunabilirliği çok zor bir hale gelebilir, bu yüzden yeni yazılım geliştiricilerin projeye katılma süreci zorlaşır ve projenin bakımı zor bir iş haline gelir. Bu problemin üstesinden gelmenin bir yolu; sistemin hangi kısımlarının bakımının zor olduğunu ya da hangi kısımların değişime eğilimli olduğunu tahmin etmektir. Tekrar tasarım kararları; yazılım geliştiricilerin deneyimini temel alan maliyeti yüksek, manuel kod incelenmesine dayalı olarak alınır. Bu durum sistemi süreçlerden çok insanlara bağımlı kılar. Aynı zamanda manuel inceleme, proje maliyetlerini de yükseltecektir. Yöneticiler genel olarak kodun kalitesinden çok projenin zamanında ve bütçe sınırları dahilinde tamamlanmasıyla ilgilenirler. Fakat, projeyi düsük maliyetli ve son teslim zamanından önce bitirmekle birlikte aynı zamanda kodun kalitesinin ve yapısının korunması ve hatta geliştirilmesi, daha tercih edilen bir durum olacaktır.Bu araştırmada projeleri, versiyon geçmişiyle kod karmaşıklığını analiz ederek tekrar tasarlanması gereken sınıfları belirlemeyi hedeflemekteyiz. Biz, tekrar tasarlanması gereken sınıfları özelliklerine göre önceliklendiren makina öğrenme temelli bir model öneriyoruz. Bizim öngörü sonuçlarımız gösteriyor ki, belirli özelliklere ağırlıklar vermek: sınıf bazlı ortalamada %71 doğru tahmin ve %18 yanlış alarm oranlarında, performans modeli öngörüsünü oldukça geliştirmektedir. Ayrıca önerdiğimiz model, bakıma dayalı çalışmalarda; manuel kod incelemesine göre, ortalama olarak fazladan %81 verimlilik üstünlüğü sağlamaktadır.

Özet (Çeviri)

Maintenance costs as a proportion of software development cost could be very high, especially in multi version real-time systems such as in telecommunications domain due to tight coupling of modules. The readability of the code becomes very hard with the development of complex classes, so the maintenance and the adaptation of the new developers to the project becomes a diffucult job. One way to overcome this problem is to predict what parts of the system are difficult to maintain and likely to change. Refactoring decisions are taken through a costly manual inspection of the code based on developer experience. It makes the system dependent to people rather than processes. Also, manual inspection increases the cost of the project. The managers are generally interested in projects which are completed on time and within budget rather than code quality. However, it would be preferable to make the project less costly and finish it before deadline by also preserving or enhancing the code quality and structure.In this research we aim to detect the modules that need to be refactored by analyzing the code complexity of the projects with version history. We propose a machine learning based model that prioritizes attributes to predict modules to be refactored. Our prediction results revealed that assigning weights to certain attributes considerably improves the prediction performance of the model as high as 71% of probability of detection and as low as 18% of false alarm rates on the average in class-level. Further our proposed model provides on average as high as 81% efficiency in maintenance effort, over and above the manual code inspection.

Benzer Tezler

  1. A composed technical debt identification methodology to predict software vulnerabilities

    Yazılım zafiyetlerini tahmin etmek için kapsamlı bir teknik borç tanımlama yöntemi

    RUŞEN HALEPMOLLASI

    Doktora

    İngilizce

    İngilizce

    2024

    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. Nesneye yönelik sistemlerde kusurlu sınıfların öngörülmesi için makine öğrenmesi temelli bir yöntem oluşturulması

    Creating a machine learning based method for predicting defective classes in object oriented systems

    FİKRET AKTAŞ

    Yüksek Lisans

    Türkçe

    Türkçe

    2018

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

    Bilgisayar Mühendisliği Ana Bilim Dalı

    DOÇ. DR. FEZA BUZLUCA

  3. Derin öğrenme teknikleriyle yazılım kod kalitesi analiz ve iyileştirme öneri sistemi geliştirilmesi

    Development of software code quality analysis and improvement suggestion system with deep learning techniques

    OĞUZHAN OKTAY BÜYÜK

    Yüksek Lisans

    Türkçe

    Türkçe

    2021

    Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolFatih Sultan Mehmet Vakıf Üniversitesi

    Bilgisayar Mühendisliği Ana Bilim Dalı

    DR. ÖĞR. ÜYESİ ALİ NİZAM

  4. Measuring and evaluating the maintainability of microservices

    Mikroservislerin sürdürülebilirliğinin ölçülmesi ve değerlendirilmesi

    RAHİME YILMAZ

    Doktora

    İngilizce

    İngilizce

    2024

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

    Bilgisayar Mühendisliği Ana Bilim Dalı

    DOÇ. DR. FEZA BUZLUCA

  5. Automated maintenance support for data-tier software

    Veritabanı yazılımları için otomatikleştirilmiş bakım desteği

    ERSİN ERSOY

    Doktora

    İngilizce

    İngilizce

    2022

    Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolÖzyeğin Üniversitesi

    Bilgisayar Mühendisliği Ana Bilim Dalı

    DOÇ. DR. HASAN SÖZER