|Authors||S. Pugh, D. Binkley and L. Moonen|
|Title||The Case for Adaptive Change Recommendation|
|Project(s)||evolveIT: Evidence-Based Recommendations to Guide the Evolution of Component-Based Product Families, The Certus Centre (SFI)|
|Publication Type||Proceedings, refereed|
|Year of Publication||2018|
|Conference Name||18th IEEE International Working Conference on Source Code Analysis and Manipulation (SCAM)|
As the complexity of software systems grows, it becomes increasingly difficult for developers to be aware of all the dependencies that exist between artifacts (e.g., files or methods) of a system. Change impact analysis helps to overcome this problem, as it recommends to a developer relevant source-code artifacts related to her changes. Association rule mining has shown promise in determining change impact by uncovering relevant patterns in the system's change history.
State-of-the-art change impact mining algorithms typically make use of a change history of tens of thousands of transactions. For efficiency, targeted association rule mining is used because it focuses on only those transactions relevant to answering a particular query. However, even targeted algorithms must consider the complete set of relevant transactions in the history.
This paper presents , a new adaptive approach to targeted association rule mining that considers a dynamic selection of relevant transactions. It can be viewed as further constrained version of targeted association rule mining, in which as few as a single transaction might be considered when determining change impact. Our investigation of adaptive change impact mining empirically studies seven algorithm variants. We show that adaptive algorithms are viable, can be just as applicable as the start-of-the-art complete-history algorithms, and even outperform them for certain queries. However, more important than the direct comparison, our investigation lays important groundwork to support the application of adaptive techniques to problems such as, impact analysis at the GitHub-scale.