Language Support for Refactorability Decay Prevention

Dov Fraivert, David H. Lorenz

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

Abstract

Even code that is free of smells may be at high risk of forming them. In such cases, developers can either perform preventive refactoring in order to reduce this risk, or leave the code as is and perform corrective refactoring as smells emerge. In practice, however, developers usually avoid preventive refactoring during the development phase, and when code smells eventually form, other developers who are less acquainted with the code avoid the more complex corrective refactoring. As a result, a refactoring opportunity is missed, and the quality and maintainability of the code is compromised. In this work, we treat refactoring not as a single atomic action, but rather as a sequence of subactions. We divide the responsibility for these subactions between the original developer of the code, who just prepares the code for refactoring, and a future developer, who may need to carry out the actual refactoring action. To manage this division of responsibility, we introduce a set of annotations along with an annotation processor that prevents software erosion from compromising the ability to perform the refactoring action.

Original languageEnglish
Title of host publicationGPCE 2022 - Proceedings of the 21st ACM SIGPLAN International Conference on Generative Programming
Subtitle of host publicationConcepts and Experiences, Co-located with: SPLASH 2022
EditorsBernhard Scholz, Yukiyoshi Kameyama
PublisherAssociation for Computing Machinery, Inc
Pages122-134
Number of pages13
ISBN (Electronic)9781450399203
DOIs
StatePublished - 1 Dec 2022
Event21st ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences, GPCE 2022, co-located with ACM SIGPLAN Conference on Systems, Programming, Languages, and Applications, SPLASH 2022 - Auckland, New Zealand
Duration: 6 Dec 20227 Dec 2022

Publication series

NameGPCE 2022 - Proceedings of the 21st ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences, Co-located with: SPLASH 2022

Conference

Conference21st ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences, GPCE 2022, co-located with ACM SIGPLAN Conference on Systems, Programming, Languages, and Applications, SPLASH 2022
Country/TerritoryNew Zealand
CityAuckland
Period6/12/227/12/22

Bibliographical note

Publisher Copyright:
© 2022 ACM.

Keywords

  • code reuse
  • corrective refactoring
  • extract function
  • extract method
  • move function
  • move method
  • preventive refactoring
  • refactorability decay
  • refactoring

Fingerprint

Dive into the research topics of 'Language Support for Refactorability Decay Prevention'. Together they form a unique fingerprint.

Cite this