- The paper systematically reviews 30 years of refactoring research by analyzing 3183 studies to map the evolution of refactoring methods.
- It introduces a comprehensive refactoring life-cycle including detection, testing, and automation phases, emphasizing both code and model adjustments.
- The study highlights a research gap in security and non-code refactoring, urging further industry collaboration to validate academic findings.
Analysis of "30 Years of Software Refactoring Research: A Systematic Literature Review"
The paper, "30 Years of Software Refactoring Research: A Systematic Literature Review," delivers an exhaustive examination of the refactoring landscape, capturing the progression and diversification of this research domain over three decades. This systematic literature review provides an organized aggregation and analysis of 3183 research papers, constituting one of the most scaling efforts to synthesize refactoring research to date. The methodology behind this review is rigorous, adhering to processes that enhance the paper's validity and its utility for both academia and industry.
Refactoring Life-Cycle
The paper introduces a well-articulated refactoring life-cycle consisting of detection, prioritization, recommendation, testing, documentation, and prediction phases. Detection remains a core concern, involving the identification of refactoring opportunities, which extends beyond mere code analysis to more abstract software artifacts. Testing receives significant attention, given its critical role in verifying refactoring correctness and ensuring behavioral preservation. The emphasis on automation in these phases optimizes resources, thus promoting widespread adoption.
Artifacts Affected by Refactoring
Refactoring transcends code-level adjustment, impacting various software artifacts, such as models and architectures. As noted, the dominance of code refactoring persists, but substantial research has emerged surrounding model refactoring. The relative scarcity of studies on GUI and database refactoring indicates potential areas for future exploration, especially given their complex semantics and integral role in software systems.
Refactoring Objectives
This systematic exploration of refactoring objectives highlights improvements in internal quality (e.g., maintainability) as a primary driver. Notably, security-focused refactoring remains underexplored, suggesting a gap between the significance of security in software systems and the proportion of research addressing it. Additionally, enhancing external quality and performance continues to be bolstered through refactoring efforts.
Refactoring Techniques
The survey categorizes prevalent techniques in refactoring, identifying a preference for search-based and data mining approaches. Search-based methodologies are valued for their applicability in tackling complex, multi-dimensional problems within the domain, while data mining facilitates the derivation of patterns and insights from expansive code repositories. These approaches' prominence underscores their effectiveness in resolving intricate challenges that arise during refactoring.
Evaluation and Practical Implications
The methodology utilized in evaluating refactoring strategies predominantly relies on open-source systems, which poses questions about the extent to which these findings generalize to proprietary and industrial settings. Further industry collaboration is advocated to bridge this gap, enhancing the practical relevance of academic findings. The introduction of a comprehensive platform to facilitate the dissemination and organization of refactoring research promises to foster synergistic relationships among refactoring communities and practitioners, thus expediting field advances.
In conclusion, this paper underscores the diversification and maturation of refactoring research and calls attention to areas requiring further exploration. Its extensive analysis coupled with a well-structured taxonomy serves as a critical resource for future endeavors in refactoring, both theoretical and practical. The presented methodological rigor and resulting insights are poised to significantly influence ongoing and forthcoming research trajectories.