How Much Can a Behavior-Preserving Changeset Be Decomposed into Refactoring Operations?
Kota Someya, Lei Chen, Michael J. Decker, Shinpei Hayashi

TL;DR
This paper investigates how much behavior-preserving code changes can be broken down into primitive refactoring operations, revealing current limitations and potential for improved decomposition methods.
Contribution
The study quantifies the extent of decomposability of behavior-preserving modifications into refactoring operations, introducing new operations to increase coverage.
Findings
Existing refactoring detectors identify 33.9% of changes.
Including 67 new operations increases coverage by over 128%.
Remaining differences suggest opportunities for method improvements.
Abstract
Developers sometimes mix behavior-preserving modifications, such as refactorings, with behavior-altering modifications, such as feature additions. Several approaches have been proposed to support understanding such modifications by separating them into those two parts. Such refactoring-aware approaches are expected to be particularly effective when the behavior-preserving parts can be decomposed into a sequence of more primitive behavior-preserving operations, such as refactorings, but this has not been explored. In this paper, as an initial validation, we quantify how much of the behavior-preserving modifications can be decomposed into refactoring operations using a dataset of functionally-equivalent method pairs. As a result, when using an existing refactoring detector, only 33.9% of the changes could be identified as refactoring operations. In contrast, when including 67 newly…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsAdvanced Software Engineering Methodologies · Software Engineering Research
