Analisando Estratégias para Identificação de Dívidas Técnicas
Resumo
Dívidas técnicas são uma constante no desenvolvimento de software. Para lidar com a pressão de entregas rápidas, desenvolvedores constantemente comprometem a qualidade do sistema entregue, postergando seu pagamento para fases posteriores. Com o objetivo de reduzir seus efeitos negativos, diversas soluções são propostas na literatura para identificação, gerenciamento e pagamento destas dívidas. Dentre elas, destacam-se as abordagens baseadas em análise estática (code smells), ou em comentários de código (self-admitted technical debt, ou SATD). Entretanto, ainda não está clara a real interseção entre tais abordagens, tampouco as características das dívidas melhor identificadas por cada uma delas. Neste trabalho, realizou-se uma comparação entre ambas abordagens através da aplicação das ferramentas SonarQube e SATDDetector num conjunto composto por 1.000 repositórios populares do GitHub. Como resultado, verificou-se que a interseção entre elas é de aproximadamente 19%, e que, em 7%, dos casos o SonarQube não é capaz de identificar SATDs. Ademais, as dívidas identificadas por ambas abordagens estão relacionadas à arquivos maiores (em termos de linhas de código), mais complexos (complexidade ciclomática e cognitiva) e com mais code smells.
Palavras-chave:
Dívida Técnica, Débito Técnico Admitido, SonarQube, SATD
Referências
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.
Publicado
19/10/2020
Como Citar
OLIVEIRA, Isabela; MARQUES-NETO, Humberto T.; XAVIER, Laerte.
Analisando Estratégias para Identificação de Dívidas Técnicas. In: WORKSHOP DE VISUALIZAÇÃO, EVOLUÇÃO E MANUTENÇÃO DE SOFTWARE (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.