Toward Understanding the Impact of Refactoring on Program Comprehension
Software 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...
Saved in:
| Published in: | 2022 IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER) pp. 731 - 742 |
|---|---|
| Main Authors: | , , , , , , |
| Format: | Conference Proceeding |
| Language: | English |
| Published: |
IEEE
01.03.2022
|
| Subjects: | |
| Online Access: | Get full text |
| Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
| Abstract | Software 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. |
|---|---|
| AbstractList | Software 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. |
| Author | Iannone, Emanuele Sellitto, Giulia Ferrucci, Filomena Codabux, Zadia Lenarduzzi, Valentina De Lucia, Andrea Palomba, Fabio |
| Author_xml | – sequence: 1 givenname: Giulia surname: Sellitto fullname: Sellitto, Giulia email: gisellitto@unisa.it organization: University of Salerno,Software Engineering (SeSa) Lab,Department of Computer Science,Italy – sequence: 2 givenname: Emanuele surname: Iannone fullname: Iannone, Emanuele email: eiannone@unisa.it organization: University of Salerno,Software Engineering (SeSa) Lab,Department of Computer Science,Italy – sequence: 3 givenname: Zadia surname: Codabux fullname: Codabux, Zadia email: zadiacodabux@ieee.org organization: University of Saskatchewan,Canada – sequence: 4 givenname: Valentina surname: Lenarduzzi fullname: Lenarduzzi, Valentina email: valentina.lenarduzzi@oulu.fi organization: University of Oulu,Finland – sequence: 5 givenname: Andrea surname: De Lucia fullname: De Lucia, Andrea email: adelucia@unisa.it organization: University of Salerno,Software Engineering (SeSa) Lab,Department of Computer Science,Italy – sequence: 6 givenname: Fabio surname: Palomba fullname: Palomba, Fabio email: fpalomba@unisa.it organization: University of Salerno,Software Engineering (SeSa) Lab,Department of Computer Science,Italy – sequence: 7 givenname: Filomena surname: Ferrucci fullname: Ferrucci, Filomena email: fferrucci@unisa.it organization: University of Salerno,Software Engineering (SeSa) Lab,Department of Computer Science,Italy |
| BookMark | eNotjMtKw0AUQEfQha1-gQjzA4k380pmWUKthaJS23W5zb1pA2YmTALi36vU1Tlw4MzEdYiBhXgsIC8K8E8fi9fl1mqjVa5AqRwAPFyJWeGcNbqsnL4Vq138wkRyH4jTOGGgLpzkdGa57gdsJhlbueX212L6KzHI9xRPCXtZx35IfOYwdjHciZsWP0e-_-dc7J-Xu_ol27yt1vVik3UK9JR5jdY7LgGxdBYJkRmPRGytJ_KNcQzMTcMElgxxU2LrnDpya4zXjHouHi7fjpkPQ-p6TN8HXylbVVb_AB8WS-I |
| CODEN | IEEPAD |
| ContentType | Conference Proceeding |
| DBID | 6IE 6IL CBEJK RIE RIL |
| DOI | 10.1109/SANER53432.2022.00090 |
| DatabaseName | IEEE Electronic Library (IEL) Conference Proceedings IEEE Xplore POP ALL IEEE Xplore All Conference Proceedings IEEE Electronic Library (IEL) IEEE Proceedings Order Plans (POP All) 1998-Present |
| DatabaseTitleList | |
| Database_xml | – sequence: 1 dbid: RIE name: IEEE Electronic Library (IEL) url: https://ieeexplore.ieee.org/ sourceTypes: Publisher |
| DeliveryMethod | fulltext_linktorsrc |
| EISBN | 1665437863 9781665437868 |
| EndPage | 742 |
| ExternalDocumentID | 9825885 |
| Genre | orig-research |
| GrantInformation_xml | – fundername: Swiss National Science Foundation grantid: PZ00P2 186090 (TED) funderid: 10.13039/501100001711 – fundername: Natural Sciences and Engineering Research Council of Canada grantid: RGPIN-2021-04232,DGECR-2021-00283 funderid: 10.13039/501100000038 |
| GroupedDBID | 6IE 6IL CBEJK RIE RIL |
| ID | FETCH-LOGICAL-i203t-93a596e70aa765adaaeeabdde559dd9c46e0eecced05d4dec7af662bef4493ea3 |
| IEDL.DBID | RIE |
| ISICitedReferencesCount | 10 |
| ISICitedReferencesURI | http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=000855050800078&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| IngestDate | Thu Jun 29 18:36:50 EDT 2023 |
| IsPeerReviewed | false |
| IsScholarly | true |
| Language | English |
| LinkModel | DirectLink |
| MergedId | FETCHMERGED-LOGICAL-i203t-93a596e70aa765adaaeeabdde559dd9c46e0eecced05d4dec7af662bef4493ea3 |
| PageCount | 12 |
| ParticipantIDs | ieee_primary_9825885 |
| PublicationCentury | 2000 |
| PublicationDate | 2022-March |
| PublicationDateYYYYMMDD | 2022-03-01 |
| PublicationDate_xml | – month: 03 year: 2022 text: 2022-March |
| PublicationDecade | 2020 |
| PublicationTitle | 2022 IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER) |
| PublicationTitleAbbrev | SANER |
| PublicationYear | 2022 |
| Publisher | IEEE |
| Publisher_xml | – name: IEEE |
| Score | 2.3146172 |
| Snippet | Software refactoring is the activity associated with developers changing the internal structure of source code without modifying its external behavior. The... |
| SourceID | ieee |
| SourceType | Publisher |
| StartPage | 731 |
| SubjectTerms | Behavioral sciences Codes Computational modeling Conferences Data mining Empirical Software Engineering Measurement Program Comprehension Program Readability Readability metrics Software Refactoring |
| Title | Toward Understanding the Impact of Refactoring on Program Comprehension |
| URI | https://ieeexplore.ieee.org/document/9825885 |
| WOSCitedRecordID | wos000855050800078&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| hasFullText | 1 |
| inHoldings | 1 |
| isFullTextHit | |
| isPrint | |
| link | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV1LSwMxEB7a4sGTSiu-ycGja7O7eWyOIq0KspTaQm8lm8xiL7uybf39JtnSevDiLSSQkBkyk0m-bwbg3kr_O5XGzvppjFghVaRFxiKGEp03QJ3yQBR-l3meLRZq0oGHPRcGEQP4DB99M_zl29ps_VPZULlwJst4F7pSipartSPlxFQNP57y0ZR7oqQL-5KQhzNY2kPRlOAzxif_W-0UBgfyHZns3coZdLDqw8sswFvJ_DcXhbjLG3kLNEdSl2SKbfEcP1JXfg6PvCL-xDf46YHqdTWA-Xg0e36NdjUQolVC002kUs2VQEm1loJrqzWiLpxNcpGAtcowgRSdGtBSbplFI3UpRFJgyZhKnajPoVfVFV4A4ToplDG0TIxitIw18kxYUWBSZJZjfAl9L4TlV5vmYrnb_9Xf3ddw7KXcwrFuoLdptngLR-Z7s1o3d0E3PzsalNE |
| linkProvider | IEEE |
| linkToHtml | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV1LTwIxEJ4gmuhJDRjf9uDRlX30sT0aA0LEDUFIuJFuOxu57BoEf79t2YAHL96aNmnTmXSm037fDMC9Ee53Koms9VMY0FzIQPGUBhQFWm-AKmGeKDwUWZbOZnLUgIctFwYRPfgMH13T_-WbSq_dU1lH2nAmTdke7LvKWTVbq6blRKHsvD9l3TFzVEkb-MU-E6e3tbuyKd5r9I7_t94JtHf0OzLaOpZTaGDZgpeJB7iS6W82CrHXNzLwREdSFWSMm_I5bqQq3RwOe0XcmV_ih4OqV2Ubpr3u5Lkf1FUQgkUcJqtAJopJjiJUSnCmjFKIKrdWycYCxkhNOYZoFYEmZIYa1EIVnMc5FpTKxAr7DJplVeI5EKbiXGodFrGWNCwihSzlhucY56lhGF1Aywlh_rlJdDGv93_5d_cdHPYnb8P5cJC9XsGRk_gGnHUNzdVyjTdwoL9Xi6_lrdfTDygpmBo |
| openUrl | ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=proceeding&rft.title=2022+IEEE+International+Conference+on+Software+Analysis%2C+Evolution+and+Reengineering+%28SANER%29&rft.atitle=Toward+Understanding+the+Impact+of+Refactoring+on+Program+Comprehension&rft.au=Sellitto%2C+Giulia&rft.au=Iannone%2C+Emanuele&rft.au=Codabux%2C+Zadia&rft.au=Lenarduzzi%2C+Valentina&rft.date=2022-03-01&rft.pub=IEEE&rft.spage=731&rft.epage=742&rft_id=info:doi/10.1109%2FSANER53432.2022.00090&rft.externalDocID=9825885 |