Skip to content
nmacedo edited this page Oct 30, 2013 · 11 revisions

Overview of Echo features

Echo is a tool for model repair and transformation in the context of model-driven engineering (MDE). The main focuses of Echo are

  • correctness, in the sense that all constraints of the system are guaranteed to hold for repaired models;
  • minimality, since that those repaired models are as close as possible to the original inconsistent ones.

The constraints supported by Echo are of two kinds:

  • intra-model constraints, defined by the conformity of models to their metamodels (possibly with additional constraints);
  • inter-model constraints, defined by relation between coexisting models, which give rise to bidirectional transformations.

For both kinds of constraints, Echo is able to both check and repair models, in which case model resources are effectively repaired (as opposed to just proposing abstract repair plans). While the repairs are always minimal, the user is able to determine how the distance between the models is calculated. Echo provides two different metrics:

  • graph edit distance, which is automatically inferred from the metamodel;
  • operation-based distance, that is parametrizable by the user though the definition of the valid update steps as operations.

At the core of the repair procedure is the Alloy relational model finder. Furthermore, since there may exist multiple consistent models at a minimal distance, Echo presents all such solutions, allowing the user to choose the best-suited one.

All efforts have been made to integrate Echo seamlessly in the MDE development process. Thus Echo is deployed as a plugin for the popular Eclipse IDE and over the Eclipse Modeling Framework (EMF). It is metamodel independent, processing any user-defined metamodels and corresponding models, and supports standard MDE file formats, mostly prescribed by OMG.

Supported formats

  • Metamodels are specified in Ecore (a version of MOF, OMG's meta-metamodel), as specified by the EMF.

  • Additional constraints in the metamodel can be defined by embedding OCL (OMG's constraint language) 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. (see a brief description of the supported QVT-R)

  • 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.

Functionalities

Model visualization
Models are presented using the Alloy visualizer. For better readability, a 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. This is performed in an online setting, in the sense that tests are performed every time the model is modified (or its metamodel, which changes the constraints).
Model repair
Given a model that does not conform to its metamodel, *Echo* can find a minimal repair that produces a consistent model. Solutions are guaranteed to be correct and minimal.
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 these features are implemented please consult the fundaments of Echo or the scientific publications. To start using Echo, please watch this video or follow this tutorial.

Clone this wiki locally