Uma análise da relação entre code smells e dívida técnica auto-admitida
Resumo
Code smells indicam possíveis problemas na implementação de um sistema que podem levar à necessidade de refatoração do seu código. Eles podem ser detectados automaticamente e são considerados indicadores de presença de Dívida Técnica (DT). Contudo, estudos indicam que considerar apenas code smells na tarefa de detecção da presença de itens de dívida é insuficiente. É necessário utilizar estratégias de detecção complementares, como a utilização de informações extraídas a partir de comentários de código. Porém, ainda são poucos os estudos sobre a relação entre code smells e DT autoadmitida. Este trabalho analisa três projetos open source para investigar a relação existente, em termos de sobreposição e complementariedade de itens de DT identificados, utilizando detecção via code smells e DT auto-admitida. Os resultados indicam que as informações de comentários podem complementar as informações de code smells e apoiar os desenvolvedores a identificar DT.
Referências
da Silva Maldonado, E., Shihab, E., and Tsantalis, N. (2017). Using natural language processing to automatically detect self-admitted technical debt. IEEE Transactions on Software Engineering, 43(11):1044–1062.
Farias, M. A., de Mendonça Neto, M. G., da Silva, A. B., and Spínola, R. O. (2015). A contextualized vocabulary model for identifying technical debt on code comments. In 7th MTD, pages 25–32. IEEE.
Fontana, F. A., Ferme, V., and Spinelli, S. (2012). Investigating the impact of code smells debt on quality code evaluation. In Proceedings of the MTD, MTD ’12, pages 15–22, Piscataway, NJ, USA. IEEE Press.
Fowler, M. (1999). Refactoring: Improving the Design of Existing Code. Addison-Wesley Longman Publishing Co., Inc., Boston, USA.
Gomes, F., Mendes, T., Carvalho, L., Spínola, R., Novais, R., and Mendonça, M. (2017). Repositoryminer – uma ferramenta extensível de mineração de repositórios de software para identificação automática de dívida técnica. CBSoft - Salão de Ferramentas.
Kerievsky, J. (2005). Refactoring to patterns. Pearson Deutschland GmbH.
Lanza, M. and Marinescu, R., editors (2006). Object-Oriented Metrics in Practice. Springer-Verlag Berlin Heidelberg, New York.
McConnell, S. (2008). Productivity variations among software developers and teams: The origin of 10x. 10x Software Development.
Potdar, A. and Shihab, E. (2014). An exploratory study on self-admitted technical debt. In ICSME, 2014 IEEE International Conference on, pages 91–100.
Seaman, C. and Guo, Y. (2011). Advances in computers. In Zelkowitz, M. V., editor, Chapter 2 - Measuring and Monitoring Technical Debt, volume 82 of Advances in Computers, pages 25-46. Elsevier.
Zazworka, N., Spínola, R. O., Vetro’, A., Shull, F., and Seaman, C. (2013). A case study on effectively identifying technical debt. In Proceedings of the 17th EASE, EASE ’13, pages 42–47, New York. ACM.