Analyzing Technical Debt Identification Strategies
Abstract
Technical Debt (TD) is a constant in software development. To deal with the pressure of fast deliveries, developers constantly compromise the quality of the delivered system, postponing TD payment to later stages. In order to reduce its negative effects, several solutions are proposed in the literature for the identification, management and payment of these debts. Among them, we highlight the approaches based on static analysis (code smells), or on code comments (self-admitted technical debt, or SATD). However, the real intersection between such approaches is not yet clear, nor are the characteristics of the debts best identified by each of them. In this work, we perform a comparison between both approaches through the application of SonarQube and SATDDetector in a dataset of 1,000 popular GitHub repositories. As a result, we observe that the intersection between them is approximately 19%, and that in 7% of the cases SonarQube is not able to identify SATDs. In addition, the debts identified by both approaches are related to larger files (in terms of lines of code), more complex (cyclomatic and cognitive complexity) and more smelly (code smells).
Keywords:
Technical Debt, Self-Admitted Technical Debt, SonarQube, SATD
References
Borges, H. and Valente, M. T. (2018). What’s in a GitHub star? Understanding repository starring practices in a social coding platform. Journal of Systems and Software, 146:112–129.
Fowler, M., Beck, K., Brant, J., Opdyke, W., and Roberts, D. (1999). Refactoring: Improving the design of existing code. Berkeley, CA, USA.
Gomes, F. G. d. S., Mendes, T. S., Spínola, R. O., Mendonça, M., and Farias, M. (2019). Uma analise da relação entre code smells e dívida técnica auto-admitida. In 7th Workshop on Software Visualization, Evolution and Maintenance (VEM), pages 37–44.
Huang, Q., Shihab, E., Xia, X., Lo, D., and Li, S. (2018). Identifying self-admitted technical debt in open source projects using text mining. Empirical Software Engineering, 23(1):418–451
Lenarduzzi, V., Lomio, F., Huttunen, H., and Taibi, D. (2020). Are sonarqube rules inducing bugs? In 27th International Conference on Software Analysis, Evolution and Reengineering (SANER), pages 501–511.
Liu, Z., Huang, Q., Xia, X., Shihab, E., Lo, D., and Li, S. (2018). SATD Detector: A text-mining-based self-admitted technical debt detection tool. In 40th International Conference on Software Engineering (ICSE), pages 9–12.
Maldonado, E. d. S., Abdalkareem, R., Shihab, E., and Serebrenik, A. (2017). An empirical study on the removal of self-admitted technical debt. In 33th International Conference on Software Maintenance and Evolution (ICSME), pages 238–248.
Potdar, A. and Shihab, E. (2014). An exploratory study on selfadmitted technical debt. In 30th International Conference on Software Maintenance and Evolution (ICSM), pages 91–100.
Xavier, L., Ferreira, F., Brito, R., and Valente, M. T. (2020). Beyond the code: Mining self-admitted technical debt in issue tracker systems. 17th International Conference on Mining Software Repositories (MSR).
Zazworka, N., Spínola, R. O., Vetro’, A., Shull, F., and Seaman, C. (2013). A case study on effectively identifying technical debt. In 17th International Conference on Evaluation and Assessment in Software Engineering (EASE), pages 42– 47.
Fowler, M., Beck, K., Brant, J., Opdyke, W., and Roberts, D. (1999). Refactoring: Improving the design of existing code. Berkeley, CA, USA.
Gomes, F. G. d. S., Mendes, T. S., Spínola, R. O., Mendonça, M., and Farias, M. (2019). Uma analise da relação entre code smells e dívida técnica auto-admitida. In 7th Workshop on Software Visualization, Evolution and Maintenance (VEM), pages 37–44.
Huang, Q., Shihab, E., Xia, X., Lo, D., and Li, S. (2018). Identifying self-admitted technical debt in open source projects using text mining. Empirical Software Engineering, 23(1):418–451
Lenarduzzi, V., Lomio, F., Huttunen, H., and Taibi, D. (2020). Are sonarqube rules inducing bugs? In 27th International Conference on Software Analysis, Evolution and Reengineering (SANER), pages 501–511.
Liu, Z., Huang, Q., Xia, X., Shihab, E., Lo, D., and Li, S. (2018). SATD Detector: A text-mining-based self-admitted technical debt detection tool. In 40th International Conference on Software Engineering (ICSE), pages 9–12.
Maldonado, E. d. S., Abdalkareem, R., Shihab, E., and Serebrenik, A. (2017). An empirical study on the removal of self-admitted technical debt. In 33th International Conference on Software Maintenance and Evolution (ICSME), pages 238–248.
Potdar, A. and Shihab, E. (2014). An exploratory study on selfadmitted technical debt. In 30th International Conference on Software Maintenance and Evolution (ICSM), pages 91–100.
Xavier, L., Ferreira, F., Brito, R., and Valente, M. T. (2020). Beyond the code: Mining self-admitted technical debt in issue tracker systems. 17th International Conference on Mining Software Repositories (MSR).
Zazworka, N., Spínola, R. O., Vetro’, A., Shull, F., and Seaman, C. (2013). A case study on effectively identifying technical debt. In 17th International Conference on Evaluation and Assessment in Software Engineering (EASE), pages 42– 47.
Published
2020-10-19
How to Cite
OLIVEIRA, Isabela; MARQUES-NETO, Humberto T.; XAVIER, Laerte.
Analyzing Technical Debt Identification Strategies. In: WORKSHOP ON SOFTWARE VISUALIZATION, EVOLUTION AND MAINTENANCE (VEM), 8. , 2020, Evento Online.
Anais [...].
Porto Alegre: Sociedade Brasileira de Computação,
2020
.
p. 9-16.
DOI: https://doi.org/10.5753/vem.2020.14523.
