Characterizing refactoring graphs in Java and JavaScript projects.
Saved in:
| Title: | Characterizing refactoring graphs in Java and JavaScript projects. |
|---|---|
| Authors: | Brito, Aline1 (AUTHOR) alinebrito@dcc.ufmg.br, Hora, Andre1 (AUTHOR), Valente, Marco Tulio1 (AUTHOR) |
| Source: | Empirical Software Engineering. Nov2021, Vol. 26 Issue 6, p1-43. 43p. |
| Abstract: | Refactoring is an essential activity during software evolution. Frequently, practitioners rely on such transformations to improve source code maintainability and quality. As a consequence, this process may produce new source code entities or change the structure of existing ones. Sometimes, the transformations are atomic, i.e., performed in a single commit. In other cases, they generate sequences of modifications performed over time. To study and reason about refactorings over time, we rely on refactoring graphs. Using this abstraction, we provide quantitative and qualitative investigation on 20 popular open-source Java and JavaScript-based projects. After eliminating trivial graphs, we characterize a large sample of 1,525 refactoring graphs, providing quantitative data on their size, commits, age, refactoring composition, ownership, operations over time, and refactoring graph patterns. Besides, we contact the authors of subgraphs describing large refactoring operations to understand the reasons behind their operations. We conclude by discussing applications and implications of refactoring graphs, for example, to improve code comprehension, detect refactoring patterns, and support software evolution studies. [ABSTRACT FROM AUTHOR] |
| Copyright of Empirical Software Engineering is the property of Springer Nature and its content may not be copied or emailed to multiple sites without the copyright holder's express written permission. Additionally, content may not be used with any artificial intelligence tools or machine learning technologies. However, users may print, download, or email articles for individual use. This abstract may be abridged. No warranty is given about the accuracy of the copy. Users should refer to the original published version of the material for the full abstract. (Copyright applies to all Abstracts.) | |
| Database: | Engineering Source |
| FullText | Text: Availability: 0 |
|---|---|
| Header | DbId: egs DbLabel: Engineering Source An: 152505908 AccessLevel: 6 PubType: Academic Journal PubTypeId: academicJournal PreciseRelevancyScore: 0 |
| IllustrationInfo | |
| Items | – Name: Title Label: Title Group: Ti Data: Characterizing refactoring graphs in Java and JavaScript projects. – Name: Author Label: Authors Group: Au Data: <searchLink fieldCode="AR" term="%22Brito%2C+Aline%22">Brito, Aline</searchLink><relatesTo>1</relatesTo> (AUTHOR)<i> alinebrito@dcc.ufmg.br</i><br /><searchLink fieldCode="AR" term="%22Hora%2C+Andre%22">Hora, Andre</searchLink><relatesTo>1</relatesTo> (AUTHOR)<br /><searchLink fieldCode="AR" term="%22Valente%2C+Marco+Tulio%22">Valente, Marco Tulio</searchLink><relatesTo>1</relatesTo> (AUTHOR) – Name: TitleSource Label: Source Group: Src Data: <searchLink fieldCode="JN" term="%22Empirical+Software+Engineering%22">Empirical Software Engineering</searchLink>. Nov2021, Vol. 26 Issue 6, p1-43. 43p. – Name: Abstract Label: Abstract Group: Ab Data: Refactoring is an essential activity during software evolution. Frequently, practitioners rely on such transformations to improve source code maintainability and quality. As a consequence, this process may produce new source code entities or change the structure of existing ones. Sometimes, the transformations are atomic, i.e., performed in a single commit. In other cases, they generate sequences of modifications performed over time. To study and reason about refactorings over time, we rely on refactoring graphs. Using this abstraction, we provide quantitative and qualitative investigation on 20 popular open-source Java and JavaScript-based projects. After eliminating trivial graphs, we characterize a large sample of 1,525 refactoring graphs, providing quantitative data on their size, commits, age, refactoring composition, ownership, operations over time, and refactoring graph patterns. Besides, we contact the authors of subgraphs describing large refactoring operations to understand the reasons behind their operations. We conclude by discussing applications and implications of refactoring graphs, for example, to improve code comprehension, detect refactoring patterns, and support software evolution studies. [ABSTRACT FROM AUTHOR] – Name: AbstractSuppliedCopyright Label: Group: Ab Data: <i>Copyright of Empirical Software Engineering is the property of Springer Nature and its content may not be copied or emailed to multiple sites without the copyright holder's express written permission. Additionally, content may not be used with any artificial intelligence tools or machine learning technologies. However, users may print, download, or email articles for individual use. This abstract may be abridged. No warranty is given about the accuracy of the copy. Users should refer to the original published version of the material for the full abstract.</i> (Copyright applies to all Abstracts.) |
| PLink | https://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=egs&AN=152505908 |
| RecordInfo | BibRecord: BibEntity: Identifiers: – Type: doi Value: 10.1007/s10664-021-10023-3 Languages: – Code: eng Text: English PhysicalDescription: Pagination: PageCount: 43 StartPage: 1 Titles: – TitleFull: Characterizing refactoring graphs in Java and JavaScript projects. Type: main BibRelationships: HasContributorRelationships: – PersonEntity: Name: NameFull: Brito, Aline – PersonEntity: Name: NameFull: Hora, Andre – PersonEntity: Name: NameFull: Valente, Marco Tulio IsPartOfRelationships: – BibEntity: Dates: – D: 01 M: 11 Text: Nov2021 Type: published Y: 2021 Identifiers: – Type: issn-print Value: 13823256 Numbering: – Type: volume Value: 26 – Type: issue Value: 6 Titles: – TitleFull: Empirical Software Engineering Type: main |
| ResultId | 1 |