## 4 Predicting the Change of Software Maintainability with the Historical Software Metrics
### Methodology of Data Analysis  
To analyse the prepared datasets and test the impact of historic software metric changes on software maintainability change, we employed the Orange Data Mining tool [64] version 3.23, and open-source data visualisation, machine learning, and data mining toolkit. The whole stage of data analysis consists of part of the data pre-processing, the feature importance calculation, and the building of maintainability change prediction models, as is depicted in Figure 5.  
Based on the initial setup of the experiment, we calculated classification quality metrics and feature importance scores. To test the prediction of the experimental model, the obtained results of the test were compared to the result of a similar study performed by [PERSON] et al. [58]. The comparison of results ensures the compliance of results returned by the research work with the previous studies of other authors.  
As described in the previous sections, the first stage of the experiment was the data collection, preprocessing and filtering. Next, to test the impact of the past software versions, the experiment was performed 10 times, where the number of prediction variables changed, from the most recent changes only, to also the distant changes in software metrics. In the first iteration of the experiment, denoted as N-1, it was tested how accurately can the change in MINC in the future, R-0 version, be predicted with the use of the changes software metrics values extracted from the releases R-2 to R-1. The next iteration, N-2, added additional software metric changes from R-3 to R-2 to the set of prediction variables. This process was repeated until the last one, N-18, where the changes from the R-18 version to R-17 were included in the prediction variable set. The process of sequential inclusion of the additional version (and their software metric changes) is shown in Figure 6, and the details of individual iterations of the experiment are described in Table 5.  
\begin{table}
\begin{tabular}{c c c c} \hline \hline
**Iteration** & **Label** & **\(\Delta\) of Previous Releases** & **Releases Considered** \\ \hline
1 & N-1 & \(\Delta\)R-1 & 2 \\
2 & N-2 & \(\Delta\)R-1 and \(\Delta\)R-2 & 3 \\
3 & N-4 & \(\Delta\)R-(1–4) & 5 \\
4 & N-6 & \(\Delta\)R-(1–6) & 7 \\
5 & N-8 & \(\Delta\)R-(1–8) & 9 \\
6 & N-10 & \(\Delta\)R-(1–10) & 11 \\
7 & N-12 & \(\Delta\)R-(1–12) & 13 \\
8 & N-14 & \(\Delta\)R-(1–14) & 15 \\
9 & N-16 & \(\Delta\)R-(1–16) & 17 \\
10 & N-18 & \(\Delta\)R-(1–18) & 19 \\ \hline \hline \end{tabular}
\end{table}
Table 5: Details about iterations of the experiment.  
Figure 4: The process of calculation of changes in software metric measurement values.  
Figure 5: The whole process of the experiment.  
Figure 6: The iterations of the experiment.  
Within ten iterations, the experiment included measurement data of up to 18 releases of the studied software components. The iterations of the experiment stopped after 18 consecutive releases included in the prediction model, as increasing the number of used consecutive releases would reduce the number of software projects in the dataset suitable for the experiment significantly.