[pt] IDENTIFICAÇÃO E ANÁLISE DE MODIFICAÇÕES RELACIONADAS À REFATORAÇÃO
Ano de defesa: | 2025 |
---|---|
Autor(a) principal: | |
Orientador(a): | |
Banca de defesa: | |
Tipo de documento: | Tese |
Tipo de acesso: | Acesso aberto |
Idioma: | eng |
Instituição de defesa: |
MAXWELL
|
Programa de Pós-Graduação: |
Não Informado pela instituição
|
Departamento: |
Não Informado pela instituição
|
País: |
Não Informado pela instituição
|
Palavras-chave em Português: | |
Link de acesso: | https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=69593&idi=1 https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=69593&idi=2 http://doi.org/10.17771/PUCRio.acad.69593 |
Resumo: | [pt] A refatoração é uma técnica bem estabelecida na engenharia de software,destinada a melhorar a estrutura do código sem alterar seu comportamento.Cada refatoração consiste em um conjunto de modificações estruturais em umprograma. Uma análise minuciosa das modificações de código que compõemuma refatoração é um pré-requisito para colher os benefícios dessa técnica.No entanto, existem pelo menos duas características da refatoração de códigoem projetos de software da vida real que complicam uma análise detalhadado código. Primeiro, as refatorações são frequentemente aplicadas de maneirapersonalizada, ou seja, os desenvolvedores ajustam manualmente um conjuntopré-definido de modificações de código (associadas a um tipo de refatoração)adicionando ou removendo modificações para se adequar a contextos específicos. Em segundo lugar, as refatorações estão frequentemente entrelaçadascom outras tarefas, como adicionar funcionalidades ou corrigir bugs, conhecidas como refatoração floss. Como as modificações de refatoração são frequentemente realizadas com outras modificações não relacionadas no mesmo commit, distingui-las é demorado e propenso a erros. Embora pesquisas anteriores tenham examinado essas duas características desafiadoras da refatoração de código, o suporte especializado de ferramentas para sua análise minuciosa ainda é limitado. Esta tese teve como objetivo desenvolver uma abordagem abrangente para auxiliar a análise de refatoração de código na presença dessas duas características desafiadoras. Para isso, primeiro realizamos um estudo com desenvolvedores para entender se eles precisariam de suporte especializado de ferramentas para refatorações personalizadas. Em seguida, desenvolvemos duas ferramentas para ajudar os desenvolvedores a identificar modificações relacionadas à refatoração e distingui-las de outras modificações não relacionadas. A eficácia dessas ferramentas foi avaliada por meio de um estudo com usuários experientes. |