## 2 Related Work  
Within the review of the evaluated articles, 15 secondary studies that analyzed topics similar to that of the proposed research were identified. To identify relevant research, we selected two of the four sets of basic research questions (RQs, detailed in Section 3.1): those related to Maintenance (a) and Machine Learning (b). It should be noted that this selection was the result of the same research criteria as those detailed below. To classify them, we chose to identify the type of \"Maintenance Issue\" proposed by the Software Engineering Body of Knowledge [1] proposal. The subsection \"Maintenance Issue\" comprised four topics: Technical Issue; Management Issues; Cost Estimation; Maintenance Measurement. This same differentiation was used to disclose the related secondary studies. It can be seen from the data in Table 1 that 27% of the secondary studies referred to a particular study interest for both topics. The rest of the studies individually analyzed the state of the art, but managed to contribute in their respective lines. Since 2011, there have been some initiatives with similar study themes. We highlighted the following categorized initiatives. \begin{table}
\begin{tabular}{c c c c} \hline
**Ref. ** & **Maintenance Issue** & **Maintenance (a)** & **ML (b)** \\ \hline
[14] & Technical Issue & & X \\
[15] & Management Issues & X & \\
[16] & Cost Estimation & X & \\
[17] & Management Issues & X & \\
[18] & Management Issues & & X \\
[19] & Technical Issue & X & X \\
[20] & Maintenance Measurement & X & X \\
[21] & Cost Estimation & & X \\
[22] & Technical Issue & X & X \\  
**Technical issues** This is the most commonly mentioned topic in the secondary literature. It represents 47% of the total number of secondary items identified. The work of [PERSON] et al. [19] analyzed methods and techniques based on machine learning for detecting \"code smells\" within a software development environment. The most commonly used techniques were genetic algorithms (GAs), which were used by 22.22% of the articles. Regarding the smells addressed by each technique, there was a high level of redundancy in that a wide range of algorithms covered the smells. Regarding performance, the best average was provided by the decision tree, followed by the random forest. None of the machine learning techniques handled 5 of the 25 analyzed smells. Most of them focused on several code smells, and in general, there was no outperforming technique, except for a few specific smells. [PERSON] et al. [22] investigated the same phenomenon as that described above. While the research community studied the methodologies when defining heuristic-based code smell detectors, there is still a lack of knowledge on how machine learning approaches have been adopted and how the use of ML to detect code smells can be improved. The authors studied them from four different perspectives: (i) the code smells considered, (ii) the setup of machine learning approaches, (iii) the design of the evaluation strategies, and (iv) a meta-analysis of the performance achieved by the models proposed so far. As a result, the analyses performed showed that God Class, Long Method, Functional Decomposition, and Spaghetti Code had been heavily considered in the literature. The analyses also revealed several issues and challenges that the research community should focus on in the future. [PERSON] et al. [10] analyzed machine learning techniques for software maintenance prediction. This review identified and investigated several research questions to comprehensively summarize, analyze, and discuss various viewpoints concerning software maintainability measurements, metrics, datasets, evaluation measures, individual models, and ensemble models. The 56 selected studies (evaluated up to 2018) indicated relatively little activity in software maintainability prediction compared with other software quality attributes. Most studies focused on regression problems and performed k-fold cross-validation.