GithubHelp home page GithubHelp logo

magilus / echo Goto Github PK

View Code? Open in Web Editor NEW

This project forked from haslab/echo

0.0 0.0 0.0 120.18 MB

A tool for model repair and transformation

Home Page: http://haslab.github.io/echo

License: Eclipse Public License 1.0

Java 100.00%

echo's Introduction

Echo

Echo is a tool for model repair and transformation built over the Alloy model finder, with support for bidirectional model transformations. It is able to both check and recover, through minimal updates, both intra- and inter-model consistency, and is deployed over the Eclipse Modeling Framework (EMF).

Features

Echo is meta-model independent, being able to process any meta-model specified in ECore and its respective instances in XMI. Additional constraints, as well as operations, are specified by embedding OCL in annotations, as prescribed by EMF. Inter-model consistency is specified by the QVT Relations (QVT-R) or ATL transformation languages.

Over these constraints and models, Echo v0.3.1 possesses the following features:

Model visualization
Models are presented using the Alloy visualizer. For better readability, an Alloy theme is automatically inferred from the meta-model, although an user-defined theme can also be provided if desired.
Model generation
Given a meta-model and user-specified size, Echo can generate a new model conformant with the metamodel. Additional OCL 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 meta-model annotated with OCL constraints.
Model repair
Given a model that does not conform to its OCL-annotated meta-model, Echo can find a minimal repair that produces a consistent model.
Inter-model consistency check
Given a QVT-R or ATL transformation and a set of models that are supposed to be consistent via it, Echo can check if such is the case.
Inter-model consistency repair
QVT-R or ATL transformation are interpreted as bidirectional (or multidirectional) transformations, so that given inconsistent models, Echo is able to repair them in order to recover consistency.
Batch transformation
Given a QVT-R or ATL transformation and existing models, Echo can generate the minimal model consistent with the existing models by the specified transformation.

For all generation and repair procedures, Echo presents all valid solutions, allowing the user to select the desired one.

Repair procedures are always minimal, in the sense that the resulting consistent model is as close as possible to the original inconsistent one. The user is able to choose how to measure this distance: either through graph edit distance, a meta-model independent metric that sees models as graphs and counts modifications of edges and nodes, or through an operation-based distance, that counts the number of applications of user-defined operations required to obtain the new model.

For more information about how the tool is implemented and its semantics, please consult the paper Implementing QVT-R Bidirectional Model Transformations Using Alloy. For an overview of Echo's features please watch this video.

(read more)

Installing

Echo is deployed over the Eclipse (Kepler) Modeling Tools. The following steps assume a fresh installation of Eclipse.

For Mac OS users, versions of Java earlier than 7up40 have an issue with the bridge between AWT and SWT that does not allow the embedding of the Alloy Visualizer in Eclipse. This is fixed in posterior releases.

(read more)

Running

The best way to get started with Echo is to follow this tutorial or to watch this video.

Examples

Folder examples contains ECore meta-models and QVT-R implementations of some typical bidirectional transformations, as well some example XMI model instances. Alternatively, download this archive containing the same examples.

(read more)

Publications

(read more)

Contributors

The contributors are members of the High-Assurance Software Laboratory (HASLab) at University of Minho, and have developed this work under the FATBIT project, funded by the ERDF through the programme COMPETE and by the Portuguese Government through FCT (Foundation for Science and Technology), project reference FCOMP-01-0124-FEDER-020532.

COMPETEQRENUEFCT

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.