Skip to content
Tobias Nett edited this page Jan 15, 2015 · 6 revisions

HOME > DEVELOPERS > ARCHITECTURE

This page provides additional information about FRaMED's architecture and its different parts. Below, the different modules of the editor are shown. Basically, the editor consists of three parts: the Graphical Model, the Editor UI, and the Transformation. Each of these parts may be composed of more fine-grained packages, as can be seen by the graphical model. In the graphic, the foundational dependencies for each module are highlighted in green.

Graphical Model

The graphical model is separated from the semantic model given by *CROM*. This keeps the editor's graphical representation simple and allows for a more flexible handling of changes. The basic technology for the graphical model is EMF.

The graphical model is very general and only knows about Shapes (basically any box for types, groups, etc.) and Relations (all connections between model elements). Each ModelElement has a type, by which it can be identified. Moreover, the model contains some geometric constructs in order to display the models correctly. The diagram below shows the graphical model without the geometrical aspects.

Editor UI

The editor's UI is decoupled from model and semantic transformation. The UI module contains all classes responsible for *FRaMED*'s behavior, i.e., actions, commands, and editing policies. It builds on top of GEF.

Furthermore, the editor UI triggers the transformation of the graphical model to the semantic model. The trigger point is currently hooked to the saving mechanism of the graphical model.

Transformation

The transformation is responsible for generating a valid *CROM* model from the graphical model the user has built in the editor. Therefore, the Epsilon Transformation Language (ETL) is used for the transformation. Further information about the transformation, assumptions, and preconditions can be found on the respective Transformation page.

Clone this wiki locally