Practical Guidelines for Change Recommendation using Association Rule Mining

L. Moonen, S. Di Alesio, D. Binkley and T. Rolfsnes. Practical Guidelines for Change Recommendation using Association Rule Mining. In International Conference on Automated Software Engineering (ASE). ACM, 2016.

[Download PDF]

Abstract

Association rule mining is an unsupervised learning technique that infers relationships among items in a data set. This technique has been successfully used to analyze a system’s change history and uncover evolutionary coupling between system artifacts. Evolutionary coupling can, in turn, be used to recommend artifacts that are potentially impacted by a given set of changes to the system. In general, the quality of such recommendations is affected by (1) the values selected for various parameters of the mining algorithm, (2) the characteristics of the change set used to derive the recommendation, and (3) the characteristics of the system’s change history for which recommendations are generated.

In this paper, we empirically investigate the extent to which these factors affect change recommendation. Specifically, we conduct a series of systematic experiments on the change histories of two large industrial systems and eight large open source systems, in which we control the change size for which to derive recommendations, the measure used to assess the strength of the evolutionary coupling, and the maximum size of historical changes taken into account when inferring these couplings. We use the results from our study to derive a number of practical guidelines for applying association rule mining to derive software change recommendations.

Keywords

association rule mining, change impact analysis, change recommendations, evolutionary coupling, parameter tuning

Replication Package

The data of the open source systems is made available for replication.

Bibtex


@inproceedings {moonen:2016:guidelines:ase,
  title = {Practical Guidelines for Change Recommendation using Association Rule Mining},
  year = {2016},
  month = {9},
  publisher = {ACM},
  author = {Moonen, Leon and Di Alesio, Stefano and Binkley, David and Rolfsnes, Thomas}
  booktitle = {International Conference on Automated Software Engineering (ASE)},
}