Code Smells Detection Across Programming Languages
code smells, detecção, aprendizado por transferência, aprendizado de máquina, aprendizado profundo, redes neurais
Durante o desenvolvimento de um software, a presença de code smells tem sido relacionada com a degradação na qualidade do software. Diversos estudos mostram a importância de detectar os smells no código fonte e aplicar refatoração. No entanto, as abordagens existentes para a detecção de code smells são limitadas para determinadas linguagens de programação. Nesse contexto, este trabalho visa ampliar os métodos para detecção de code smells utilizando o aprendizado por transferência comparando os resultados de modelos construídos a partir de duas arquiteturas de redes neurais. Para o nosso estudo, selecionamos cinco linguagens de programação que estão entre as 10 de linguagens mais utilizadas segundo pesquisa do StackOverflow feita em 2021, sendo elas: Java, C#, C++, Python e JavaScript. Os resultados indicaram que ao aplicar o aprendizado por transferência os modelos conseguiram classificar bem os trechos de códigos com smell em outras linguagens com exceção do modelo Python independente da arquitetura do modelo. Esses resultados podem ajudar os desenvolvedores e pesquisadores a aplicar as mesmas estratégias de detecção de code smells em diferentes linguagens de programação e utilizar modelos e conjuntos de dados que disponibilizamos.