Geri Dön

Refactoring tekniklerinin yazılım iç kalite ölçütlerine etkilerinin araştırılması

Investigating the impact of refactoring techniques on internal quality attributes of software

  1. Tez No: 884198
  2. Yazar: TUĞBA METİN TORTOP
  3. Danışmanlar: DR. ÖĞR. ÜYESİ YUNUS EMRE SELÇUK
  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: 2024
  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ı: 111

Özet

Refactoring, mevcut kodun dış davranışını etkilemeksizin iç yapısını değiştirerek tasarımı iyileştirme sürecidir ve iç kalite özelliklerini iyileştirerek yazılım kalitesini artırması beklenir. Literatürde refactoringin yazılım kalitesi üzerindeki etkisini farklı açılardan inceleyen birçok çalışma mevcuttur ancak nesne yönelimli yazılım sistemlerinde bu tür çalışmalar hem kısıtlıdır hem de birbirleri ile çelişkili sonuçlar üretmişlerdir. Belirlenen durumu iyileştirmek amacıyla bu çalışmada Github repolarından elde edilen 12 açık kaynak kodlu, aktif ve popüler Java tabanlı projenin commit geçmişleri analiz edilmiştir. Toplam 5.948 committe tespit edilen 59.031 refactoring işlemi arasından, çalışmada odaklanılan 22 tür refactoring tekniğinin dağıldığı 10.954 işleme ait bir örneklem elde edilmiş, refactoringin yazılımın iç kalitesi üzerindeki etkisi Chidamber ve Kemerer metrikleri ölçümlenerek değerlendirilmiştir. Refactoringlerin tespiti ve metrik ölçüm işlemlerinin koordineli ve programatik yürüyebilmesi için çalışma kapsamında otomatik bir analiz yazılımı geliştirilmiştir. Bulguların hem yüzdesel etkileri incelenmiş hem de metrikler üzerinde etkili olan refactoringler için Wilcoxon İşaretli Sıralar Testi uygulanarak istatistiksel anlamlılıkları değerlendirilmiştir. Elde edilen bulgulara göre, bazı refactoringler metriklerde iyileşme ya da kötüleşmeye sebep olurken, bazıları metrikler üzerinde etkisizdir. Move and Inline Method tekniğinin iç kalite metriklerini istatistiksel anlamlılık derecesinde en fazla iyileştiren, Replace Variable with Field tekniğinin en fazla kötüleştiren refactoringler olduğu saptanmıştır. Gerçekleşen etkilerin ise en çok WMC ve RFC ölçütlerinde olduğu saptanmıştır. Yapılan bu çalışmada, refactoring tekniklerinin yazılımın iç kalite ölçütlerine etkisine yönelik matematiksel ve istatistiksel bulgular paylaşılmış, literatürdeki çalışmalara ait tutarsız sonuçların nedenlerine yönelik tespitler yapılmış ayrıca araştırmacılar, yazılım geliştiricileri ve şirketler için faydalı olabilecek öneriler paylaşılmıştır.

Özet (Çeviri)

Refactoring is the process of improving the design by changing the internal structure of existing code without affecting its external behavior and is expected to improve software quality by improving internal quality attributes. Refactoring is highly important for improving software quality and minimizing maintenance costs. Although there are numerous studies investigating the impact of refactoring on software quality, it is understood that new studies are needed due to the limited number of studies exploring object-oriented software systems, and contradictory findings of the existing ones. For this purpose, in this study, the commit histories of 12 open source, active and popular Java-based projects obtained from Github repositories have been analyzed. Out of 59.031 refactoring operations identified in 5.948 refactored commits, a sample of 10.954 operations covering 22 refactoring techniques focused on in this study was extracted. The impacts of selected refactoring techniques on the internal quality attributes were assessed by measuring Chidamber & Kemerer metrics. Also, an automatic analysis software was developed to carry out the refactoring detection and metric measurement processes programmatically. Both the percentage effects of the findings and their statistical significance were evaluated by applying the Wilcoxon signed-rank test. According to the findings, some metrics were not affected by refactorings while others improved or worsened. In terms of statistical significance, Move and Inline Method technique improved internal quality metrics the most, while Replace Variable with Field worsened them the most. Impacts were mostly observed in WMC and RFC metrics. This study contains mathematical and statistical findings for the impact of refactoring techniques on internal quality metrics of software, identifies the reasons for the contradictory results in existing studies and provides some recommendations that could be useful for researchers, software developers and software companies.

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. Effect of refactoring on the programmers' workload

    Kod iyileştirmesinin yazılımcıların iş yüküne olan etkisi

    HÜSEYİN CAN DOĞAN

    Yüksek Lisans

    İngilizce

    İngilizce

    2013

    Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolOrta Doğu Teknik Üniversitesi

    Bilgisayar Mühendisliği Bölümü

    PROF. DR. ALİ HİKMET DOĞRU

  3. Yeşil yazılımda enerji tüketimini düşürmeye yönelik kombinatoryal bir algoritma geliştirilmesi

    Development of a combinatorial algorithm to reduce energy consumption in the green software

    İBRAHİM ŞANLIALP

    Doktora

    Türkçe

    Türkçe

    2022

    Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolSüleyman Demirel Üniversitesi

    Bilgisayar Mühendisliği Ana Bilim Dalı

    PROF. DR. TUNCAY YİĞİT

    DOÇ. DR. MUHAMMED MARUF ÖZTÜRK

  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. Extreme programlama ile nesneye yönelik yazılım geliştirme

    Object oriented software development with extreme programming

    DİDEM ÖKTEM

    Yüksek Lisans

    Türkçe

    Türkçe

    2005

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

    Bilgisayar Mühendisliği Ana Bilim Dalı

    DOÇ.DR. OĞUZ DİKENELLİ