A dataset quality enhancement method for fine-grained just-in-time software defect prediction models
İnce taneli tam zamanında yazılım hata tahmin modelleri için veri kalitesi iyileştirme yöntemi
- Tez No: 886529
- Danışmanlar: DOÇ. DR. FEZA BUZLUCA
- Tez Türü: Yüksek Lisans
- Konular: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol, Computer Engineering and Computer Science and Control
- Anahtar Kelimeler: Belirtilmemiş.
- Yıl: 2024
- Dil: İngilizce
- Üniversite: İstanbul Teknik Üniversitesi
- Enstitü: Lisansüstü Eğitim Enstitüsü
- Ana Bilim Dalı: Bilgisayar Mühendisliği Ana Bilim Dalı
- Bilim Dalı: Bilgisayar Mühendisliği Bilim Dalı
- Sayfa Sayısı: 75
Özet
Yazılımların günümüzde birçok alanda büyük bir yer tutmasıyla beraber yazılımlardan beklentiler çeşitlenmektedir. Bu nedenle, yazılımların karmaşıklığı ve boyutu artmaktadır. Bu durum, yazılım geliştirme süreçlerinin işgücü ve zaman maliyetlerini yükseltmektedir. Aynı zamanda, sektörde rekabetçi bir ortam vardır. Firmalar, kendilerine bu rekabetçi ortamda bir yer bulmak adına yazılım geliştirme maliyetlerini düşürmek istemektedir. Yazılımlardaki hata çıkaracak bileşenlerin tahminlenmesi; test edilecek bileşenlerin önceliklendirilmesi, hataların daha erken aşamalarda düzeltilebilmesi gibi maliyet düşürücü yararlar sağlar. Bu nedenlerden ötürü, yazılım hata tahmin modelleri konusunda literatürde epey çalışma bulunmaktadır. İlk yazılım hata tahmini (SDP) modelleri; modüller, sınıflar veya metotlar gibi hataya açık bileşenleri saptamak amacıyla oluşturulmuştur. SDP modelleri yazılım ekiplerinin hataya neden olan bileşenlere daha fazla odaklanması konusunda yol gösterse de hataya neden olan bileşenlerin bir bütün olarak incelenmesi gerektiğinden yeterince kullanışlı değildir. Böylelikle, tam zamanında (başka bir deyişle değişiklik seviyesi) yazılım hata tahmini (JIT-SDP) modelleri geliştirilmiştir. Tam zamanında yazılım hata tahmin modelleri, önceki yazılım hata tahmin modellerine göre şu avantajlara sahiptir: Sağlanan ince ayrıntı düzeyi, hataların kök nedeninin bulunmasını daha az zaman alıcı hale getirir, geliştiricilerin hataya neden olan değişiklikleri, geliştirme tamamlandıktan hemen sonra, değişiklikliğe dair bilgiler hala tazeyken düzeltmelerine olanak tanır, hataya neden olan değişikliklerin ana koda entegrasyonu engellenerek sürekli kod kalitesini sağlar. Yazılım hata tahmin modellerinde efor farkındalığı (effort-awareness) temel olarak, diğer hataya neden olan bileşenlere göre incelenmesi daha az efor gerektiren, hataya neden olan bileşenleri bulmayı amaçlayan tekniklerdir. Bileşen, tam zamanında yazılım hata tahmin modellerinde değişiklik demektir. Tam zamanında yazılım hata tahmin modellerinin yazılım kalitesinden önemli ölçüde ödün vermeden maliyet etkinliğini artırmak için, çabaya dayalı teknikler literatürde yaygın olarak kullanılmaktadır. Ancak, efor farkındalığı olan tam zamanında yazılım hata tahmin modellerinin doğası nedeniyle, hataya neden olan bazı değişiklikler bulunamayabilir. Öte yandan, yeni nesil ince taneli tam zamanında yazılım hatası tahmin modelleri (Fine Grained JIT-SDP), değişiklik kapsamında değiştirilen her dosyanın hataya neden olup olmayacağını ayrı ayrı tahminler. Bu tip modeller, geliştiricilerin yalnızca değişiklik içindeki hataya neden olan dosyaları incelemesini sağlayarak, hataya neden olan bir değişikliğin bulunamama riskini düşük maliyetle azaltabilir. Makine öğrenmesi modellerinin geliştirilmesi veri bağımlı bir süreçtir, dolayısıyla veri kalitesi büyük öneme sahiptir. Düşük veri kalitesi, makine öğrenmesi modellerinin tahmin başarısını, yorumlanabilirliğini ve ölçeklenebilirliğini olumsuz etkiler. Veri kalitesini temel olarak tanımlayan ve veri odaklı çalışan birçok kişinin bildiği özelliklerden bazıları şunlardır: Tekillik (Uniquness), Geçerlilik (Validity), Doğruluk (Accuracy) ve Alakalılık (Relevance). Tekillik, veri setinde yinelenen varlıkların bulunmamasıdır. Geçerlilik, veri setindeki değerlerin uygun aralık ve formatta olması ve ilgili diğer değerlerle çelişmemesidir. Diğer bir deyişle, verinin ilgili olduğu alanın gerçekleriyle çatışmamasıdır. Doğruluk, veri setinin ilgili olduğu varlıkları doğru bir şekilde temsil eden değerler içermesidir. Alakalılık ise, analiz edilen konuyla ilgisiz varlıkların ya da değerlerin veri setinde olmamasıdır. Bu tezde önceki paragraflardaki bilgiler ışığında, ince taneli tam zamanında yazılım hatası tahmin modellerinde kullanılabilecek çift aşamalı bir veri kalitesi iyileştirme yöntemi önerilmiştir. Bu doğrultuda, ilk aşamada tekillik, geçerlilik ve doğruluğa odaklanılmış; ikinci aşamadaysa alakalılık amaçlanmıştır. Yazılım geliştirme deneyimleri ve saha gözlemleri, bu aşamalarının temel dayanağıdır. Tam zamanında yazılım hata tahmin modelleri kapsamında; yazılım özellikleri dikkate alınarak doğrudan veri kalitesine odaklanan bir çalışma, literatürde bulunmamaktadır. Daha sonra önerilen bu yöntem, Trautsch ve diğerlerinin hazırladığı veri seti üzerinde uygulanmıştır. Akabinde, yöntemin makine öğrenmesi model tahmin başarısını iyileştiren etkisi gösterilmiştir. Veri setinde değişiklik içindeki bazı yeniden adlandırılan dosyaların iki kez yer aldığı saptanmıştır. Bu tip çift kayıtlardan biri için metrik değerleri yalnızca silinen dosyalarda görülebilirken, diğeri içinse metrik değerleri yalnızca eklenen dosyalarda görülebilir. Bu durum ilaveten, aynı dosyanın daha sonraki değişiklikleri için COMM, EXP ve AGE gibi kümülatif JIT metriklerinin yanlış hesaplanmasına neden olmuştur. Bu nedenle, bu dosyalar için sorunun yaşandığı değişiklik ve sonrasında yapılan tüm değişiklikler veri setinden çıkarılmıştır. Ayrıca, yeniden adlandırma yapılan tüm dosya değişikliklerinde dosyanın değişiklik öncesindeki hali için kod metriklerinin sıfır olduğu görülmüştür. Kaynak kod dosyalarında böyle kod metrik değerlerinin görülmesi mümkün değildir. Belirli bir dosyayı değiştiren belirli bir değişiklik sonrası kod metriklerinin değeri ile aynı dosyayı değiştiren bir sonraki değişiklik öncesi kod metriklerinin değeriyle her zaman eşittir. Bu kurala dayanarak, hatalı kod metrik değerleri düzeltilmiştir. Bu arada, dosyanın önceki ve sonraki halinin için olan kod metriklerinin farkını yansıtan metrik değerleri de yeniden hesaplanmıştır. Böylelikle ilk aşamada; tekillik, geçerlilik ve doğruluk sağlanmıştır. Test veya kullanıcılara bileşenlerin kodda nasıl kullanılacağını göstermek amacı taşıyan kaynak kod dosyalarının çıkan hatalarla ilgisi bulunmamaktadır. Ayrıca, değişiklikte silinen dosyalardaki kaynak kodlar silindiği için bir daha çalışmayacaktır, haliyle hataya neden olması mümkün değildir. Bu nedenle değişiklikler içinde bu tip dosyalar silinmiştir. Daha sonra belirlediğimiz kurallar kapsamında hataya neden olma olasılığı düşük olan dosya değişiklikleri belirlenen kural setine dayalı olarak veri setinden elenmiştir. Sonuç olarak, ikinci aşamadaki alakalılık sağlanarak veri kalitesi arttırma işlemleri tamamlanmıştır. Veri setindeki dosyalarda yapılan değişiklikler SZZ algoritması kullanılarak otomatik olarak etiketlenmiştir. Tam zamanında yazılım hata tahmini modelleri çalışmalarında yaygın olarak kullanılmaktadır. Temel olarak, iki aşamadan oluşmaktadır. İlk aşama, hata düzelten değişiklikleri ya da değişen bileşenleri (örneğin dosyalar ya da kod blokları) belirler. İkinci aşamadaysa, belirlenen bu hata düzelten değişiklik ya da değişiklikteki bileşenlerdeki silinen satırları ekleyen değişikliği bularak bu değişikliği hatalı olarak işaretlemektir. Veri setinde, hata düzelten değişiklikleri bulmak için Adhoc ve ITS adında iki farklı yöntem kullanılmıştır. Adhoc yönteminde hata düzelten değişiklikler, değişiklik mesajında hata düzeltmeye işaret eden belirli kelimelerin bulunup bulunmadığına bakılarak belirlenir. ITS yöntemindeyse, proje yönetim sistemlerinde değişiklikle bağlantılı bir hata kaydının bulunup bulunmadığına bakılarak belirlenir. SZZ algoritmasının çalışma şeklinden ötürü; hata düzelten farklı değişiklik kümeleri, hataya neden olan farklı değişiklik kümelerinin oluşmasına neden olur. Bu doğrultuda, veri setinde iki farklı etiket bulunur. Bu tez kapsamında ince taneli tam zamanında yazılım tahmin modelleri için önerilen veri kalitesi iyileştirme yöntemlerin tahmin başarısını iyileştirme etkisi hem proje içi (within-project) hem de projeler arası (cross-project) modeller için incelenmiştir. Proje içi modeller, hata tahminlerinin yapıldığı projeden alınan veriler kullanılarak eğitilirken, projeler arası modeller ise diğer projelerden alınan veriler kullanılarak eğitilir. Proje içi modellerde zamana duyarlı doğrulama (time-sensitive validation) yaklaşımı kullanılır. Zamana duyarlı doğrulama yaklaşımında, önce artan zaman sırasına göre dört aylık periyotlarda veri kümeleri oluşturulur. Bu dört ayın ilk üç ayı eğitim, geri kalan bir ayı ise test için kullanılmaktadır. Her dört aylık veri kümesi için model eğitilir ve model başarısı ölçülür. Son olarak, genel bir model performansı sonucu elde etmek için model performans sonuçlarının aritmetik ortalaması alınır. Proje içi ve projeler arası modeller için iki tür veri seti kullanılır. Bunlar, veri kalitesinin artırılmasına yönelik önerilen iyileştirmelerin yapılıp yapılmadığına göre ikiye ayrılır. Model eğitim ve değerlendirme adımları, JIT metrikleri, statik kod metrikleri, PMD statik analizör metrikleri ve bunların hepsinin yanı sıra Adhoc ve ITS tipi etiketlerin her bir kombinasyonu için gerçekleştirilmiştir. Ayrıca daha temiz ve daha açıklanabilir modellerle daha iyi veya aynı tahmin performansının elde edilip edilemeyeceğini incelemek için veri kalitesi iyileştirmeleriyle birlikte bir otomatik öznitelik seçim algoritması olan CFS uygulanmıştır. CFS, etiketle yüksek korelasyonlu fakat kendi içinde düşük korelasyonlu öznitelikler seçmektedir. Random Forest algoritması, veri kümesini dengelemek amacıyla SMOTE algoritması ile beraber eğitim için kullanılmıştır. Model tahmin performansları, F1 skoruna göre değerlendirilmiştir. Önerilen veri kalitesi iyileştirme yöntemi, proje içi ve projeler arası modellerde, veri kalitesi iyileştirmesi yapılmayan modellere kıyasla daha iyi F1 skoru sağlamıştır. Ayrıca projeler arası modellerde CFS, her öznitelik ve etiket türü için F1 puanını arttırmıştır. Sonuç olarak, tez kapsamında önerilen veri kalitesi iyileştirme yöntemi daha iyi ince taneli tam zamanında hata tahmin modelleri oluşturulmasına yönelik bir potansiyel taşımaktadır. Yine de, çıkan sonuçların genelleştirilebilmesi için yöntemin farklı projelerde de uygulanması gerekmektedir.
Özet (Çeviri)
Recently developed fine-grained JIT-SDP models offer individual defect-inducingness predictions for each changed file in commits, unlike conventional JIT-SDP models that only predict defect-inducingness for commits. These models also cost-effectively reduce the risk of missing defect-inducing changes in the effort-aware JIT-SDP models by allowing developers to review only defect-inducing files in a commit. Building machine learning models is a data-dependent process, so the quality of the data is crucial. Low data quality negatively affects the predictive performance, interpretability, and scalability of machine learning models. The novelty in the thesis is a two-phased method to improve the quality characteristics of the dataset, including uniqueness, validity, accuracy and relevance, based on the experience and observations in software development for fine-grained JIT-SDP models. In the first phase, miscalculated features are sometimes deleted and sometimes corrected under the right conditions to ensure uniqueness, validity and accuracy. In the second phase, file changes in the commits that have little or no impact on future defects are excluded from the dataset to provide relevance. The proposed data quality improvement method is applied on Trautsch et al.'s dataset. In the data set, there are two different automatically assigned labels by the SZZ algorithm, which includes two basic steps: identifying the bug-fix purpose in full changes or some blocks in changes, and backtracking for each deleted line bug-fix purpose locations to find the changes that previously added them. The reason for the label differences lies in the methods used to identify bug-fix purpose changes. Predictive performance improvements in fine grained JIT-SDP models are then demonstrated when the proposed data quality improvement method is used for within-project and cross-project settings. In within-project setting, time-sensitive validation approach is used. Time-sensitive validation approach first creates three-month training instance groups and one-month test instance groups based on ascending time order, then trains separate models for each instance group and measures their prediction performances, and finally takes arithmetic average of the predictive performance results to get an overall result. For both within-project and cross-project settings, two types of datasets are used: datasets with and without proposed data quality improvements. Model training and evaluation steps are performed for each combination of the features including JIT metrics, static code metrics, PMD static analyzer metrics, and all of them, as well as Adhoc and ITS labels. In addition, CFS is also applied to the dataset with data quality improvements to investigate whether better or same prediction performance can be achieved with cleaner and more explainable models. Random Forest is used for training with SMOTE to balance dataset. Predictive performances are assessed by F1 score. In both within-project and cross-project settings, proposed data quality improvements yielded higher F1 scores than the baseline. Additionally, in cross-project setting, CFS always increased F1 scores. So, the proposed data quality improvement method may help build better fine-grained JIT-SDP models.
Benzer Tezler
- Finsentiment: Predicting financial sentiment and risk through transfer learning
Başlık çevirisi yok
ZEHRA ERVA ERGÜN
Yüksek Lisans
İngilizce
2023
Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolÖzyeğin ÜniversitesiBilgisayar Mühendisliği Ana Bilim Dalı
DR. ÖĞR. ÜYESİ EMRE SEFER
- Derin öğrenme tabanlı yöntemlerle düşük ışıklı görüntü iyileştirme
Low light image enhancement with deep learning based methods
EMİN CİHANGİR US
Yüksek Lisans
Türkçe
2024
Elektrik ve Elektronik Mühendisliğiİstanbul Teknik ÜniversitesiElektronik ve Haberleşme Mühendisliği Ana Bilim Dalı
PROF. DR. ENDER METE EKŞİOĞLU
- Dinamik olmayan stokastik rezonans yöntemi kullanılarak su altı görüntülerinin iyileştirilmesi
Underwater image enhancement using non-dynamic stochastic resonance
RUSTAM SALIMOV
Doktora
Türkçe
2024
Fizik ve Fizik MühendisliğiSakarya ÜniversitesiFizik Ana Bilim Dalı
DR. ÖĞR. ÜYESİ HACI AHMET YILDIRIM
- İnsan tespiti için otonom iç mekan keşfi
Autonomous indoor discovery for human detection
YUSUF GÖKHAN KÜÇÜKAYAN
Doktora
Türkçe
2024
Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolGazi ÜniversitesiBilişim Sistemleri Ana Bilim Dalı
PROF. DR. HACER KARACAN
- Yüksek çözünürlüklü görüntülerde derin öğrenme tabanlı nesne tespiti için yeni bir önişleme yöntemi geliştirilmesi
Development of a new preprocessing method for deep learning based object detection in high resolution images
MUHAMMED TELÇEKEN
Doktora
Türkçe
2024
Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolSakarya ÜniversitesiBilgisayar Mühendisliği Ana Bilim Dalı
PROF. DR. DEVRİM AKGÜN
PROF. DR. SEZGİN KAÇAR