I. Problem and Motivation
Software Product Line Engineering (SPLE) is a systematic approach to software reuse that focuses on managing families of related products [1], [2]. Under SPLE, developers produce a set of core assets that are intended to be shared by multiple products. Each of the products has some its own product-specific code, which at minimum will be a bit of “glue” to connect a selection of core assets, and at maximum, may provide substantial additional functionality and dominate the shared code. All of this code, both core asset and product-specific, can evolve over time for the normal reasons of maintenance and evolving functionality.