The Good, the Bad, and the Monstrous: Predicting Highly Change-Prone Source Code Methods at Their Inception

📅 2024-08-11
📈 Citations: 0
Influential: 0
📄 PDF

career value

214K/year
🤖 AI Summary
High software maintenance costs necessitate early identification of change-prone code units. Method: This paper introduces the first method-level change-proneness prediction framework for Java projects, targeting the 20% of methods that account for 80% of changes and most defects. It integrates supervised machine learning (empirically validated on 774K methods), Pareto distribution modeling, manual thematic coding, and concept mining. Contribution/Results: We empirically confirm a strong correlation between change concentration and defect density. We further propose an “unpredictable-methods” analysis framework that identifies recurrent hard-to-predict patterns—e.g., cross-layer glue code and exception-handling–intensive logic—to guide feature engineering improvements. Our model achieves early risk assessment at method creation time, demonstrating the feasibility, effectiveness, and practical utility of method-level change-proneness prediction.

Technology Category

Application Category

📝 Abstract
The cost of software maintenance often surpasses the initial development expenses, making it a significant concern for the software industry. A key strategy for alleviating future maintenance burdens is the early prediction and identification of change-prone code components, which allows for timely optimizations. While prior research has largely concentrated on predicting change-prone files and classes, an approach less favored by practitioners, this paper shifts focus to predicting highly change-prone methods, aligning with the preferences of both practitioners and researchers. We analyzed 774,051 source code methods from 49 prominent open-source Java projects. Our findings reveal that approximately 80% of changes are concentrated in just 20% of the methods, demonstrating the Pareto 80/20 principle. Moreover, this subset of methods is responsible for the majority of the identified bugs in these projects. After establishing their critical role in mitigating software maintenance costs, our study shows that machine learning models can effectively identify these highly change-prone methods from their inception. Additionally, we conducted a thorough manual analysis to uncover common patterns (or concepts) among the more difficult-to-predict methods. These insights can help future research develop new features and enhance prediction accuracy.
Problem

Research questions and friction points this paper is trying to address.

Software Maintenance
Code Predictive Analysis
Cost Reduction
Innovation

Methods, ideas, or system contributions that make the work stand out.

Machine Learning
Predictive Modeling
Software Maintainability
🔎 Similar Papers
No similar papers found.