DSpace/Manakin Repository

Refactoring and what else? an exploratory study on floss refactoring.

Mostrar registro simples

dc.creator.Lattes http://lattes.cnpq.br/3892880818200205 pt_BR
dc.contributor.advisor1 ANDRADE, Wilkerson de Lucena.
dc.contributor.advisor1ID ANDRADE, W. L. pt_BR
dc.contributor.advisor1Lattes http://lattes.cnpq.br/3697205933296303 pt_BR
dc.contributor.advisor2 ALVES, Everton Leandro Galdino.
dc.contributor.advisor2ID ALVES, E. L. G. pt_BR
dc.contributor.advisor2Lattes http://lattes.cnpq.br/2793969744497453 pt_BR
dc.contributor.referee1 SABINO, Melina Mongiovi Cunha Lima.
dc.contributor.referee2 TEIXEIRA, Leopoldo Motta.
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. pt_BR
dc.publisher.country Brasil pt_BR
dc.publisher.department Centro de Engenharia Elétrica e Informática - CEEI pt_BR
dc.publisher.program PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO pt_BR
dc.publisher.initials UFCG pt_BR
dc.subject.cnpq Ciência da Computação pt_BR
dc.title Refactoring and what else? an exploratory study on floss refactoring. pt_BR
dc.date.issued 2019-07-25
dc.description.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. pt_BR
dc.identifier.uri http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/8435
dc.date.accessioned 2019-10-24T08:20:04Z
dc.date.available 2019-10-23
dc.date.available 2019-10-24T08:20:04Z
dc.type Dissertação pt_BR
dc.subject Floss-Refactorings pt_BR
dc.subject Edições Extras pt_BR
dc.subject Repositórios de Software pt_BR
dc.subject Estudo Empírico pt_BR
dc.subject Extra Edits pt_BR
dc.subject Software Repositories pt_BR
dc.subject Empirical Study pt_BR
dc.rights Acesso Aberto pt_BR
dc.creator MOREIRA, Jaziel Silva.
dc.publisher Universidade Federal de Campina Grande pt_BR
dc.language eng pt_BR
dc.title.alternative Refatoração e o que mais? um estudo exploratório sobre refatoração de fio dental. pt_BR
dc.description.sponsorship CNPq pt_BR
dc.identifier.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 pt_BR


Arquivos deste item

Este item aparece na(s) seguinte(s) coleção(s)

Mostrar registro simples

Buscar DSpace


Busca avançada

Navegar

Minha conta