An empirical study of the relationship between refactorings and merge conflicts in javascript repositories

Detalhes bibliográficos
Autor(a) principal: OLIVEIRA, José Glauber Braz de.
Data de Publicação: 2023
Tipo de documento: Dissertação
Idioma: por
Título da fonte: Biblioteca Digital de Teses e Dissertações da UFCG
Texto Completo: http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/36840
Resumo: Atividades de manutenção são cruciais para prolongar o ciclo de vida de um software. Uma atividade importante durante a manutenção de software é a refatoração, que é uma transfor mação que melhora a qualidade de um programa sem alterar seu comportamento. Durante o desenvolvimento de software, Sistemas de Controle de Versão (SCV) são utilizados para inte grar as mudanças feitas pelos desenvolvedores. Esses procedimentos de integração, conheci dos como processos de mesclagem, podem resultar em conitos se forem feitas alterações no mesmo lugar do código. Este trabalho tem por objetivo analisar a possível relação entre refatorações e conitos de mesclagem em código JavaScript. Analisamos 76 repositórios JavaScript, incluindo 81.856 cenários de mesclagem, dos quais 6.356 apresentam coni tos. Nós descobrimos uma correlação positiva moderada entre o número de arquivos de conitos/regiões em conito e relação/número de refatorações. Para a segunda questão de pesquisa descobrimos que os tipos de refatoração Internal move, Move e Rename estão mais relacionados às áreas conitantes, bem como correlação moderada entre o número de coni tos e o número de tipos de refatoração realizadas. Através de análises estatísticas, a relação entre o número de tipos de refatorações e o número de conitos foi o mais forte encontrado em nosso estudo. 8 tipos de refatorações foram identicados ao nível dos arquivos coni tantes e a nível de região de conito. Além da nossa análise automática para as QP1 e QP2, foi realizado um estudo manual para a QP3 que analisou 535 commits, vericando que 447 (84%) destes foram classicados como oss refactoring, possuindo outros tipos de modi- cações envolvidas no processo. 88 commits evolutivos analisados foram classicados como pure refactoring, representando 16% dos commits evolutivos.
id UFCG_35d2f69dbf9e4a0748784ea01b325b18
oai_identifier_str oai:localhost:riufcg/36840
network_acronym_str UFCG
network_name_str Biblioteca Digital de Teses e Dissertações da UFCG
repository_id_str 4851
spelling An empirical study of the relationship between refactorings and merge conflicts in javascript repositoriesUm estudo empírico da relação entre refatorações e mesclagem Conflitos em repositórios JavaScriptJavascriptMerge ConflictsRefactoringsSoftware EngineeringComputer Software ProgramJavascriptMesclar conflitosRefatoraçãoEngenharia de SoftwarePrograma de software de computadorCiência da ComputaçãoAtividades de manutenção são cruciais para prolongar o ciclo de vida de um software. Uma atividade importante durante a manutenção de software é a refatoração, que é uma transfor mação que melhora a qualidade de um programa sem alterar seu comportamento. Durante o desenvolvimento de software, Sistemas de Controle de Versão (SCV) são utilizados para inte grar as mudanças feitas pelos desenvolvedores. Esses procedimentos de integração, conheci dos como processos de mesclagem, podem resultar em conitos se forem feitas alterações no mesmo lugar do código. Este trabalho tem por objetivo analisar a possível relação entre refatorações e conitos de mesclagem em código JavaScript. Analisamos 76 repositórios JavaScript, incluindo 81.856 cenários de mesclagem, dos quais 6.356 apresentam coni tos. Nós descobrimos uma correlação positiva moderada entre o número de arquivos de conitos/regiões em conito e relação/número de refatorações. Para a segunda questão de pesquisa descobrimos que os tipos de refatoração Internal move, Move e Rename estão mais relacionados às áreas conitantes, bem como correlação moderada entre o número de coni tos e o número de tipos de refatoração realizadas. Através de análises estatísticas, a relação entre o número de tipos de refatorações e o número de conitos foi o mais forte encontrado em nosso estudo. 8 tipos de refatorações foram identicados ao nível dos arquivos coni tantes e a nível de região de conito. Além da nossa análise automática para as QP1 e QP2, foi realizado um estudo manual para a QP3 que analisou 535 commits, vericando que 447 (84%) destes foram classicados como oss refactoring, possuindo outros tipos de modi- cações envolvidas no processo. 88 commits evolutivos analisados foram classicados como pure refactoring, representando 16% dos commits evolutivos.Maintenance activities are crucial to prolong the lifecycle of a software. An important ac tivity during software maintenance is refactoring, which is a transformation that improves the quality of the internal structure of the code without changing its behavior. During soft ware development, Version Control Systems (VCS) are used to integrate changes made by developers. These integration procedures, known as merge processes, may result in conicts if changes are made in the same place in the code. This work aims to analyze the possible relationship between refactorings and merge conicts in JavaScript code. We analyzed 76 JavaScript repositories, including 81,856 merge scenarios, which 6,356 of them have con- icts. We discovered a moderate positive correlation between the number of conicts les/- conicting regions and relationship/number of refactoring. For the second research question we found that the refactoring types Internal move, Move and Rename are more related to the conicting areas, as well as a moderate correlation between the number of conicts and the number of types of refactoring performed. 8 types of refactorings were identied at the conicting le level and also at the conict region level. Through statistical analysis, the relationship between the number of refactoring types and the number of conicts was the strongest found result in our study. In addition to our automatic analysis, a manual study was conducted that analyzed 535 evolutionary commits, verifying that 447 (84%) of these were classied as oss refactoring because they had other types of modications involved in the process. 88 evolutionary commits analyzed were classied as pure refactoring, representing 16% of evolutionary commits that only have refactoring actions.Universidade Federal de Campina GrandeBrasilCentro de Engenharia Elétrica e Informática - CEEIPÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃOUFCGSABINO, Melina Mongiovi Cunha Lima.SOUTO, Sabrina de Figueiredo.SOUTO, S. F.http://lattes.cnpq.br/0595422027989879ALVES, Everton Leandro Galdino.TEIXEIRA, Leopoldo MottaOLIVEIRA, José Glauber Braz de.2023-12-142024-07-24T19:57:43Z2024-07-242024-07-24T19:57:43Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesishttp://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/36840OLIVEIRA, José Glauber Braz de. An empirical study of the relationship between refactorings and merge conflicts in javascript repositories. 2024. 86 f. Dissertação (Mestrado em Ciência da Computação) – Programa de 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, 2024.porinfo:eu-repo/semantics/openAccessreponame:Biblioteca Digital de Teses e Dissertações da UFCGinstname:Universidade Federal de Campina Grande (UFCG)instacron:UFCG2024-07-24T19:57:43Zoai:localhost:riufcg/36840Biblioteca Digital de Teses e Dissertaçõeshttp://bdtd.ufcg.edu.br/PUBhttp://dspace.sti.ufcg.edu.br:8080/oai/requestbdtd@setor.ufcg.edu.br || bdtd@setor.ufcg.edu.bropendoar:48512024-07-24T19:57:43Biblioteca Digital de Teses e Dissertações da UFCG - Universidade Federal de Campina Grande (UFCG)false
dc.title.none.fl_str_mv An empirical study of the relationship between refactorings and merge conflicts in javascript repositories
Um estudo empírico da relação entre refatorações e mesclagem Conflitos em repositórios JavaScript
title An empirical study of the relationship between refactorings and merge conflicts in javascript repositories
spellingShingle An empirical study of the relationship between refactorings and merge conflicts in javascript repositories
OLIVEIRA, José Glauber Braz de.
Javascript
Merge Conflicts
Refactorings
Software Engineering
Computer Software Program
Javascript
Mesclar conflitos
Refatoração
Engenharia de Software
Programa de software de computador
Ciência da Computação
title_short An empirical study of the relationship between refactorings and merge conflicts in javascript repositories
title_full An empirical study of the relationship between refactorings and merge conflicts in javascript repositories
title_fullStr An empirical study of the relationship between refactorings and merge conflicts in javascript repositories
title_full_unstemmed An empirical study of the relationship between refactorings and merge conflicts in javascript repositories
title_sort An empirical study of the relationship between refactorings and merge conflicts in javascript repositories
author OLIVEIRA, José Glauber Braz de.
author_facet OLIVEIRA, José Glauber Braz de.
author_role author
dc.contributor.none.fl_str_mv SABINO, Melina Mongiovi Cunha Lima.
SOUTO, Sabrina de Figueiredo.
SOUTO, S. F.
http://lattes.cnpq.br/0595422027989879
ALVES, Everton Leandro Galdino.
TEIXEIRA, Leopoldo Motta
dc.contributor.author.fl_str_mv OLIVEIRA, José Glauber Braz de.
dc.subject.por.fl_str_mv Javascript
Merge Conflicts
Refactorings
Software Engineering
Computer Software Program
Javascript
Mesclar conflitos
Refatoração
Engenharia de Software
Programa de software de computador
Ciência da Computação
topic Javascript
Merge Conflicts
Refactorings
Software Engineering
Computer Software Program
Javascript
Mesclar conflitos
Refatoração
Engenharia de Software
Programa de software de computador
Ciência da Computação
description Atividades de manutenção são cruciais para prolongar o ciclo de vida de um software. Uma atividade importante durante a manutenção de software é a refatoração, que é uma transfor mação que melhora a qualidade de um programa sem alterar seu comportamento. Durante o desenvolvimento de software, Sistemas de Controle de Versão (SCV) são utilizados para inte grar as mudanças feitas pelos desenvolvedores. Esses procedimentos de integração, conheci dos como processos de mesclagem, podem resultar em conitos se forem feitas alterações no mesmo lugar do código. Este trabalho tem por objetivo analisar a possível relação entre refatorações e conitos de mesclagem em código JavaScript. Analisamos 76 repositórios JavaScript, incluindo 81.856 cenários de mesclagem, dos quais 6.356 apresentam coni tos. Nós descobrimos uma correlação positiva moderada entre o número de arquivos de conitos/regiões em conito e relação/número de refatorações. Para a segunda questão de pesquisa descobrimos que os tipos de refatoração Internal move, Move e Rename estão mais relacionados às áreas conitantes, bem como correlação moderada entre o número de coni tos e o número de tipos de refatoração realizadas. Através de análises estatísticas, a relação entre o número de tipos de refatorações e o número de conitos foi o mais forte encontrado em nosso estudo. 8 tipos de refatorações foram identicados ao nível dos arquivos coni tantes e a nível de região de conito. Além da nossa análise automática para as QP1 e QP2, foi realizado um estudo manual para a QP3 que analisou 535 commits, vericando que 447 (84%) destes foram classicados como oss refactoring, possuindo outros tipos de modi- cações envolvidas no processo. 88 commits evolutivos analisados foram classicados como pure refactoring, representando 16% dos commits evolutivos.
publishDate 2023
dc.date.none.fl_str_mv 2023-12-14
2024-07-24T19:57:43Z
2024-07-24
2024-07-24T19:57:43Z
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/36840
OLIVEIRA, José Glauber Braz de. An empirical study of the relationship between refactorings and merge conflicts in javascript repositories. 2024. 86 f. Dissertação (Mestrado em Ciência da Computação) – Programa de 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, 2024.
url http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/36840
identifier_str_mv OLIVEIRA, José Glauber Braz de. An empirical study of the relationship between refactorings and merge conflicts in javascript repositories. 2024. 86 f. Dissertação (Mestrado em Ciência da Computação) – Programa de 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, 2024.
dc.language.iso.fl_str_mv por
language por
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:Biblioteca Digital de Teses e Dissertações da UFCG
instname:Universidade Federal de Campina Grande (UFCG)
instacron:UFCG
instname_str Universidade Federal de Campina Grande (UFCG)
instacron_str UFCG
institution UFCG
reponame_str Biblioteca Digital de Teses e Dissertações da UFCG
collection Biblioteca Digital de Teses e Dissertações da UFCG
repository.name.fl_str_mv Biblioteca Digital de Teses e Dissertações da UFCG - Universidade Federal de Campina Grande (UFCG)
repository.mail.fl_str_mv bdtd@setor.ufcg.edu.br || bdtd@setor.ufcg.edu.br
_version_ 1809744630063824896