Toward understanding the impact of refactoring on program comprehension |
|
Author: | Sellitto, Giulia1; Iannone, Emanuele1; Codabux, Zadia2; |
Organizations: |
1Software Engineering (SeSa) Lab, Department of Computer Science - University of Salerno, Italy 2University of Saskatchewan, Canada 3University of Oulu, Finland |
Format: | article |
Version: | accepted version |
Access: | open |
Online Access: | PDF Full Text (PDF, 0.2 MB) |
Persistent link: | http://urn.fi/urn:nbn:fi-fe2023040635360 |
Language: | English |
Published: |
Institute of Electrical and Electronic Engineers,
2022
|
Publish Date: | 2023-04-06 |
Description: |
AbstractSoftware refactoring is the activity associated with developers changing the internal structure of source code without modifying its external behavior. The literature argues that refactoring might have beneficial and harmful implications for software maintainability, primarily when performed without the support of automated tools. This paper continues the narrative on the effects of refactoring by exploring the dimension of program comprehension, namely the property that describes how easy it is for developers to understand source code. We start our investigation by assessing the basic unit of program comprehension, namely program readability. Next, we set up a large-scale empirical investigation — conducted on 156 open-source projects — to quantify the impact of refactoring on program readability. First, we mine refactoring data and, for each commit involving a refactoring, we compute (i) the amount and type(s) of refactoring actions performed and (ii) eight state-of-the-art program comprehension metrics. Afterwards, we build statistical models relating the various refactoring operations to each of the readability metrics considered to quantify the extent to which each refactoring impacts the metrics in either a positive or negative manner. The key results are that refactoring has a notable impact on most of the readability metrics considered. see all
|
Series: |
IEEE International Conference on Software Analysis, Evolution and Reengineering |
ISSN: | 1534-5351 |
ISSN-E: | 2640-7574 |
ISSN-L: | 1534-5351 |
ISBN: | 978-1-6654-3786-8 |
ISBN Print: | 978-1-6654-3787-5 |
DOI: | 10.1109/saner53432.2022.00090 |
OADOI: | https://oadoi.org/10.1109/saner53432.2022.00090 |
Host publication: |
2022 IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER) |
Conference: |
IEEE International Conference on Software Analysis, Evolution and Reengineering |
Type of Publication: |
A4 Article in conference proceedings |
Field of Science: |
113 Computer and information sciences |
Subjects: | |
Funding: |
Zadia is partly supported by the Natural Sciences and Engineering Research Council of Canada, RGPIN-2021-04232 and DGECR-2021-00283. Fabio acknowledges the support of the Swiss National Science Foundation through the SNF Project No. PZ00P2 186090 (TED). |
Copyright information: |
© 2022 IEEE. Personal use of this material is permitted. Permission from IEEE must be obtained for all other uses, in any current or future media, including reprinting/republishing this material for advertising or promotional purposes, creating new collective works, for resale or redistribution to servers or lists, or reuse of any copyrighted component of this work in other works. |