Technical debt is a collection of design decisions that, when taken together over time, make the system challenging to maintain and develop. Technical debt impacts the quality of applications by generating structural weaknesses that translate into slowness and functional deficiencies at the development level. Identifying debts in your code, architecture, and infrastructure is of paramount importance and requires an in-depth analysis that requires effort in terms of time and resources. To date, there are several reliable tools for calculating debt in code, but this study aims to forecast the impact developers have on debt in source code. We propose an approach, based on the use of different Machine Learning and Deep Learning classifiers capable of predicting just in time, if the change that the developer is making will have a low, medium, or high impact on the debt. To conduct the experiments, three opensource Java systems available on Github were selected, and for each of these, the entire history was collected in terms of changes, quality metrics and indicators strictly connected to the presence of technical debt. The results obtained are satisfactory, showing the effectiveness of the proposed method.
Forecasting the Developer’s Impact in Managing the Technical Debt
Aversano L.;Bernardi M. L.;Iammarino M.
2024-01-01
Abstract
Technical debt is a collection of design decisions that, when taken together over time, make the system challenging to maintain and develop. Technical debt impacts the quality of applications by generating structural weaknesses that translate into slowness and functional deficiencies at the development level. Identifying debts in your code, architecture, and infrastructure is of paramount importance and requires an in-depth analysis that requires effort in terms of time and resources. To date, there are several reliable tools for calculating debt in code, but this study aims to forecast the impact developers have on debt in source code. We propose an approach, based on the use of different Machine Learning and Deep Learning classifiers capable of predicting just in time, if the change that the developer is making will have a low, medium, or high impact on the debt. To conduct the experiments, three opensource Java systems available on Github were selected, and for each of these, the entire history was collected in terms of changes, quality metrics and indicators strictly connected to the presence of technical debt. The results obtained are satisfactory, showing the effectiveness of the proposed method.I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.