Formal Aspects of Computing | 2021

Language Family Engineering with Product Lines of Multi-level Models

 
 

Abstract


Modelling is an essential activity in software engineering. It\ntypically involves two meta-levels: one includes meta-models that\ndescribe modelling languages, and the other contains models built by\ninstantiating those meta-models. Multi-level modelling generalizes this approach by allowing models to span an arbitrary\nnumber of meta-levels. A scenario that profits from multi-level\nmodelling is the definition of language families that can be\nspecialized (e.g., for different domains) by successive refinements\nat subsequent meta-levels, hence promoting language reuse. This\nenables an open set of variability options given by all\npossible specializations of the language family. However,\nmulti-level modelling lacks the ability to express closed variability regarding the availability of language primitives or the\npossibility to opt between alternative primitive realizations. This\nlimits the reuse opportunities of a language family. To improve this\nsituation, we propose a novel combination of product lines with\nmulti-level modelling to cover both open and closed variability. Our\nproposal is backed by a formal theory that guarantees correctness,\nenables top-down and bottom-up language variability design, and is\nimplemented atop the MetaDepth multi-level modelling tool.\n

Volume None
Pages None
DOI 10.1007/s00165-021-00554-3
Language English
Journal Formal Aspects of Computing

Full Text