Repository logo
 
Publication

Deep Learning-Based Software Defect Prediction via Semantic Key Features of Source Code, Handling Imbalanced Datasets

datacite.subject.fosEngenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
dc.contributor.advisorPombo, Nuno Gonçalo Coelho Costa
dc.contributor.advisorPais, Sebastião Augusto Rodrigues Figueiredo
dc.contributor.authorAndrade, Hiro Gaspar Inglês de
dc.date.accessioned2025-11-10T11:50:53Z
dc.date.available2025-11-10T11:50:53Z
dc.date.issued2025-02-19
dc.description.abstractThis work is part of the master’s thesis in Computer Engineering at the University of Beira Interior. It addresses themes related to software defect prediction, known as SDP, with the main objective of developing a predictive model using contextual features generated through deep learning models. To achieve the defined goals, five fundamental steps were followed: data preprocessing, mapping and embedding of tokens, extraction of contextual information, handling of datasets with class imbalance, and building the machine learning model for defect prediction. The dataset used was PROMISE, which encompasses software projects developed in Java, with multiple versions for each one. The experiments were conducted individually for each version, using static and contextual features generated through LSTM networks. The models were evaluated based on AUC, Accuracy, MCC, Recall, and Precision metrics. In general, it was observed that the use of contextual features resulted in significantly better performance. Among the models tested, Logistic Regression proved to be the most effective, demonstrating the best predictive capability. However, when combining different versions of the projects, a drop in performance was recorded, with the MCC showing low values, especially in the case of Naive Bayes, which in some scenarios even presented negative values. This phenomenon can be explained by factors such as concept drift (the change in data behavior over time) and overfitting (when the model fits excessively to the training data, compromising its ability to generalize), issues that have not been deeply addressed but are considered for future work.eng
dc.description.abstractEste trabalho insere-se na dissertação de mestrado em Engenharia Informática na Universidade da Beira Interior. Nele são abordados temas relacionados com a previsão de defeitos de software, conhecida como Software Defect Prediction (SDP), tendo como principal objetivo o desenvolvimento de um modelo preditivo utilizando características contextuais geradas por meio de modelos de deep learning. Para atingir os objetivos definidos, seguiram-se cinco etapas fundamentais: pré-processamento de dados, mapeamento e embedding de tokens, extração de informações contextuais, tratamento de conjuntos de dados com desequilíbrio de classes e construção do modelo de machine learning para previsão de defeitos. O conjunto de dados utilizado foi o PROMISE, que abrange projetos de software desenvolvidos em Java, com várias versões para cada um. Os experimentos foram realizados para cada versão individualmente, utilizando tanto características estáticas como contextuais, geradas por meio de redes Long Short-Term Memory (LSTM). Os modelos foram avaliados com base em métricas como Area under the ROC Curve (AUC), Accuracy, Matthews correlation coefficient (MCC), Recall e Precision. De modo geral, observou-se que a utilização de características contextuais resultou num desempenho significativamente superior. Entre os modelos testados, o Logistic Regression revelou-se o mais eficaz, apresentando a melhor capacidade preditiva. No entanto, ao combinar diferentes versões dos projetos, registou-se uma queda no desempenho, com o MCC a apresentar valores baixos, especialmente no caso do Naive Bayes, que em alguns cenários chegou a apresentar valores negativos. Este fenómeno pode ser explicado por fatores como concept drift (mudança no comportamento dos dados ao longo do tempo) e overfitting (quando o modelo se ajusta excessivamente aos dados de treino, comprometendo a sua capacidade de generalização), questões que não foram profundamente abordadas, mas são consideradas para trabalho futuro.por
dc.identifier.tid204027071
dc.identifier.urihttp://hdl.handle.net/10400.6/19164
dc.language.isoeng
dc.rights.urihttp://creativecommons.org/licenses/by-nc-sa/4.0/
dc.subjectPrevisão de Defeitos de Software
dc.subjectAprendizagem de Máquina
dc.subjectAprendizagem Profunda
dc.subjectCaracterística Semânticas e Contextuais
dc.subjectPré-processamento de Dados
dc.subjectDesequilíbrio de Classe
dc.subjectSoftware Defect Prediction
dc.subjectMachine Learning
dc.subjectDeep Learning
dc.titleDeep Learning-Based Software Defect Prediction via Semantic Key Features of Source Code, Handling Imbalanced Datasetspor
dc.typemaster thesis
dspace.entity.typePublication
thesis.degree.name2º Ciclo em Engenharia Informática

Files

Original bundle
Now showing 1 - 1 of 1
No Thumbnail Available
Name:
10836_28487.pdf
Size:
927.15 KB
Format:
Adobe Portable Document Format
Description:
Documento em Acesso Embargado até dia 12-05-2028. Tente solicitar cópia ao autor carregando no ficheiro
License bundle
Now showing 1 - 1 of 1
No Thumbnail Available
Name:
license.txt
Size:
4.03 KB
Format:
Item-specific license agreed upon to submission
Description: