RMove: Recommending Move Method Refactoring Opportunities using Structural and Semantic Representations of Code
Di Cui, Siqi Wang, Yong Luo, Xingyu Li, Jie Dai, Lu Wang, Qingshan Li

TL;DR
RMove is a machine learning-based approach that automatically learns and combines structural and semantic code representations to effectively recommend Move Method refactoring opportunities, outperforming existing tools.
Contribution
The paper introduces RMove, a novel method that leverages separate structural and semantic code representations and combines them for improved Move Method refactoring recommendations.
Findings
RMove outperforms PathMove, JDeodorant, and JMove in effectiveness.
Combining structural and semantic features improves refactoring accuracy.
Insights gained can benefit other feature envy refactoring techniques.
Abstract
Incorrect placement of methods within classes is a typical code smell called Feature Envy, which causes additional maintenance and cost during evolution. To remove this design flaw, several Move Method refactoring tools have been proposed. To the best of our knowledge, state-of-the-art related techniques can be broadly divided into two categories: the first line is non-machine-learning-based approaches built on software measurement, while the selection and thresholds of software metrics heavily rely on expert knowledge. The second line is machine learning-based approaches, which suggest Move Method refactoring by learning to extract features from code information. However, most approaches in this line treat different forms of code information identically, disregarding their significant variation on data analysis. In this paper, we propose an approach to recommend Move Method refactoring…
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.
