Realizing Refactoring Prediction through Deep Learning - Pereira, Lucas Rafael Rodrigues; Pereira, Dilson Lucas; Durelli, Rafael Serapilha (Anais do Workshop Brasileiro de Engenharia de Software Inteligente (ISE); 2023: Anais do III Workshop Brasileiro de Engenharia de Software InteligenteDO - 10.5753/ise.2023.235749, 2023)
Refactoring is the process of changing the internal structure of a software in order to improve its quality, without modifying its behavior. Recent studies have shown that the act of refactoring brings positive results for maintaining and understanding the code and the system as a whole. It turns out that, currently, this method is still little used, with expertise and intuition being the main factors that determine the need for software refactoring. Before starting the refactoring process, an analysis is essential to check whether refactoring is really necessary. Therefore, the present study analyzes artificial intelligence techniques, such as Deep Learning, to predict when software refactoring is essential. Deep Learning models like CNN, RNN, LSTM and DenseLayer were analyzed and compared using precision, recall and accuracy metrics. The results demonstrated that Machine Learning models performed better than Deep Learning algorithms using the same data set, however, the good performance of Deep Learning models stands out in scenarios where the data is very unbalanced.