Automating the variability formalization of a model family by means of common variability language

The aim of domain engineering process is to define and realise the commonality and variability of a Software Product Line. In the context of a family of models, spotting the commonalities and differences may become cumbersome and error prone as the number of models and its complexity increases. This work presents an approach to automate the formalization of variability in a given family of models. As output, the variability is made explicit in terms of Common Variability Language. The model commonalities and differences are specified as placements over a base model and replacements in a model library. The resulting Software Product Line (SPL) enables the derivation of new product models by reusing the extracted model fragments. Furthermore, the SPL can be evolved by the creation of new models, which are in turn automatically decomposed as model fragments of the SPL. The approach has been validated with our industrial partner (BSH), an induction hobs company. Finally, we present five different evolution scenarios encountered during the validation.

[1]  Charles W. Krueger,et al.  Easing the Transition to Software Mass Customization , 2001, PFE.

[2]  Marsha Chechik,et al.  Combining Related Products into Product Lines , 2012, FASE.

[3]  Birger Møller-Pedersen,et al.  Model Comparison to Synthesize a Model-Driven Software Product Line , 2011, 2011 15th International Software Product Line Conference.

[4]  Hoan Anh Nguyen,et al.  Complete and accurate clone detection in graph-based models , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[5]  Paul Grünbacher,et al.  Supporting Evolution in Model-Based Product Line Engineering , 2008, 2008 12th International Software Product Line Conference.

[6]  Klaus Pohl,et al.  Software Product Line Engineering , 2005 .

[7]  Mathieu Acher,et al.  Extraction and evolution of architectural variability models in plugin-based systems , 2013, Software & Systems Modeling.

[8]  Krzysztof Czarnecki,et al.  A survey of variability modeling in industrial practice , 2013, VaMoS.

[9]  Mathieu Acher,et al.  Reverse engineering web configurators , 2014, 2014 Software Evolution Week - IEEE Conference on Software Maintenance, Reengineering, and Reverse Engineering (CSMR-WCRE).

[10]  Birger Møller-Pedersen,et al.  Augmenting Product Lines , 2012, 2012 19th Asia-Pacific Software Engineering Conference.

[11]  Jacques Klein,et al.  Identifying and Visualising Commonality and Variability in Model Variants , 2014, ECMFA.

[12]  Klaus Pohl,et al.  Software Product Line Engineering - Foundations, Principles, and Techniques , 2005 .

[13]  Tewfik Ziadi,et al.  Feature Identification from the Source Code of Product Variants , 2012, 2012 16th European Conference on Software Maintenance and Reengineering.

[14]  Birger Møller-Pedersen,et al.  A Generic Language and Tool for Variability Modeling , 2009 .

[15]  Krzysztof Czarnecki,et al.  Reverse engineering feature models , 2011, 2011 33rd International Conference on Software Engineering (ICSE).