Detalhes bibliográficos
Ano de defesa: |
2020 |
Autor(a) principal: |
OLIVEIRA, Everton Rennê Barros de |
Orientador(a): |
CORNÉLIO, Márcio Lopes |
Banca de defesa: |
Não Informado pela instituição |
Tipo de documento: |
Dissertação
|
Tipo de acesso: |
Acesso aberto |
Idioma: |
por |
Instituição de defesa: |
Universidade Federal de Pernambuco
|
Programa de Pós-Graduação: |
Programa de Pos Graduacao em Ciencia da Computacao
|
Departamento: |
Não Informado pela instituição
|
País: |
Brasil
|
Palavras-chave em Português: |
|
Link de acesso: |
https://repositorio.ufpe.br/handle/123456789/37903
|
Resumo: |
A refatoração ou refactoring, é a atividade de melhorar o código fonte sem afetar o comportamento observável do software, com vistas a reuso, legibilidade e facilidade de manutenção. A refatoração é útil para transformação de trechos de código com baixa qualidade e que se enxerga uma oportunidade de melhoria. Estes trechos também são conhecidos como code smells (código com “cheiro”) ou bad smells (código que “cheira mal”). Observamos como projetos de software evoluíram a partir da relação entre as refatorações e code smells, sob a perspectiva das medidas de software ao longo do ciclo de evolução do software. Desenvolvemos a ferramenta RefactoringLink a fim de identificar code smells que foram introduzidos ao longo do desenvolvimento, bem como aqueles que desapareceram. Outra funcionalidade da ferramenta é a de capturar as refatorações que ocorreram entre as versões de um software, com a finalidade de identificar quais foram os recursos afetados por essas transformações e assim criar uma associação entre a refatoração e o code smell. Investigamos 11.593 versões em 427 projetos Java/Android, hospedados em repositórios de software público. Em nossos achados, foi possível detectar 4.555.351 code smells e um total de 197.525 refatorações. Identificamos que apenas 2.3% (4.508) das refatorações resultaram em correção direta de 0.13% (5.354) dos code smells. Coletamos 37 medidas de software para cada classe de cada versão dos projetos analisados. Analisamos cinco medidas de software específicas de orientação a objetos em três cenários para observar o reflexo nas medidas quando na existência ou não de refatoração ou code smell. Os achados indicam que as medidas de software podem sofrer variações em razão da inclusão de novas funcionalidades ou manutenção do código que é realizada ao longo da evolução do software, indo além de mudanças advindas de refatorações. Apresentamos um comparativo das medidas em 15 classes de projetos distintos que tiveram a presença de refatoração, code smell e da correção de code smell a partir de uma refatoração. |