Modelling is an essential activity in software engineering. Ittypically involves two meta-levels: one includes meta-models thatdescribe modelling languages, and the other contains models built byinstantiating those meta-models. Multi-level modelling generalizes this approach by allowing models to span an arbitrarynumber of meta-levels. A scenario that profits from multi-levelmodelling is the definition of language families that can bespecialized (e.g., for different domains) by successive refinementsat subsequent meta-levels, hence promoting language reuse. Thisenables an open set of variability options given by allpossible specializations of the language family. However,multi-level modelling lacks the ability to express closed variability regarding the availability of language primitives or thepossibility to opt between alternative primitive realizations. Thislimits the reuse opportunities of a language family. To improve thissituation, we propose a novel combination of product lines withmulti-level modelling to cover both open and closed variability. Ourproposal is backed by a formal theory that guarantees correctness,enables top-down and bottom-up language variability design, and isimplemented atop the MetaDepth multi-level modelling tool.
CITATION STYLE
de Lara, J., & Guerra, E. (2021). Language Family Engineering with Product Lines of Multi-level Models. Formal Aspects of Computing, 33(6), 1173–1208. https://doi.org/10.1007/s00165-021-00554-3
Mendeley helps you to discover research relevant for your work.