[pt] IDENTIFICAÇÃO E ANÁLISE DE MODIFICAÇÕES RELACIONADAS À REFATORAÇÃO

Bibliographic Details
Main Author: DANIEL TENORIO MARTINS DE OLIVEIRA
Publication Date: 2025
Format: Doctoral thesis
Language: eng
Source: Repositório Institucional da PUC-RIO (Projeto Maxwell)
Download full: 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
Summary: [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.
id PUC_RIO-1_8991370d4d15f7c3a29fd538f33b14f4
oai_identifier_str oai:MAXWELL.puc-rio.br:69593
network_acronym_str PUC_RIO-1
network_name_str Repositório Institucional da PUC-RIO (Projeto Maxwell)
repository_id_str 534
spelling [pt] IDENTIFICAÇÃO E ANÁLISE DE MODIFICAÇÕES RELACIONADAS À REFATORAÇÃO [en] ON THE IDENTIFICATION AND ANALYSIS OF REFACTORING-RELATED MODIFICATIONS [pt] REFATORACAO[pt] CUSTOMIZACAO DE REFATORACAO[pt] MANUTENIBILIDADE[en] REFACTORING[en] REFACTORING CUSTOMIZATION[en] MAINTAINABILITY[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.[en] Refactoring is a well-established software engineering technique aimed at improving code structure without altering its behavior. Each refactoring consists of a set of default modifications in a program. A thorough analysis of what code modifications compose a refactoring is a prerequisite to reap the benefits of this technique. However, there are at least two characteristics of code refactoring in real-life software projects that complicates a thorough code analysis. First, refactorings are often applied in a customized fashion, i.e., developers manually tailor a pre-defined set of code modifications (associated with a refactoring type) by adding or removing modifications to suit specific contexts. Second, refactorings are often intertwined with other tasks like adding features or fixing bugs, known as floss refactoring. Since refactoring modifications are often performed with other unrelated modifications in the same commit, distinguishing them is time-consuming and error-prone. While previous research has scrutinized these two challenging characteristics of code refactoring, specialized tool support for its thorough analysis is still limited. This thesis aimed at developing a comprehensive approach to assist code refactoring analysis in the presence of these two challenging characteristics. To this end, we first performed a study with developers to understand whether they would require specialized tool support for customized refactorings. Then, we developed two tools to assist developers in identifying refactoring-related modifications and distinguishing them from other unrelated modifications. The effectiveness of these tools was assessed through a user study with experienced developers. MAXWELLALESSANDRO FABRICIO GARCIAALESSANDRO FABRICIO GARCIAALESSANDRO FABRICIO GARCIADANIEL TENORIO MARTINS DE OLIVEIRA2025-03-11info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/doctoralThesishttps://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=69593&idi=1https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=69593&idi=2http://doi.org/10.17771/PUCRio.acad.69593engreponame:Repositório Institucional da PUC-RIO (Projeto Maxwell)instname:Pontifícia Universidade Católica do Rio de Janeiro (PUC-RIO)instacron:PUC_RIOinfo:eu-repo/semantics/openAccess2025-03-18T00:00:00Zoai:MAXWELL.puc-rio.br:69593Repositório InstitucionalPRIhttps://www.maxwell.vrac.puc-rio.br/ibict.phpopendoar:5342025-03-18T00:00Repositório Institucional da PUC-RIO (Projeto Maxwell) - Pontifícia Universidade Católica do Rio de Janeiro (PUC-RIO)false
dc.title.none.fl_str_mv [pt] IDENTIFICAÇÃO E ANÁLISE DE MODIFICAÇÕES RELACIONADAS À REFATORAÇÃO
[en] ON THE IDENTIFICATION AND ANALYSIS OF REFACTORING-RELATED MODIFICATIONS
title [pt] IDENTIFICAÇÃO E ANÁLISE DE MODIFICAÇÕES RELACIONADAS À REFATORAÇÃO
spellingShingle [pt] IDENTIFICAÇÃO E ANÁLISE DE MODIFICAÇÕES RELACIONADAS À REFATORAÇÃO
DANIEL TENORIO MARTINS DE OLIVEIRA
[pt] REFATORACAO
[pt] CUSTOMIZACAO DE REFATORACAO
[pt] MANUTENIBILIDADE
[en] REFACTORING
[en] REFACTORING CUSTOMIZATION
[en] MAINTAINABILITY
title_short [pt] IDENTIFICAÇÃO E ANÁLISE DE MODIFICAÇÕES RELACIONADAS À REFATORAÇÃO
title_full [pt] IDENTIFICAÇÃO E ANÁLISE DE MODIFICAÇÕES RELACIONADAS À REFATORAÇÃO
title_fullStr [pt] IDENTIFICAÇÃO E ANÁLISE DE MODIFICAÇÕES RELACIONADAS À REFATORAÇÃO
title_full_unstemmed [pt] IDENTIFICAÇÃO E ANÁLISE DE MODIFICAÇÕES RELACIONADAS À REFATORAÇÃO
title_sort [pt] IDENTIFICAÇÃO E ANÁLISE DE MODIFICAÇÕES RELACIONADAS À REFATORAÇÃO
author DANIEL TENORIO MARTINS DE OLIVEIRA
author_facet DANIEL TENORIO MARTINS DE OLIVEIRA
author_role author
dc.contributor.none.fl_str_mv ALESSANDRO FABRICIO GARCIA
ALESSANDRO FABRICIO GARCIA
ALESSANDRO FABRICIO GARCIA
dc.contributor.author.fl_str_mv DANIEL TENORIO MARTINS DE OLIVEIRA
dc.subject.por.fl_str_mv [pt] REFATORACAO
[pt] CUSTOMIZACAO DE REFATORACAO
[pt] MANUTENIBILIDADE
[en] REFACTORING
[en] REFACTORING CUSTOMIZATION
[en] MAINTAINABILITY
topic [pt] REFATORACAO
[pt] CUSTOMIZACAO DE REFATORACAO
[pt] MANUTENIBILIDADE
[en] REFACTORING
[en] REFACTORING CUSTOMIZATION
[en] MAINTAINABILITY
description [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.
publishDate 2025
dc.date.none.fl_str_mv 2025-03-11
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/doctoralThesis
format doctoralThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv 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
url 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
dc.language.iso.fl_str_mv eng
language eng
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.publisher.none.fl_str_mv MAXWELL
publisher.none.fl_str_mv MAXWELL
dc.source.none.fl_str_mv reponame:Repositório Institucional da PUC-RIO (Projeto Maxwell)
instname:Pontifícia Universidade Católica do Rio de Janeiro (PUC-RIO)
instacron:PUC_RIO
instname_str Pontifícia Universidade Católica do Rio de Janeiro (PUC-RIO)
instacron_str PUC_RIO
institution PUC_RIO
reponame_str Repositório Institucional da PUC-RIO (Projeto Maxwell)
collection Repositório Institucional da PUC-RIO (Projeto Maxwell)
repository.name.fl_str_mv Repositório Institucional da PUC-RIO (Projeto Maxwell) - Pontifícia Universidade Católica do Rio de Janeiro (PUC-RIO)
repository.mail.fl_str_mv
_version_ 1849967330545631232