Leveraging variability modeling to address metamodel revisions in Model-based Software Product Lines

Abstract Metamodels evolve over time, which can break the conformance between the models and the metamodel. Model migration strategies aim to co-evolve models and metamodels together, but their application is currently not fully automatizable and is thus cumbersome and error prone. We introduce the Variable MetaModel (VMM) strategy to address the evolution of the reusable model assets of a model-based Software Product Line. The VMM strategy applies variability modeling ideas to express the evolution of the metamodel in terms of commonalities and variabilities. When the metamodel evolves, changes are automatically formalized into the VMM and models that conform to previous versions of the metamodel continue to conform to the VMM, thus eliminating the need for migration. We have applied both the traditional migration strategy and the VMM strategy to a retrospective case study that includes 13 years of evolution of our industrial partner, an induction hobs manufacturer. The comparison between the two strategies shows better results for the VMM strategy in terms of model indirection, automation, and trust leak.

[1]  Jacques Klein,et al.  Bottom-up adoption of software product lines: a generic and extensible approach , 2015, SPLC.

[2]  Antonio Cicchetti,et al.  Automating Co-evolution in Model-Driven Engineering , 2008, 2008 12th International IEEE Enterprise Distributed Object Computing Conference.

[3]  Sven Apel,et al.  Feature-oriented software evolution , 2013, VaMoS.

[4]  Don Batory,et al.  Scaling step-wise refinement , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[5]  Jaime Font,et al.  Automating the variability formalization of a model family by means of common variability language , 2015, SPLC.

[6]  Douglas C. Schmidt,et al.  Evolution in Model-Driven Software Product-Line Architectures , 2009 .

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

[8]  Elmar Jürgens,et al.  COPE - Automating Coupled Evolution of Metamodels and Models , 2009, ECOOP.

[9]  Jean-Marc Jézéquel,et al.  Model-based product line evolution: an incremental growing by extension , 2012, SPLC '12.

[10]  Paul Grünbacher,et al.  Structuring the modeling space and supporting evolution in software product line engineering , 2010, J. Syst. Softw..

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

[12]  Sven Apel,et al.  Exploring feature interactions in the wild: the new feature-interaction challenge , 2013, FOSD '13.

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

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

[15]  Kyo Chul Kang,et al.  Feature-Oriented Domain Analysis (FODA) Feasibility Study , 1990 .

[16]  Jaime Font,et al.  Addressing metamodel revisions in model-based software product lines , 2016 .

[17]  Sergio Segura,et al.  Automated analysis of feature models 20 years later: A literature review , 2010, Inf. Syst..

[18]  Krzysztof Czarnecki,et al.  Evolution of the Linux Kernel Variability Model , 2010, SPLC.

[19]  Don S. Batory,et al.  From software extensions to product lines of dataflow programs , 2017, Software & Systems Modeling.

[20]  Jaime Font,et al.  Building software product lines from conceptualized model patterns , 2015, SPLC.

[21]  Jean Bézivin,et al.  Managing Model Adaptation by Precise Detection of Metamodel Changes , 2009, ECMDA-FA.

[22]  Jan Bosch,et al.  Evolution in software product lines: Two cases , 1999 .

[23]  Guido Wachsmuth,et al.  Metamodel Adaptation and Model Co-adaptation , 2007, ECOOP.