Hugo and Jokin introduce us today to our current work “On Lightweight Metamodel Extension to Support Modeling Tools Agility” by Hugo Bruneliere, Jokin García, Philippe Desfray, Djamel Eddine, Regina Hebig, Reda Bendraou and Jordi Cabot to be presented at ECMFA 2015. It is being developed as part of the collaborative French project MoNoGe  (Atelier de Modélisation de Nouvelle Génération).

Modeling in real industrial projects implies dealing with different models, metamodels and supporting tools. They continuously have to be adapted to changing requirements, involving (often costly) problems in terms of traceability, coherence or interoperability. As metamodels are cornerstones in such tools, metamodel extension capabilities are fundamental. However, current modeling frameworks are not flexible or dynamic enough. Thus, following the ongoing OMG MOF Extension Facility (MEF) RFP, we propose a generic lightweight metamodel extension mechanism having several interesting properties such as compatibility preservation, genericity, non-intrusiveness, transparency, synchronization, interoperability or some dynamicity. This mechanism provides metamodel extension operations to cover real scenarios including addition, modification and filtering types.

Metamodel extension declarations can be defined and then shared between different modeling tools using a common dedicated Domain Specific Language (DSL). This is a simple example of extension declaration that adds/filters some properties to/from existing concepts of the DoFAF metamodel:

LightweightMetamodelExtensionExample

Two different implementations of this extension mechanism (including a model-level support when (un)applying metamodel extensions) are currently existing in the context of MoNoGe, respectively based on Eclipse/EMF and the Modelio modeling environment. The Eclipse implementation and some screencasts are available from https://github.com/atlanmod/monoge.

The architecture of the Eclipse-based solution is summarized in the following figure:


MetamodelExtensionArchitecture

This Eclipse/EMF implementation comprises a dedicated parser and editor for the textual DSL (based on Xtext) so that users can create their own metamodel extensions at development time.

At runtime a Base Operators API consumes, in addition to the original metamodel, the DSL model generated by Xtext from the user textual definitions of the extension. Thanks to an ATL model transformation, this component produces the appropriate data required by the Virtualization API to actually realize the metamodel extension and corresponding model, respectively as a virtual metamodel and a virtual model that conforms to it.

A virtual (meta)model is a (meta)model that does not hold concrete data but rather proxies to original models. Interestingly, virtual (meta)models can be used as any other EMF (meta)model in Eclipse.


For more details on our MoNoGe metamodel extension mechanism, please read our paper (full authors’ version available from https://hal.inria.fr/hal-01146802).

Want to build better software faster?

Want to build better software faster?

Read about the latest trends on software modeling and low-code development

You have Successfully Subscribed!

Pin It on Pinterest

Share This