An investigation of entropy and refactoring in software evolution

Daniel Keenan, Desmond Greer*, David Cutting

*Corresponding author for this work

Research output: Chapter in Book/Report/Conference proceedingConference contribution

1 Citation (Scopus)
107 Downloads (Pure)

Abstract

As software evolves, the source code tends to become more complex and therefore harder to maintain, something that is exacerbated by poor development practice, where a disorderly development process is more likely to yield a disorderly and more complex result. Disorder in source code evolution may be quantified by using source code change entropy, a measure of the scattering pattern of code changes, i.e., how widely spread throughout the codebase are individual changes. Refactoring is an important activity for improving the structure of existing code and reducing its complexity, but it is unclear if refactoring can effectively counteract software entropy. Understanding how or if refactoring can reduce entropy could provide insights on software evolution and help reduce maintenance cost. We empirically investigate how entropy at the system and file level evolves in software systems and how it is influenced by refactoring activities as well as non-refactoring changes. We identify refactorings in the version history of open-source projects through the analysis of source code and change metadata. We observe that system-level entropy fluctuates up and down, but remains relatively stable over time on average. We also observe that file-level entropy tends to decrease over time in response to both refactorings and non-refactoring changes, challenging the findings of previous studies. We observe factors which may lessen the utility of existing entropy metrics and suggest future avenues for exploring this intriguing but little-studied concept in software evolution.

Original languageEnglish
Title of host publicationProceedings of the Product-Focused Software Process Improvement 23nd International Conference: PROFES 2022
EditorsDavide Taibi, Marco Kuhrmann, Tommi Mikkonen, Jil Klünder, Pekka Abrahamsson
Place of PublicationSwitzerland
PublisherSpringer Cham
Pages282-297
Number of pages16
Volume13709
ISBN (Electronic)9783031213885
ISBN (Print)9783031213878
DOIs
Publication statusPublished - 14 Nov 2022
Event23rd International Conference on Product-Focused Software Process Improvement, PROFES 2022 - Jyväskylä, Finland
Duration: 21 Nov 202223 Nov 2022

Publication series

NameLecture Notes in Computer Science
Volume13709
ISSN (Print)0302-9743
ISSN (Electronic)1611-3349

Conference

Conference23rd International Conference on Product-Focused Software Process Improvement, PROFES 2022
Country/TerritoryFinland
CityJyväskylä
Period21/11/202223/11/2022

Bibliographical note

Publisher Copyright:
© 2022, The Author(s), under exclusive license to Springer Nature Switzerland AG.

Keywords

  • Mining software repositories
  • Refactoring
  • Software entropy
  • Software evolution

ASJC Scopus subject areas

  • Theoretical Computer Science
  • General Computer Science

Fingerprint

Dive into the research topics of 'An investigation of entropy and refactoring in software evolution'. Together they form a unique fingerprint.

Cite this