Model-driven engineering with domain-specific meta-modelling languages
Domain-specific modelling languages are normally defined through general-purpose meta-modelling languages like the MOF. While this is satisfactory for many model-driven engineering (MDE) projects, several researchers have identified the need for domain-specific meta-modelling (DSMM) languages. These provide customised domain-specific meta-modelling primitives aimed at the definition of modelling languages for a specific domain, as well as the construction of meta-model families. Unfortunately, current approaches to DSMM rely on ad hoc methods which add unnecessary complexity to the realization of DSMM in practice. Hence, the goal of this paper is to simplify the definition and usage of DSMM languages. For this purpose, we apply multi-level meta-modelling for the systematic engineering of DSMM architectures. Our method integrates techniques to control the meta-modelling primitives offered to the users of the DSMM languages, provides a flexible approach to define textual concrete syntaxes for DSMM languages, and extends existing model management languages (for model-to-model transformation, in-place transformation and code generation) to work in a multi-level setting, thus enabling the practical use of DSMM in MDE. As a proof of concept, we report on a working implementation of these ideas in the MetaDepth tool.
model-driven engineering domain-specific meta-modelling multi-level meta-modelling textual concrete syntax metadepth