Tez No İndirme Tez Künye Durumu
759321
A decision analysis approach for selecting software defect prediction method in the early phases / Erken aşamalarda yazılım hata tahmin yöntemi seçimi için bir karar analizi yaklaşımı
Yazar:RANA ÖZAKINCI
Danışman: DOÇ. DR. AYÇA KOLUKISA
Yer Bilgisi: Hacettepe Üniversitesi / Fen Bilimleri Enstitüsü / Bilgisayar Mühendisliği Ana Bilim Dalı / Bilgisayar Mühendisliği Bilim Dalı
Konu:Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control
Dizin:
Onaylandı
Doktora
İngilizce
2022
207 s.
Dünyada yazılım kullanım oranlarının günden güne arttığı göz önüne alındığında, son kullanıcıların kaliteli yazılım ürünlerini tercih etmek istemesi yadsınamaz bir gerçektir. Bir yazılım ürününün en önemli kalite göstergelerinden biri de hata oranıdır. Yazılım mühendisliğinde tahmin görevlerini destekleyen yöntem ve araçların yaygınlaşmasıyla birlikte yazılım hata tahminine olan ilginin arttığı bilinmektedir. Güncel durumda, çoğu hata tahmin modeli, kodlama aşamasından elde edilen metrikler kullanılarak oluşturulmaktadır. Bu durum, yazılım geliştirme yaşam döngüsünün gereksinim analizi veya tasarımı gibi erken aşamalarına ait bilgilerin işlenememesine, dolayısıyla erken aşamalarda maliyet düşürme ve etkin kaynak planlaması gibi önleyici faaliyetlerden yararlanılamamasına yol açmaktadır. Paydaşlar için, hata tahmin modelini mümkün olduğunca erken oluşturmaları ve yazılım geliştirme yaşam döngüsü boyunca kullanmaları önemli hale gelir. Yazılım mühendisliğinde veri bilimi yöntemlerinin çoğalması, fakat bunları sektörde kullanmak için bilgi ve uzmanlığın yeterli olmadığı göz önünde bulundurulduğunda, paydaşların proje özelindeki ihtiyaçlarını göz önünde bulundurarak en uygun hata tahmin yöntemini seçme konusunda rehberlik etmek için bir ihtiyacın ortaya çıktığı görülmüştür. Bu tez, bir karar analizi süreci kullanarak yaşam döngüsünün ilk aşamalarında yazılım hata tahmininde yöntem seçimi problemini ele almayı amaçlayan bir araştırma sunmaktadır. Bu doğrultuda, karar ağacı ve çok kriterli karar analizi (İng. MCDA) metodolojileri kullanılarak yapılandırılmış iki aşamalı bir karar analizi yaklaşımı önerilmiştir. Öncelikli olarak, literatürde bildirilen Erken Aşama Yazılım Hata Tahmini (İng. ESDP) modellerinin özellikleri ve kullanışlılığı hakkında genel bir görüş elde etmek için kapsamlı bir literatür taraması yapılmıştır. Bu çalışma ile literatürde erken aşamada hata tahmini konusunda en çok tercih edilen tahmin yöntemleri, metrikler, veri setleri ve performans değerlendirme kriterleri analiz edilmiştir. Buna göre karar analizinde değerlendirilecek alternatifler ve yöntem seçimi kararına etki edebilecek kriterler sistematik olarak belirlenmiştir. Literatürde elde edilen bilgileri güçlendirmek için iki farklı uzman görüşü anketi yapılmıştır. Ayrıca, karar analizi sürecinin işleyişini yönetmek için paydaş ihtiyaçlarını ve veri seti özelliklerini ortaya çıkarmaya yarayan bir anket önerilmiştir. Daha sonra, karar analizi yaklaşımı tarafından önerilen tahmin yöntemlerinin doğruluğunu ve güvenilirliğini araştırmak için erişime açık veri kümeleri üzerinde birkaç vaka çalışması yapılmıştır. Karar analizi yaklaşımı tarafından önerilen en uygun yöntemler, üç farklı durum çalışması için sırasıyla Naive Bayes, Karar Ağacı ve Bulanık Mantık tabanlı yöntemlerdir. Karar analizi sonuçlarının hem tezde yapılan deneylerin ampirik kanıtlarının sonuçlarıyla hem de bilimsel literatürde raporlanmış sonuçlarla tutarlı olduğu gözlenmiştir. Genel olarak, sunulan karar analizi yaklaşımının, yazılım projeleri ve ilgili hata verileri için özel gereksinimleri ortaya çıkararak, yazılım uygulayıcılarına hangi hata tahmin yönteminin avantajlı olacağına dair ipucu vermesi açısından faydalı olacağı görülmüştür. Bu tezin sonuçları, erken aşamalarda yazılım hata tahmin kapsamında yapılacak gelecek araştırmalar için rehberlik sağlarken, karar analizi yaklaşımın sonuçlarının doğruluğunu arttırmak adına sektörden yazılım projeleri üzerinde daha fazla çalışma yapılması gerektiği düşünülmektedir.
Considering that software usage rates have increased, it is inevitable for end-users to prefer high-quality software products. Undoubtedly, one of the most important quality indicators of a software product is its defect rate. With the widespread use of methods and tools that support estimation tasks in software engineering, the interest in software defect prediction is increasing. Currently, most defect prediction models are built using the metrics from the coding phase. This situation leads to the inability to process the information belonging to the early stages of the software development life cycle such as requirements analysis or design, thus not being able to benefit from preventive actions such as cost reduction and effective resource planning in the early stages. Eventually, it becomes important for stakeholders to build the desired defect prediction model as early as possible and to use it throughout the software development life cycle. When the proliferation of methods of data science in software engineering is combined with the shortage of knowledge to use them in industry, an important need arises to guide practitioners in selecting the best-fit methods by considering their specific needs. This thesis presents research aimed at addressing the method selection problem in software defect prediction during the early phases of the life cycle by using a formal decision analysis process. A two-phase decision analysis approach was proposed that is structured using a decision tree and multi-criteria decision analysis (MCDA) methodologies. In doing so, an extensive literature review was conducted to obtain a general view of the characteristics and usefulness of Early Software Defect Prediction (ESDP) models reported in scientific literature. As a result, the most preferred prediction methods, metrics, datasets, and performance evaluation methods, as well as the addressed SDLC phases were highlighted. Accordingly, the alternatives to be evaluated in the decision analysis and the criteria that may have an impact on the decision of method selection were systematically determined. To strengthen the knowledge, two different expert opinion surveys were conducted. Besides, to manage the operation of the decision analysis process, a questionnaire is proposed to reveal stakeholder needs and dataset characteristics. After, several case studies were performed to investigate the trustworthiness of the proposed approach with selected SDP methods using public datasets. The most convenient methods proposed by the decision analysis are Naïve Bayes (NB), Decision Tree (DT), and Fuzzy Logic-based methods for the case studies. It is concluded that the results of the decision analysis are consistent with both the results of the empirical evidence of the experiments conducted in the thesis and the results reported in the scientific literature. Overall, the presented approach could be useful in helping software practitioners decide which SDP method is advantageous by revealing their specific requirements for the software projects and associated defect data. While the results of this thesis provide guidance for future research on the context of ESDP, further studies on different software projects are necessary in order to expand knowledge prior to having decisions that are more reliable.