Use este identificador para citar ou linkar para este item:
http://www.repositorio.ufal.br/jspui/handle/123456789/10561
Tipo: | Trabalho de Conclusão de Curso |
Título: | Uma aplicação do aprendizado por transferência na detecção de Code Smells |
Autor(es): | Ramos, André Moabson da Silva |
Primeiro Orientador: | Santos Neto, Baldoino Fonseca dos |
metadata.dc.contributor.advisor-co1: | Bibiano, Ana Carla Gomes |
metadata.dc.contributor.referee1: | Araújo, Ícaro Bezerra Queiroz de |
metadata.dc.contributor.referee2: | Mello, Rafael Maiani de |
Resumo: | 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 para construir um grande conjunto de dados para treinamento e validação dos modelos de aprendizagem de máquina, utilizando as regras catalogadas e thresholds extraídos da ferramenta Designite. Coletando, assim, um total 22.687, 8.501 e 5.953 smells detectados em projetos das respectivas linguagens de programação, C++, Java e C#. Em seguida, nós obtivemos 72 modelos pré-treinados, e realizamos o aprendizado por transferência, que consistiu em avaliar o modelo pré-treinado para smells no conjunto de dados entre linguagens de programação. Nossos resultados revelaram que se escolhermos o smell de design, Unecessary Abstraction, e a linguagem alvo for C#, então o modelo mais apropriado para detectar esse code smell é o baseado no RandomForest, pois foi melhor dentre os outros modelos treinados no conjunto de dados da linguagem C++ para o mesmo smell. Esses resultados podem ajudar a desenvolvedores e pesquisadores a aplicar as mesmas estratégias de detecção de code smells em diferentes linguagens de programação, e utilizar modelos de treinamentos que sejam mais apropriados para cada tipo de code smell e linguagens de programação. |
Abstract: | During the software development, the presence of code smells has been related to the degradation of the software quality. Several studies present the relevance to detect smells in the source code and to apply refactoring. However, the existing approaches to detect code smells are limited to specific programming languages. In this context, this work aims to extend the techniques of code smell detection using learning transfer to build a large dataset for training and validation of machine learning models, using cataloged rules and extracted thresholds of the Designite tool. Collecting, then, a total of total 22,687, 8,501 e 5,953 detected smells in software projects of the respective programming languages, C++, Java e C#. In a sequence, we obtained 72 pretrained models and performed the transfer learning to evaluate the pre-trained model for smells in the dataset between programming languages. Our results revealed that the model RandomForest is the most appropriate to detect code smells like the Unecessary Abstraction design smell for the C# programming language. These results can help developers and researchers to apply the same code smell detection strategies for different programming languages and to apply the most appropriate training models for each code smell type and programming language. |
Palavras-chave: | Code smells - Detecção Aprendizagem de máquina Aprendizagem por transferência Code smells Detection Transfer learning Machine learning |
CNPq: | CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO |
Idioma: | por |
País: | Brasil |
Editor: | Universidade Federal de Alagoas |
Sigla da Instituição: | UFAL |
metadata.dc.publisher.department: | Curso de Ciências da Computação |
Citação: | RAMOS, André Moabson da Silva. Uma aplicação do aprendizado por transferência na detecção de Code Smells. 2023. 24 f. Trabalho de Conclusão de Curso (Bacharelado em Ciência da Computação) - Instituto de Computação, Curso de Ciências da Computação, Universidade Federal de Alagoas, Maceió, 2021. |
Tipo de Acesso: | Acesso Aberto |
URI: | http://www.repositorio.ufal.br/jspui/handle/123456789/10561 |
Data do documento: | 2-mar-2021 |
Aparece nas coleções: | Trabalhos de Conclusão de Curso (TCC) - Bacharelado - CIÊNCIA DA COMPUTAÇÃO- IC |
Arquivos associados a este item:
Arquivo | Descrição | Tamanho | Formato | |
---|---|---|---|---|
Uma aplicação do aprendizado por transferência na detecção de Code Smells.pdf | 1.34 MB | Adobe PDF | Visualizar/Abrir |
Os itens no repositório estão protegidos por copyright, com todos os direitos reservados, salvo quando é indicado o contrário.