-
Notifications
You must be signed in to change notification settings - Fork 3
Overview
Echo's main goal is consistency management in MDE, considering both metamodel conformity (intra-model consistency) and consistency between coexisting models (inter-model consistency). Its characteristics include:
- For both kinds of consistencies, Echo is able to both check and repair models;
- It is deployed as an Eclipse plugin, acting in an online setting and integrating seamlessly in the development process;
- It is metamodel independent, supporting user-defined metamodels and corresponding models;
- Echo is built over a relational model finder, making it correct and very expressive, with the cost of reduced scalability;
- It supports standard MDE file formats, mostly prescribed by OMG.
Regarding model repairs:
- Echo effectively repairs model resources (as opposed to proposing abstract repair plans);
- Solution are guaranteed to be consistent;
- The repairs are guaranteed to be minimal, in the sense that they are the valid solutions closest to the original model;
- The model distance can be automatically inferred by Echo from the metamodel or specified by the user through operations;
- The user is able to choose the repair among all valid solutions at the minimal distance.
-
Metamodels are specified in Ecore (an extended version of EMOF, OMG's meta-metamodel), as specified by the Eclipse Modeling Framework (EMF).
-
Additional constraints in the metamodel can be defined by embedding OCL formulas in annotations. This is the same mechanism prescribed by EMF's OCLinEcore.
-
Operations (used for the operation-based distance), are also defined by OCL annotations over the operations' specifications.
-
Inter-model constraints are specified by QVT Relations (QVT-R) transformations, the language prescribed by OMG to specify model transformations. Well-founded recursion is supported and relations may contain arbitrary OCL constraints both in where and when clauses, as well as in the domain patterns.
-
Models are specified as XMI resources, that must conform to an Ecore metamodel.
-
The complete subset of the OCL language supported can be consulted in this paper. It includes the transitive closure operator, recently introduced by the OCL standard.
- Model visualization
- Models are presented using the Alloy visualizer. For better readability, an Alloy theme is automatically inferred from the metamodel, although an user-defined theme can also be provided if desired.
- Model generation
- Given a metamodel and user-specified size, Echo can generate a new model conformant with the metamodel. Additional constraints can also be specified to generate instances with a parametrized shape.
- Consistency check
- Given a model, Echo can check if it conforms to the respective metamodel.
- Model repair
- Given a model that does not conform to its metamodel, Echo can find a minimal repair that produces a consistent model.
- Inter-model consistency check
- Given a QVT-R transformation and two models that are supposed to be consistent via it, Echo can check if such is the case. The checking semantics follows exactly the specified in the QVT standard.
- Inter-model consistency repair
- QVT-R specifications are interpreted as bidirectional transformations, thus, given inconsistent models, Echo is able to repair either one to recover consistency.
- Inter-model generation
- Given a QVT-R transformation and an existing model, Echo can generate the minimal model consistent with existing model by the QVT-R transformation.
For more information about how the tool is implemented please consult the paper Implementing QVT-R Bidirectional Model Transformations Using Alloy, accepted for publication at FASE'13. For an overview of Echo's features please watch this video.