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 language | English |
---|---|
Title of host publication | GPCE 2022 - Proceedings of the 21st ACM SIGPLAN International Conference on Generative Programming |
Subtitle of host publication | Concepts and Experiences, Co-located with: SPLASH 2022 |
Editors | Bernhard Scholz, Yukiyoshi Kameyama |
Publisher | Association for Computing Machinery, Inc |
Pages | 122-134 |
Number of pages | 13 |
ISBN (Electronic) | 9781450399203 |
DOIs | |
State | Published - 1 Dec 2022 |
Event | 21st 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 2022 → 7 Dec 2022 |
Publication series
Name | GPCE 2022 - Proceedings of the 21st ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences, Co-located with: SPLASH 2022 |
---|
Conference
Conference | 21st 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/Territory | New Zealand |
City | Auckland |
Period | 6/12/22 → 7/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