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...

Celý popis

Uloženo v:
Podrobná bibliografie
Vydáno v:2022 IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER) s. 731 - 742
Hlavní autoři: Sellitto, Giulia, Iannone, Emanuele, Codabux, Zadia, Lenarduzzi, Valentina, De Lucia, Andrea, Palomba, Fabio, Ferrucci, Filomena
Médium: Konferenční příspěvek
Jazyk:angličtina
Vydáno: IEEE 01.03.2022
Témata:
On-line přístup:Získat plný text
Tagy: Přidat tag
Žádné tagy, Buďte první, kdo vytvoří štítek k tomuto záznamu!
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.3147116
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/eLvHCXMwlV1NTwMhECVt48GTmtb4HQ4exe7yuRyNadVL09Q26a2BZYi97Jq69fcLbNN68OKNQAKBCTMMvMdD6N57yp2mguSWMsJlyYg1TBHndYh2hRGC2iQ2oSaTYrnU0w562HNhACCBz-AxFtNbvqvLbbwqG-qQzhSF6KKuUrLlau1IOXmmh-9Pk9FMRKJkSPto-oczedqDaEqKGeOT_412igYH8h2e7sPKGepA1Ucv8wRvxYvfXBQcDm_4LdEcce3xDFrxnNhSV7GPiLzCccdv4CMC1etqgBbj0fz5lew0EMiaZqwhmhmhJajMGCWFccYAGBt8UsgEnNMll5BBMAO4TDjuoFTGS0kteM41A8POUa-qK7hAmDPGnMttWeTArXaGMepNfLcMVTTTl6gfF2H12X5zsdrN_-rv6mt0HFe5hWPdoF6z2cItOiq_m_XX5i7Z5gdvgpRo
linkProvider IEEE
linkToHtml http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV1NTwIxEJ0gmuhJDRi_7cGjld1-7G6PxoAQcUMQEm6ku52NXHYNgr_ftmzAgxdvzTRp0zbtdNr35gHcFwUTRjFJw4xxKqKc00zzmJpCWW-XaClZ5sUm4jRNZjM1asDDlguDiB58ho-u6P_yTZWv3VNZR9lwJknkHuw75ayarVXTcsJAdd6f0u5YOqqkDfyYz8Tpz9qdbIr3Gr3j__V3Au0d_Y6Mto7lFBpYtuBl4gGuZPqbjULs9Y0MPNGRVAUZ40Y-x9VUpWvDYa-I2_NL_HBQ9apsw7TXnTz3aa2CQBcs4CuquJYqwjjQOo6kNloj6syeSjYWMEblIsIA7UKgCaQRBvNYF1HEMiyEUBw1P4NmWZV4DkRwzo0JszwJUWTKaM5Zod3PpTWxQF1Ay03C_HOT6GJej__yb_MdHPYnb8P5cJC-XsGRm_ENOOsamqvlGm_gIP9eLb6Wt36dfgBYDZex
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