Please use this identifier to cite or link to this item: http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/8435
Title: Refactoring and what else? an exploratory study on floss refactoring.
Other Titles: Refatoração e o que mais? um estudo exploratório sobre refatoração de fio dental.
???metadata.dc.creator???: MOREIRA, Jaziel Silva.
???metadata.dc.contributor.advisor1???: ANDRADE, Wilkerson de Lucena.
???metadata.dc.contributor.advisor2???: ALVES, Everton Leandro Galdino.
???metadata.dc.contributor.referee1???: SABINO, Melina Mongiovi Cunha Lima.
???metadata.dc.contributor.referee2???: TEIXEIRA, Leopoldo Motta.
Keywords: Floss-Refactorings;Edições Extras;Repositórios de Software;Estudo Empírico;Extra Edits;Software Repositories;Empirical Study
Issue Date: 25-Jul-2019
Publisher: Universidade Federal de Campina Grande
Citation: MOREIRA, J. S. Refactoring and what else? an exploratory study on floss refactoring. 2019. 87 f. Dissertação (Mestrado em Ciência da Computação) – Pós-Graduação em Ciência da Computação, Centro de Engenharia Elétrica e Informática, Universidade Federal de Campina Grande, Paraíba, Brasil, 2019. Disponível em: http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/8435
???metadata.dc.description.resumo???: Refatoramento é uma atividade que visa melhorar a qualidade do design e a legibilidade do código de um sistema sem alterar seu comportamento externo. Refatoramentos são responsáveis por quase 30% de todas as edições de um software. Embora os refatoramentos sejam edições que preservam o comportamento, estudos mostram que desenvolvedores tendem a aplicar mudanças comportamentais intencionais ao lado der refatoramentos (flossrefactoring). Floss-refactorings são conhecidos por serem propensos a erros e requererem revisão de código. No entanto, pouco foi feito para entender como os desenvolvedores relacionam refatoramentos às edições extras. Deste modo, neste trabalho propomos uma estratégia para a extração de dados de floss-refactorings, que pode ser usada para extrair informações detalhadas sobre os refatoramentos e edições extras aplicadas ao longo do histórico de versões do repositório de um projeto Java. Além disso, para entender melhor como os desenvolvedores realizam floss-refactorings no mundo real, conduzimos uma investigação empírica para descobrir como as edições extras são aplicadas com base nos refatoramentos encontrados em um commit. Nós analisamos os commits de 45 repositórios em que as edições de refatoramentos foram aplicadas juntamente com edições extras.Nossos resultados mostraram que, dependendo do refatoramento realizado, há mudanças na probabilidade de algumas edições extras serem aplicadas. Por rexemplo, a introdução de novos métodos é mais comum quando um Extract Method ou um Rename Method é executado.Outras edi ções, como a remoção de um método, a introdução de um novo atributo em uma classe ou mesmo edições específicas dentro de métodos, também apresentaram mudanças significativas em sua probabilidade. Além disso,14,4% das edições extras foram realizadas dentro de entidades refatoradas, das quais as entidades alteradas mais comuns foram Invocação de Método, If Statement, Declaração da Variável, Atribuição e Statement de Retorno. No entanto, a probabilidade de cada tipo de entidade específica a ser alterada varia dependendo do refatoramento executado. Em geral, os padrões de relacionamento entre refatoramentos e edições extras encontrados neste trabalho podem ser usados para guiar a revisão de código, ajudar os desenvolvedores a evitar a iintrodução de faltas relacionadas a floss-refactorings, e orientar outras pesquisas relacionadas a refatoramentos.
Abstract: Refactoring is an activity that aims at improving design quality and code readability of a system without changing its external behavior. It accounts for nearly 30% of all edits in a software life cycle. Although refactorings are behavior-preserving edits, studies show that developers tend to apply intentional behavioral change edits alongside refactorings (flossrefactoring). Floss-refactorings are known to be error-prone and require code revision. However, Little has been done to understand how developers relate refactorings to extra edits. Thus,in this work we propose a strategy for floss-refactoring data extraction, which can be used for extracting detailed information about the refactorings and extra edits applied throughout the versioning history of a Java project repository. In addition,to better understand how developers perform floss refactoring in real world, we conducted an empirical investigation to find out how extra edits are applied base don there factoring found in a commit. We mined repositories of 45 open-source projects and analyzed all commits where refactoring edits were performed along with non-refactoring edits. Our results showed that, depending on the refactoring performed, there are changes on the likelihood of some extra edits to be applied. For instance,the introduction of new methods is more common when an Extract Method or a Rename Method is performed. Other edits, such as the removal of a method, introduction of a new attribute to a class, o reven specific inner method edits, also presented significant change on its likelihood. Moreover, 14,4% of the extra edits were performed inside refactored entities, from which, the most common entities changed were Method Invocation, If Statement, Variable Declaration, Assignment, and Return Statement. However the likelihood of each specific entity type to be changed varies depending on the refactoring performed. Overall, the relationship patterns between refactorings and extra edits found in this work can be used to guide code revision, help developers to avoid faults related to floss refactoring, and to guide other refactoring-related researches.
Keywords: Floss-Refactorings
Edições Extras
Repositórios de Software
Estudo Empírico
Extra Edits
Software Repositories
Empirical Study
???metadata.dc.subject.cnpq???: Ciência da Computação
URI: http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/8435
Appears in Collections:Mestrado em Ciência da Computação.

Files in This Item:
File Description SizeFormat 
JASIEL SILVA MOREIRA - DISSERTAÇÃO (PPGCC) 2019.pdfJaziel Silva Moreira - Dissertação PPGCC 2019655.8 kBAdobe PDFView/Open


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.