An Investigation of Entropy and Refactoring in Software Evolution

被引:1
|
作者
Keenan, Daniel [1 ]
Greer, Des [1 ]
Cutting, David [1 ]
机构
[1] Queens Univ Belfast, Belfast BT7 INN, Antrim, North Ireland
关键词
Software evolution; Software entropy; Refactoring; Mining software repositories;
D O I
10.1007/978-3-031-21388-5_20
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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.
引用
收藏
页码:282 / 297
页数:16
相关论文
共 50 条
  • [1] Multiobjective Optimization for Software Refactoring and Evolution
    Ouni, Ali
    Kessentini, Marouane
    Sahraoui, Houari
    [J]. ADVANCES IN COMPUTERS, VOL 94, 2014, 94 : 103 - 167
  • [2] Empirical investigation of refactoring effect on software quality
    Alshayeb, Mohammad
    [J]. INFORMATION AND SOFTWARE TECHNOLOGY, 2009, 51 (09) : 1319 - 1326
  • [3] Next Generation Automated Software Evolution Refactoring at Scale
    Ivers, James
    Ozkaya, Ipek
    Nord, Robert L.
    Seifried, Chris
    [J]. PROCEEDINGS OF THE 28TH ACM JOINT MEETING ON EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING (ESEC/FSE '20), 2020, : 1521 - 1524
  • [4] SERIOUS: Software Evolution, Refactoring, Improvement of Operational & Usable Systems
    Van Rompaey, Bart
    Du Bois, Bart
    Demeyer, Serge
    Pleunis, John
    Putman, Ron
    Meijfroidt, Karel
    Duenas, Juan C.
    Garcia, Boni
    [J]. 13TH EUROPEAN CONFERENCE ON SOFTWARE MAINTENANCE AND REENGINEERING: CSMR 2009, PROCEEDINGS, 2009, : 277 - +
  • [5] Strengthening Refactoring: Towards Software Evolution with Quantitative and Experimental Grounds
    Bryton, Sergio
    Brito e Abreu, Fernando
    [J]. 2009 FOURTH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING ADVANCES (ICSEA 2009), 2009, : 570 - 575
  • [6] Refactoring Patterns Study in Code Clones during Software Evolution
    Kanwal, Jaweria
    Inoue, Katsuro
    Maqbool, Onaiza
    [J]. 2017 IEEE 11TH INTERNATIONAL WORKSHOP ON SOFTWARE CLONES (IWSC), 2017, : 45 - 46
  • [7] Refactoring for software migration
    Mancl, D
    [J]. IEEE COMMUNICATIONS MAGAZINE, 2001, 39 (10) : 88 - 93
  • [8] A survey of software refactoring
    Mens, T
    Tourwé, T
    [J]. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2004, 30 (02) : 126 - 139
  • [9] Tool Support for Finding Anomalies in Refactoring Edits for Improving Software Evolution
    Nguyen, Uy
    Zeng, Xinyu
    Cho, Samuel Sungmin
    Song, Myoungkyu
    [J]. 2020 IEEE INTERNATIONAL CONFERENCE ON ELECTRO INFORMATION TECHNOLOGY (EIT), 2020,
  • [10] Software entropy in agile product evolution
    Hanssen, Geir Kjetil
    Yamashita, Aiko Fallas
    Conradi, Reidar
    Moonen, Leon
    [J]. 43RD HAWAII INTERNATIONAL CONFERENCE ON SYSTEMS SCIENCES VOLS 1-5 (HICSS 2010), 2010, : 4293 - 4302