OLIVEIRA, J. G. B.; http://lattes.cnpq.br/0463475642337466; OLIVEIRA, José Glauber Braz de.
Resumen:
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 conicts
if changes are made in the same place in the code. This work aims to analyze the possible
relationship between refactorings and merge conicts 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 conicts les/-
conicting 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 conicting areas, as well as a moderate correlation between the number of conicts and
the number of types of refactoring performed. 8 types of refactorings were identied at the
conicting le level and also at the conict region level. Through statistical analysis, the
relationship between the number of refactoring types and the number of conicts 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
classied as oss refactoring because they had other types of modications involved in the
process. 88 evolutionary commits analyzed were classied as pure refactoring, representing
16% of evolutionary commits that only have refactoring actions.