TY - GEN
T1 - Revisiting Inter-Class Maintainability Indicators
AU - Gregor, Lena
AU - Schnappinger, Markus
AU - Pretschner, Alexander
N1 - Publisher Copyright:
© 2023 IEEE.
PY - 2023
Y1 - 2023
N2 - Over the last few decades, a variety of static code metrics have been published and promoted to measure the maintainability of software systems.This study evaluates 12 common static code metrics for their correlation with observed maintenance efforts. Leveraging modern repository mining techniques, we examine the historical data of three large open-source software systems with a combined size of over 1M LOC and over 10k classes. We automatically identify maintenance activities and measure the effort needed to perform them through revised lines of code. Then, we investigate if the state of the system as captured by these metrics is an indicator for the required maintenance effort.In contrast to earlier research, our results could not validate a general correlation between any of the examined metrics and maintainability. Instead, all evaluated metrics showed positive and negative correlations with maintenance effort depending on the considered time interval. Strong correlations only hold for specific projects, and within these projects, only for limited time spans. Across the project history, however, all metrics showed moderate correlations at most.As no metric was found to be a good indicator for high maintenance efforts in all contexts, we advocate against using any of the evaluated metrics without project-specific validation. If metrics are to be used to monitor the maintainability of a system, either directly or through models based on these metrics, engineers have to validate their applicability not just for the project at hand, but also for the current time span.
AB - Over the last few decades, a variety of static code metrics have been published and promoted to measure the maintainability of software systems.This study evaluates 12 common static code metrics for their correlation with observed maintenance efforts. Leveraging modern repository mining techniques, we examine the historical data of three large open-source software systems with a combined size of over 1M LOC and over 10k classes. We automatically identify maintenance activities and measure the effort needed to perform them through revised lines of code. Then, we investigate if the state of the system as captured by these metrics is an indicator for the required maintenance effort.In contrast to earlier research, our results could not validate a general correlation between any of the examined metrics and maintainability. Instead, all evaluated metrics showed positive and negative correlations with maintenance effort depending on the considered time interval. Strong correlations only hold for specific projects, and within these projects, only for limited time spans. Across the project history, however, all metrics showed moderate correlations at most.As no metric was found to be a good indicator for high maintenance efforts in all contexts, we advocate against using any of the evaluated metrics without project-specific validation. If metrics are to be used to monitor the maintainability of a system, either directly or through models based on these metrics, engineers have to validate their applicability not just for the project at hand, but also for the current time span.
KW - maintainability prediction
KW - repository mining
KW - software maintainability
KW - static code metrics
UR - http://www.scopus.com/inward/record.url?scp=85160514438&partnerID=8YFLogxK
U2 - 10.1109/SANER56733.2023.00093
DO - 10.1109/SANER56733.2023.00093
M3 - Conference contribution
AN - SCOPUS:85160514438
T3 - Proceedings - 2023 IEEE International Conference on Software Analysis, Evolution and Reengineering, SANER 2023
SP - 805
EP - 814
BT - Proceedings - 2023 IEEE International Conference on Software Analysis, Evolution and Reengineering, SANER 2023
A2 - Zhang, Tao
A2 - Xia, Xin
A2 - Novielli, Nicole
PB - Institute of Electrical and Electronics Engineers Inc.
T2 - 30th IEEE International Conference on Software Analysis, Evolution and Reengineering, SANER 2023
Y2 - 21 March 2023 through 24 March 2023
ER -