EMorF can be used to search and retrieve model elements of interest from a model instance. A query for model elements like objects and links, i.e. model patterns, is expressed graphically. For pattern queries with more specific criteria, EMorF supports standard OCL expressions with a well-defined syntax.
Another application area for EMorF is in-place model transformation which is also known as model modification. For example, it is possible to create and delete model elements or change their attribute values. And once again, all this can be expressed graphically, i.e. there is no need to learn a complex language.
In cases where two models are given, EMorF is able to compute the correspondence mapping between both models, i.e. it can be used to maintain the consistency between models according to the given correspondence rules.
If a large model is changed slightly, it is quite uncomfortable to transform the whole model once again from scratch. EMorF is already prepared for incremental model-to-model transformations. Since such incremental model-to-model transformations can be executed in both directions in order to keep both models consistent to each other, we call this kind of application incremental model synchronization.
EMorF is an open source tool build for Eclipse. It comes with several views and editors to ease the development of all kinds of model transformations. And it can be tailored to your needs.
In EMorF you specify rules for model queries, model transformations and model modifications in a graphical editor. The graphical rules have a formal semantics and are declarative, i.e. you describe what should be done and not how to do it.
Interpreter EngineThe graphical rules are precompiled and executed by an interpreter system, i.e. there is no need to generate source code from the EMorF rules. This way, an iterative development process with frequent changes to the model transformation rules is supported. Nevertheless, note that our interpreter engine works both on generated EMF models as well as on dynamic EMF models.
Do you want to test if the defined model transformation executes like expected? Use the test framework. The Test Framework offers some specific assertion methods.