# EMF Modelgenerierung



## Gast2 (13. Dez 2010)

Hallo zusammen,

mit EMF gibt es ja mehrere Möglichkeiten (z.B. XML,Ecore Diagram bzw. Tree und Java Annotation) ein genmodel zu erstellen. Meine Frage ist wie sowas in der Praxis aussieht und die 3 Arten synchronisiert werden.
Nehmen wir mal es gibt 3 Entwickler:
1. Entwickler macht die Sache mit Ecore
2. Mit XML
3. Über Java Annotation.

Beispiel Szenario:
Entwickler 1 deklariert eine neue Klasse im ecore model und lädt das genmodel neu. Jetzt haben die beiden anderen Entwickler zwar den neu generierten Model code mit neuer Klasse, aber wie bekommen Sie die Änderungen nun ihr Modelkonstrukt?
Muss Entwickler 3 die Änderungen manuell in sein Java Annotation Model übernehmen?


----------



## Sonecc (13. Dez 2010)

Ich kann jetzt nur für mich sprechen, also nicht zwingend als direkte Antwort ansehen.

Bei uns wirds über Ecore-Modelle gehandhabt und nix anderes.
Soweit ich das sehe, muss man sich da auch auf eine Art einigen und diese dann durchziehen. Ein Beispiel wie du es gibst, dass 3 Entwickler 3 unterschiedliche Arten verwenden halte ich persönlich für schwierig zu managen...

Bin aber mal gespannt, ob das wer anders sieht


----------



## maki (13. Dez 2010)

Sehe das wie Sonecc, selbst wenn es technisch möglich wäre, ist es defnitiv an der Grundidee der MDSD vorbei wenn man 3 Modelle für ein und dieselbe Problemdomäne in einer App benutzt.

Die Idee ist ja: Ein Modell, der Rest (bzw. das meiste) wird daraus generiert.


----------



## Gast2 (13. Dez 2010)

Wegen dachte das ist die Stärke von EMF???

Man kann auf 3 Arten das GenModel für EMF erstellen und aus diesem wird der Code generiert.
So kann jeder Entwickler, die für ihn beste Variante wählen. Klingt ja alles schönm, deshalb sollte es ja auch eine Möglichkeit geben die 3 Arten untereinander syncron zu halten, sonst finde ich ist die Möglichkeit der Auswahl nicht zu gebrauchen!!!


----------



## Sonecc (13. Dez 2010)

Sicher kann man das, aber das Problem ist ja, dass die 3 Arten sich unterscheiden.
Wenn Entwickler 1 etwas am Ecore ändert, müsste Entwickler 2 das an seinen XML Dateien nachtragen.
Dies ist etwas, das technisch wohl als eher schwierig (um es nett zu sagen) angesehen werden kann und was schlicht zu Inkonsistenzen im Modell führen kann...

EMF ist ja nicht gemacht worden, um den Entwicklern zu ermöglichen, dass jeder im gleichen Projekt auf unterschiedliche Arten das Modell füttern kann. Soweit ich weiß, ist es auch nirgends als Stärke von EMF aufgeführt, dass man diese 3 Arten gleichzeitig verwenden kann.


----------



## Gast2 (13. Dez 2010)

Sonecc hat gesagt.:


> EMF ist ja nicht gemacht worden, um den Entwicklern zu ermöglichen, dass jeder im gleichen Projekt auf unterschiedliche Arten das Modell füttern kann. Soweit ich weiß, ist es auch nirgends als Stärke von EMF aufgeführt, dass man diese 3 Arten gleichzeitig verwenden kann.



Wie gesagt hab ich so verstanden...

Also es gibt die 3 Möglichkeiten und man muss sich davor entscheiden welche Variante am sinvollsten für alle ist.


----------



## Wildcard (13. Dez 2010)

Man muss nicht zwangsläufig, aber man sollte. Führt ins Chaos wenn jeder sein eigenes Süppchen kocht. EMF passt in so ziemlich jeden Entwicklungsprozess und in jede Toolchain, allerdings sollte dieser Prozess in sich konsistent sein, nicht mal hier und mal da schrauben.
Wir arbeiten fast ausschließlich mit dem Ecore Baum Editor und erzeugen daraus für die Übersicht Diagramme. Der Editor ist zwar etwas spärlich, aber wenn man sich dran gewöhnt hat kann man sehr fix damit arbeiten.
Der generierte Code enthält aber alle Annotations für EMF, daher ist es schon möglich das ein Entwickler das Ecore modifiziert und daraus Code generiert und der nächste Entwickler Annotations im Code hinzufügt und damit das Ecore aktualisiert usw. Ich würde mich aber dennoch im Team auf eine Vorgehensweise einigen.


----------

