-
Notifications
You must be signed in to change notification settings - Fork 2
Transformation
The FRaMED editor works with a separate model. This ensures the simplicity of the original CROM-Model. Moreover, it provides developers with more flexibility and freedom.
To close the gap between the two models of FRaMED and CROM, a model-to-model transformation is implemented. This is done by using the Epsilon Transformation Language.
This part will contain some architecture documentation about the the transformation and its working process.
The transformation requires some labels, i.e., NamedElements, to follow specific syntactic rules. This is necessary in order to be able to parse the given strings accordingly to their meaning in the graphical model. The assumed syntax is briefly defined in the following (using an EBNF-like notation).
Operation := <name> "(" {Parameter} ")" ":" <type>
Attribute := <name> ":" <type>
Parameter := Attribute
Additional white spaces are ignored. <name> and <type> both stand for valid Java identifiers. The graphical front-end is responsible for assuring the correct format.
| Graphical Element | Graphical Model | Semantic Model |
|---|---|---|
![]() |
A Shape with type NaturalType, which contains
|
A NaturalType with respective name, attributes, and operations. |
![]() |
A Shape with type CompartmentType, which contains
|
A CompartmentType with respective name, attributes, operations, and child reference. |
![]() |
A Shape with type RoleType, which contains
|
A RoleType with respective name, attributes, and operations. |
![]() |
A Shape with type DataType, which contains
|
A DataType with respective name, attributes, and operations. |
To ensure variety in all of our tests without setting up separate models by hand in every one we implemented a parameterized test which loads test cases out of the testcases directory inside the org.framed.transformation.test plugin. To serialize those test cases a little emf model was build which consists of the TestCase case with the following attributes:
- title
- description
- framed model (Which will be transformed)
- crom model (the expected one which is used for comparing purposes)
So we just need to create a new file by using the default EMF-Editor implementation or FRaMED itself (for the framed model) to provide new tests.



