Abstract
Current model-driven software product line development is mostly based on feature/variability modeling techniques, however, we see the potential for automatic assistance in identifying the commonality and variability of a set of models within the domain and synthesizing the product line model based on those. This paper presents a generic approach for synthesizing a software product line using model comparison. For model difference detection, the approach applies EMF Compare, a generic model comparison tool. For specifying the variability, the approach applies the Common Variability Language (CVL), a generic language for expressing variability. The SPL developer starts with comparing the existing potential product models in order to identify reusable assets (model fragments). Our tool prototype CVL Compare detects the difference between the existing product models and performs higher-order comparisons to explore the commonality and variability of the domain. Based on the comparison results, a preliminary product line model (CVL model) can be automatically induced and the SPL developer may further enhance the product line model. The approach is illustrated with an example of train control product line