Fragen zu MDD Ansatz

Thomas Darimont

Erfahrenes Mitglied
Hallo!

Ich moechte fuer ein Projekt einen MDD Ansatz etablieren. Normalerweise hat man bei einer MDA zwei Modellierungsstufen.
Die erste Stufe ist das sogenannte
Platform Independent Model (PIM) welches in der Regel in Form eines UML Meta Models (Use Case Diagramms,
Class Diagramms, Sequence Diagramms, Deployment Diagramms, usw.) daherkommt. Innerhalb dieses UML Models
sind die einzlenen Artefakte mit generischen Meta Informationen in Form von Stereotypen auf Entitaets- und
Tagged Values auf Attributebene ausgestattet. Dieses Modell ist zunaechst einmal unabhaengig von einer
konkreten Implementierungsplatform.
In einer zweiten Stufe wird das Model vom PIM in das sogenannte Platform Specific Model (PSM) Transformiert.
Hierbei werden dem Model Platformspezifische Meta-Informationen hinzugefuegt bzw. die generischen
Sterotypen, Tagged Values des PIM weiter spezialisiert. (Dieses Modell liegt nun wieder als UML Modell vor).

Anschliessend folgt in einem dritten Schritt die Anwendung eines Codegenerators der dieses PSM (liegt
beispielsweise als XMI vor) analysiert und gemaess interner Transformationsregeln (Templates) entsprechende
Quellcodeartefakte (Klasse, Konfigurationsdateien) fuer die jeweilige Zielplatform generiert.

Fuer den Prozess sollen folgende Restriktionen gelten:

1) Die fachlichen Domaenen Experten Modellieren das System (Die Entitaeten (Class Diagramms), Use cases))
mit der UML und dokumentieren dies. Das Ergebnis liegt dann in UML als UML Meta (Meta)- Model vor.
(Generische Stereotypen, Tagged Values)

2) Die Anwendungsentwickler ziehen sich eine Instanz dieses Modells (referenzieren das generische UML Model)
und erweiteren die einzelnen Artefakte um (technische) Platform Spezifische Metadaten.

Die Frage ist nun wie man das referenzieren des PSM auf die Artefakte des PIM realisiert werden kann.
Sobald im PIM ein neuer Typ hinzugefuegt wird soll diese Aenderungen an das PSM propagiert werden. Weiterhin
soll auch Aenderungen an Attributen, Methoden von Entitaeten im PIM an das PSM weitergegeben werden.

Hat jemand vielleicht eine Idee mit welchen Produkten ich mich diesbezueglich auseinander setzen sollte?
Bisher habe ich auf Magic Draw (Poseidon, Rational Rose), AndroMDA, Netbeans MDR aufgesetzt. Was mir nun fehlt ist
die Verlinkungsmoeglichkeit des PIM und PSM innerhalb der UML.

Gruss Tom
 
Hi,

wenn ich das recht vestehe, möchtest du quasi eigene Transformationen schreiben, zumindest läuft es darauf hinaus, wenn du von PIM auf PSM transformieren möchtest. Wenn ich es richtig verstanden habe, in deinem Fall von META-UML auf UML.

AndroMDA würde dir da doch schon Möglichkeiten bieten, oder? Also in Form von neuen Cartriges. Nur eine Idee, vielleicht bringt dich das weiter. Theoretisch müßte es möglich sein.

Gruß
TOM
 
Hallo!

Die standard AndroMDA Catriges sind doch "nur" eine Sammlung von Generatoren und Templates die ein mehr oder weniger konkretes PSM des PIMs in einer fuer eine oder mehrere Zielplatform (Zieltechnologie) wie Spring, Hibernate, EJB, JSF, Struts generieren.

Wie du richtig erkannt hast suche ich hingegen eine Transformation von (Meta-UML (Generic Stereotypes,Tags) -> UML ( Spezielle Stereotypes, Tags). Scheinbar gibt es in dieser Richtung nichts... also muesste man das gegebenenfalls selber machen :(
(Eigentlich braechte man dazu ja nur ein wenig Validierung, und die Ersetzungen fuer die generischen Stereotypen,Tags im XMI Dokument zu spezifizieren... mal schauen)

Eine weitere Frage war, welche UML Tools solch eine "Mehrstufige" Modellierung unterstuetzen. Es gibt viele UML Tools die eine Art MOF-Repository bieten (beispielsweise basierend auf Netbeans MDR) aber soweit ich das sehen kann bekomme ich dort ohne weiteres keine zweistufige Modellierung hin... :(

Gruss Tom
 
Hm ... der Aufwand ist sicher beträchtlich, um das mit AndroMDA durchzusetzen, da muss ich dir recht geben.

Eine weitere Möglichkeit die mir so spontan einfällt wäre GMF (http://www.eclipse.org/gmf/). Mit GMF hast du die Möglichkeit auf ecore basierend Modelle graphisch zu gestalten, und auch zu definieren. Ich selbst habe damit leider noch nichts gemacht, aber ein Kollege von mir hat sich dieser Thematik schon einmal gewidmet. Ich denke, dass diese Technologie durchaus ernstzunehmen ist (auch wenn es noch kein Final gibt).

Hoffe das könnte dir helfen.

TOM
 
Hallo!

Ueber diese Moeglichkeit hatte ich auch schon nachgedacht, wobei auch hier diesbezueglich einiges an Integrationsarbeit zu leisten waere...

Gruss Tom
 
jep, das stimmt, jedoch ist es glaube ich, wenn deine entwicklungen auf eclipse basieren werden (reine vermutung), durch die breite toolunterstützung von eclipse in der hinsicht, eine durchaus überlegenswerte alternative.

was sicher auch onch in den rahmen passen würde wäre oAW ... wobei ich von dieser seite schon viel negatives gehört habe. vorallem in der anwendung soll open architecture ware nicht sonderlich aufregend sein. hinzukommt, dass ich auch nicht sagen kann inwieweit das eigene erstellen von modellen unterstützt wird.

ein tool mit dem ich derzeit experimentiere ist GEMS (Generic Eclipse Modeling System) zu finden unter http://sourceforge.net/projects/gems. dieses tool ermöglicht es dir eigene domänen, also modelle, festzulegen, und generiert dir daraus automatisch ein eclipse plugin mit hilfe dessen du dann im kontext deines meta-modells modellieren kannst. der hacken an der sache ist, dass in der derzeitigen version lediglich ein level gemeistert wird, d.h. von meta-modell auf modell.

gruß
TOM
 
Zurück