Software maintenance and evolution is a particularly complex phenomenon in the case of long-lived, large-scale systems. It is not uncommon for such systems to progress through years of development history, a number of developers, and a multitude of software artifacts including millions of lines of code. Therefore, realizing even the slightest change may not always be straightforward. Clearly, changes are the central force driving software evolution. Therefore, it is not surprising that a significant effort has been (and should be) devoted in the software engineering community to systematically understanding, estimating, and managing changes to software artifacts. This effort includes the three core change related tasks of (1) expert develop...