Exportação concluída — 

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

Detalhes bibliográficos
Ano de defesa: 2019
Autor(a) principal: MOREIRA, Jaziel Silva.
Orientador(a): Não Informado pela instituição
Banca de defesa: Não Informado pela instituição
Tipo de documento: Dissertação
Tipo de acesso: Acesso aberto
Idioma: eng
Instituição de defesa: Universidade Federal de Campina Grande
Brasil
Centro de Engenharia Elétrica e Informática - CEEI
PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO
UFCG
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: http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/8435
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.
id UCB-2_7bde83a5e5143561b33e4f634b87bbb0
oai_identifier_str oai:localhost:riufcg/8435
network_acronym_str UCB-2
network_name_str Repositório Institucional da UCB
repository_id_str
spelling Refactoring and what else? an exploratory study on floss refactoring.Refatoração e o que mais? um estudo exploratório sobre refatoração de fio dental.Floss-RefactoringsEdições ExtrasRepositórios de SoftwareEstudo EmpíricoExtra EditsSoftware RepositoriesEmpirical StudyCiência da ComputaçãoRefatoramento é 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.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.CNPqUniversidade Federal de Campina GrandeBrasilCentro de Engenharia Elétrica e Informática - CEEIPÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃOUFCGANDRADE, Wilkerson de Lucena.ANDRADE, W. L.http://lattes.cnpq.br/3697205933296303ALVES, Everton Leandro Galdino.ALVES, E. L. G.http://lattes.cnpq.br/2793969744497453SABINO, Melina Mongiovi Cunha Lima.TEIXEIRA, Leopoldo Motta.MOREIRA, Jaziel Silva.2019-07-252019-10-24T08:20:04Z2019-10-232019-10-24T08:20:04Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesishttp://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/8435MOREIRA, 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/8435enginfo:eu-repo/semantics/openAccessreponame:Repositório Institucional da UCBinstname:Universidade Católica de Brasília (UCB)instacron:UCB2022-03-30T12:22:04Zoai:localhost:riufcg/8435Repositório InstitucionalPRIhttps://repositorio.ucb.br/oai/requestsara.ribeiro@ucb.bropendoar:2022-03-30T12:22:04Repositório Institucional da UCB - Universidade Católica de Brasília (UCB)false
dc.title.none.fl_str_mv Refactoring and what else? an exploratory study on floss refactoring.
Refatoração e o que mais? um estudo exploratório sobre refatoração de fio dental.
title Refactoring and what else? an exploratory study on floss refactoring.
spellingShingle Refactoring and what else? an exploratory study on floss refactoring.
MOREIRA, Jaziel Silva.
Floss-Refactorings
Edições Extras
Repositórios de Software
Estudo Empírico
Extra Edits
Software Repositories
Empirical Study
Ciência da Computação
title_short Refactoring and what else? an exploratory study on floss refactoring.
title_full Refactoring and what else? an exploratory study on floss refactoring.
title_fullStr Refactoring and what else? an exploratory study on floss refactoring.
title_full_unstemmed Refactoring and what else? an exploratory study on floss refactoring.
title_sort Refactoring and what else? an exploratory study on floss refactoring.
author MOREIRA, Jaziel Silva.
author_facet MOREIRA, Jaziel Silva.
author_role author
dc.contributor.none.fl_str_mv ANDRADE, Wilkerson de Lucena.
ANDRADE, W. L.
http://lattes.cnpq.br/3697205933296303
ALVES, Everton Leandro Galdino.
ALVES, E. L. G.
http://lattes.cnpq.br/2793969744497453
SABINO, Melina Mongiovi Cunha Lima.
TEIXEIRA, Leopoldo Motta.
dc.contributor.author.fl_str_mv MOREIRA, Jaziel Silva.
dc.subject.por.fl_str_mv Floss-Refactorings
Edições Extras
Repositórios de Software
Estudo Empírico
Extra Edits
Software Repositories
Empirical Study
Ciência da Computação
topic Floss-Refactorings
Edições Extras
Repositórios de Software
Estudo Empírico
Extra Edits
Software Repositories
Empirical Study
Ciência da Computação
description 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.
publishDate 2019
dc.date.none.fl_str_mv 2019-07-25
2019-10-24T08:20:04Z
2019-10-23
2019-10-24T08:20:04Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/8435
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
url http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/8435
identifier_str_mv 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
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 Universidade Federal de Campina Grande
Brasil
Centro de Engenharia Elétrica e Informática - CEEI
PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO
UFCG
publisher.none.fl_str_mv Universidade Federal de Campina Grande
Brasil
Centro de Engenharia Elétrica e Informática - CEEI
PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO
UFCG
dc.source.none.fl_str_mv reponame:Repositório Institucional da UCB
instname:Universidade Católica de Brasília (UCB)
instacron:UCB
instname_str Universidade Católica de Brasília (UCB)
instacron_str UCB
institution UCB
reponame_str Repositório Institucional da UCB
collection Repositório Institucional da UCB
repository.name.fl_str_mv Repositório Institucional da UCB - Universidade Católica de Brasília (UCB)
repository.mail.fl_str_mv sara.ribeiro@ucb.br
_version_ 1834013168058236928