Merlin

Product lines for MDE artefacts

Welcome to Merlin

Tired of manually maintaining collections of similar-but-yet-not-the-same meta-models? Frustrated for having to develop yet-another-transformation-variant for these meta-models? Then you are in the right place: Merlin is a tool to engineer and analyse meta-model product lines, and their associated transformation product lines.

Merlin extends FeatureIDE to create feature models and build meta-model products. Meta-model product lines can be analysed syntactically for well-formedness, including the associated OCL constraints. It is also possible to analyse instance level properties (i.e., properties of the instance models of the meta-models of the product line), using constraint solving techniques. Merlin uses the USE validator for this purpose.

On top of meta-model product lines, Merlin also supports the creation and analysis of transformation product lines using the Epsilon model management languages. While we provide built-in support for OCL and Epsilon, Merlin is open to other transformation languages.

merlin in action

Documentation

There is still little documentation, but the following resources are available:

Publications about Merlin

Property satisfiability analysis for product lines of modelling languages. 2022. Esther Guerra, Juan de Lara, Marsha Chechik, Rick Salay. IEEE Transactions on Software Engineering (IEEE Computer Society). Volume 48, Issue 2. pp.: 397-416. [PDF]

Analysing meta-model product lines. 2018. Esther Guerra, Juan de Lara, Marsha Chechik, Rick Salay. SLE'2018: ACM International Conference on Software Language Engineering, (Boston) (ACM). [PDF]

Model transformation product lines. 2018. Juan de Lara, Esther Guerra, Marsha Chechik, Rick Salay. MODELS'2018: ACM/IEEE 21th International Conference on Model Driven Engineering Languages and Systems, (Copenhagen) (ACM). [PDF]

Authors and Contributors

Merlin has been created by the Miso research group at the Universidad Autónoma in Madrid, in collaboration with Marsha Chechik's group at the University of Toronto.

Support or Contact

If you have any trouble installing or using Merlin, you can contact merlin at miso dot es