Towards the Assisted Decomposition of Large-Active Files
Jason Lefever, Yuanfang Cai, Rick Kazman, Hongzhou Fang

TL;DR
This paper introduces a refactoring recommendation system that analyzes co-change patterns and revision history to decompose large, complex files, reducing technical debt and improving system modularity.
Contribution
It presents a novel approach that leverages change history and dependency analysis to recommend targeted refactorings of large files, focusing developer effort effectively.
Findings
Improves modularity by decomposing large files
Reduces technical debt and coordination costs
Prioritizes refactoring efforts based on change history
Abstract
Tightly coupled and interdependent systems inhibit productivity by requiring developers to carefully coordinate their changes, even when modifying subsystems that should be independent of one another. Poor architectural decisions frequently lead to the presence of large, change-prone source files that are at the center of complexes of technical debt. This kind of technical debt quickly incurs interest both through coordination costs and error-proneness. In this paper, we present a new approach for decomposing these ``large-active'' files to pay down critical technical debt. We package our approach as a refactoring recommendation system. Each recommendation is determined by analyzing patterns of co-change and mutual dependency among files. Each recommendation corresponds to a responsibility the large-active file has in relation to the rest of the system. By moving recommended…
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
TopicsSoftware Engineering Research · Software System Performance and Reliability · Scientific Computing and Data Management
