Eclipse EMF Modelltransformation

flip0r

Mitglied
Hi,

ich beginne grade mit dem schreiben meiner diplomarbeit und hoffe ihr könnt mir noch etwas beim grundsätzlichen verständniss weiter helfen. Also mein thema ist die transformation eines modells (metamodell typ ist ecore, die implementierten modelle sind in einer DSL geschrieben) in ein Testmodell (aktivitätsdiegramme mit zusätzlichen informationen zur testfallgenerierung). das ziel ist also ein xmi file welches dann von einem tool importiert werden kann. meine frage dazu, ist das nicht im prinzip trotzdem nur eine model to text transformation da ich ja ein gewöhnliches xmi file erzeuge?
welche templatesprache würdet ihr nehmen und warum? ich habe bis jetzt mit xpand + xtext gearbeitet (aber nur für eine M2T transformation). wäre das auch für die M2M tranformation am besten geeignet da das gesamte projekt bisher mit EMF erstellt wurde?

Vielen dank im vorraus.

mit freundlichen grüßen
flip0r
 
Entweder XPand oder JET als Template Sprache, oder ein Ecore für das Zielmodell erstellen und dann eine Model-2-Model Transformation durchführen. Beides sollte sich recht einfach umsetzen lassen.
Wenn dir kein bestimmtes Format für die XMI vorschwebt dann kannst du auch einfach das Xtext Modell in eine XMIResource stopfen und das dann speichern, schon hast du ein XMI.

Java:
XtextResource resource = ....
Resource xmiResource = new XMIResourceImpl(URI.createFileURI(...));
xmiResouce.getContents().addAll(resource.getContents());
xmiResource.save(null);
 
Vielen dank schon einmal für deine Antwort.
Das mit dem Ecore hatte ich auch im sinn, es gibt allerdings schon ein spezielles format für das XMI. es muss sich in enterprise architect oder innovator (beides modellierungsplattformen) importieren lassen. wenn ich mein modell transformiert habe wie kann ich dann daraus den xmi code erzeugen, das ist mir noch etwas unklar.

der output eines exportierten beispielmodells
(so soll das inputformat dann auch aussehen)
[XML]
<UML:Model name="EA Model" xmi.id="MX_EAID_F0B6A86F_D91C_44f4_9BA2_36B75DF3F152">
<UML:Namespace.ownedElement>
<UML:Class name="EARootClass" xmi.id="EAID_11111111_5487_4080_A7F4_41526CB0AA00" isRoot="true" isLeaf="false" isAbstract="false"/>
<UML😛ackage name="Combobox pruefen" xmi.id="EAPK_F0B6A86F_D91C_44f4_9BA2_36B75DF3F152" isRoot="false" isLeaf="false" isAbstract="false" visibility="public">
...
[/XML]
 
Zuletzt bearbeitet:

Zurück
Oben