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žené v:
Podrobná bibliografia
Vydané v:2022 IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER) s. 731 - 742
Hlavní autori: Sellitto, Giulia, Iannone, Emanuele, Codabux, Zadia, Lenarduzzi, Valentina, De Lucia, Andrea, Palomba, Fabio, Ferrucci, Filomena
Médium: Konferenčný príspevok..
Jazyk:English
Vydavateľské údaje: IEEE 01.03.2022
Predmet:
On-line prístup:Získať plný text
Tagy: Pridať tag
Žiadne tagy, Buďte prvý, kto otaguje tento záznam!
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/IET Electronic Library (IEL) (UW System Shared)
IEEE Proceedings Order Plans (POP All) 1998-Present
DatabaseTitleList
Database_xml – sequence: 1
  dbid: RIE
  name: 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/eLvHCXMwlV3PT8MgFH7ZFg-e1GzG3-HgURwrLZSjMZt6aZa5JbsttDziLq2pnX-_QJvNgxdvBBIIPOC9B9_3HsA9Ch_9luV04rQpjdFwqmMrqbBconUbJk9tSDYhsyxdr9W8Bw97LgwiBvAZPvpi-Ms3VbHzT2Vj5dyZNE360JdStFytjpQzYWr8_pRNF4knSjq3LwpxOMNNe0iaEnTG7OR_o53C6EC-I_O9WjmDHpZDeFkGeCtZ_eaiEGe8kbdAcySVJQtsk-f4lqr0fXjkFfEnvsYPD1SvyhGsZtPl8yvtciDQbcR4QxXXiRIomdZSJNpojahzdyc5T8AYVcQCGToxoGGJiQ0WUlshohxtHCuOmp_DoKxKvADCU2cNGFFwlOi__1LFnACVSLgwzmxglzD0i7D5bMNcbLr5X_1dfQ3HfpVbONYNDJp6h7dwVHw326_6LsjmBzXik9U
linkProvider IEEE
linkToHtml http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV3PT8IwFH5BNNGTGjD-tgePVgrd2vVoDAgRF4KQcCPd-hq5bAbBv9-2LODBi7dmTbqsr-17b_2-9wHco_DVb1lG286b0ggNpzqykgrLJVq3YLLEBrEJmabJbKZGNXjYcmEQMYDP8NE3w12-KfO1_1XWUi6dSZJ4D_a9clbF1qpoOW2mWu9PaXcce6qkS_w6oRJnOGt3sinBa_SO__e-E2ju6HdktHUsp1DDogEvkwBwJdPfbBTiwjcyCERHUloyxo18ju8pCz-Gx14Rv-eX-OGh6mXRhGmvO3nu00oFgS46jK-o4jpWAiXTWopYG60RdeZOJZcLGKPySCBDZwg0LDaRwVxqK0QnQxtFiqPmZ1AvygLPgfDExQNG5Bwl-gvARDFnQiViLowLHNgFNPwkzD83hS7m1fdf_v34Dg77k7fhfDhIX6_gyM_4Bpx1DfXVco03cJB_rxZfy9tgpx8Xk5ce
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