Analysing meta-model product lines

Model-driven engineering advocates the use of models to describe and automate many software development tasks. The syntax of modelling languages is defined by meta-models, making them essential artefacts. A combination of product line engineering methods and meta-models has been proposed to enable specification of modelling language variants, e.g., to describe a range of systems. However, there is a lack of techniques for ensuring syntactic correctness of all meta-models within a family (including their OCL constraints), and semantic correctness related to properties of individual instances of the different variants. The absence of verification methods at the product-line level can cause synthesis of ill-formed meta-models and problematic feature combinations whose effect at the instance level may go unnoticed. To attack this problem, we propose an approach to lifting both the meta-model syntax checking and the satisfiability checking of properties of individual meta-model instances, to the product-line level. We validate the approach via a prototype tool called Merlin, and report on several experiments that show the advantages of our method w.r.t. an enumerative analysis approach.

[1]  Alexander Egyed,et al.  Coping with Variability in Model-Based Systems Engineering: An Experience in Green Energy , 2010, ECMFA.

[2]  Benoît Combemale,et al.  Leveraging Software Product Lines Engineering in the development of external DSLs: A systematic literature review , 2016, Comput. Lang. Syst. Struct..

[3]  Bernhard Rumpe,et al.  Modeling Language Variability , 2010, Monterey Workshop.

[4]  Bernhard Rumpe,et al.  Variability within Modeling Language Definitions , 2009, MoDELS.

[5]  Daniel Le Berre,et al.  The Sat4j library, release 2.2 , 2010, J. Satisf. Boolean Model. Comput..

[6]  Krzysztof Czarnecki,et al.  Verifying feature-based model templates against well-formedness OCL constraints , 2006, GPCE '06.

[7]  Sandro Schulze,et al.  Detecting Variability in MATLAB/Simulink Models: An Industry-Inspired Technique and its Evaluation , 2017, SPLC.

[8]  Juan de Lara,et al.  Model Transformation Product Lines , 2018, MoDELS.

[9]  Juri Di Rocco,et al.  Collaborative Repositories in Model-Driven Engineering [Software Technology] , 2015, IEEE Software.

[10]  Oscar Díaz,et al.  Feature Oriented Model Driven Development: A Case Study for Portlets , 2007, 29th International Conference on Software Engineering (ICSE'07).

[11]  Jean-Marc Jézéquel,et al.  Code generation from UML models with semantic variation points , 2005, MoDELS'05.

[12]  Douglas C. Schmidt,et al.  Guest Editor's Introduction: Model-Driven Engineering , 2006, Computer.

[13]  Jean-Marc Jézéquel,et al.  Model-Driven Engineering for Software Product Lines , 2012 .

[14]  Lidia Fuentes,et al.  VML* - A Family of Languages for Variability Management in Software Product Lines , 2009, SLE.

[15]  Gunter Saake,et al.  Type checking annotation-based product lines , 2012, TSEM.

[16]  Uwe Aßmann,et al.  A Metamodel Family for Role-Based Modeling and Programming Languages , 2014, SLE.

[17]  Roberto Erick Lopez-Herrejon,et al.  A Standard Problem for Evaluating Product-Line Methodologies , 2001, GCSE.

[18]  Nicolas Anquetil,et al.  A model-driven traceability framework for software product lines , 2010, Software & Systems Modeling.

[19]  Juan de Lara,et al.  From types to type requirements: genericity for model-driven engineering , 2011, Software & Systems Modeling.

[20]  Jordi Cabot,et al.  Model-Driven Software Engineering in Practice , 2017, Synthesis Lectures on Software Engineering.

[21]  Rick Salay,et al.  Lifting model transformations to product lines , 2014, ICSE.

[22]  Paul C. Clements,et al.  Product Line Engineering Meets Model Based Engineering in the Defense and Automotive Industries , 2017, SPLC.

[23]  Thomas Leich,et al.  Mastering Software Variability with FeatureIDE , 2017, Springer International Publishing.

[24]  Michal Antkiewicz,et al.  Mapping features to models: a template approach based on superimposed variants , 2005, GPCE'05.

[25]  Sven Apel,et al.  Guaranteeing Syntactic Correctness for All Product Line Variants: A Language-Independent Approach , 2009, TOOLS.

[26]  Uwe Aßmann,et al.  DeltaEcore - A Model-Based Delta Language Generation Framework , 2014, Modellierung.

[27]  Frank Budinsky,et al.  EMF: Eclipse Modeling Framework 2.0 , 2009 .

[28]  Pierre-Yves Schobbens,et al.  Featured Model Types: Towards Systematic Reuse in Modelling Language Engineering , 2016, 2016 IEEE/ACM 8th International Workshop on Modeling in Software Engineering (MiSE).

[29]  ApelSven,et al.  A Classification and Survey of Analysis Strategies for Software Product Lines , 2014 .

[30]  Andrzej Wasowski,et al.  Variability-Specific Abstraction Refinement for Family-Based Model Checking , 2017, FASE.

[31]  Martin Gogolla,et al.  From UML and OCL to relational logic and back , 2012, MODELS'12.

[32]  Joanne M. Atlee,et al.  Semantic variations among UML statemachines , 2006, MoDELS'06.

[33]  Erik P. de Vink,et al.  Family-Based Model Checking with mCRL2 , 2017, FASE.

[34]  Jordi Cabot,et al.  Verification of UML/OCL Class Diagrams using Constraint Programming , 1899, 2008 IEEE International Conference on Software Testing Verification and Validation Workshop.

[35]  Aniruddha S. Gokhale,et al.  Improving Domain-Specific Language Reuse with Software Product Line Techniques , 2009, IEEE Software.

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

[37]  Olivier Barais,et al.  Generating counterexamples of model-based software product lines: an exploratory study , 2013, SPLC '13.

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

[39]  Sven Apel,et al.  Model Superimposition in Software Product Lines , 2009, ICMT@TOOLS.

[40]  Daniel Jackson,et al.  Software Abstractions - Logic, Language, and Analysis , 2006 .

[41]  Jordi Cabot,et al.  EMFtoCSP: A tool for the lightweight verification of EMF models , 2012, 2012 First International Workshop on Formal Methods in Software Engineering: Rigorous and Agile Approaches (FormSERA).

[42]  Tadao Murata,et al.  Petri nets: Properties, analysis and applications , 1989, Proc. IEEE.

[43]  Juan de Lara,et al.  Example-based validation of domain-specific visual languages , 2015, SLE.

[44]  Isidro Ramos,et al.  Cardinality-Based Feature Modeling and Model-Driven Engineering: Fitting them Together , 2010, VaMoS.

[45]  Martin Gogolla,et al.  Verifying UML/OCL models using Boolean satisfiability , 2010, 2010 Design, Automation & Test in Europe Conference & Exhibition (DATE 2010).

[46]  Michal Antkiewicz,et al.  Clafer: unifying class and feature modeling , 2014, Software & Systems Modeling.

[47]  Gunter Saake,et al.  A Classification and Survey of Analysis Strategies for Software Product Lines , 2014, ACM Comput. Surv..