11.4. MDSD für das Dynamic Data Model (DDM)

Für das dynamische Datenmodell kann mit dem GeneSEZ PHP Platform Projekt eine PHP Datei mit DDM Definitionen generiert werden. Die in einem UML Modell enthaltenen Datentypen, Klassen, Attribute sowie Assoziationen werden auf Basis des DDM definiert.

11.4.1. Erstellung eines UML Modells

Für die Modellierung einer Anwendung die auf der Basis des DDM entwickelt werden soll gibt es ein UML Profil, welches in Abbildung Figure 11-2 dargestellt ist. Alle UML Klassen werden zu DDM Klassen und alle UML Datentypen werden zu DDM Typen. Attribute und Assoziationen werden analog abgebildet.

Figure 11-2. UML Profil für das DDM

Das Profil stellt fünf Stereotypen bereit. Die Stereotypen type und class sind optional. Zur Definition eines DDM Typs ist jedoch einer der drei Basistypen erforderlich.

Dabei ist bewust keine Vererbungsbeziehung zwischen den Stereotypen type sowie den Stereotypen boolean, integer und string spezifiziert. Dies hat die folgenden Konsequenzen:

Mit Vererbungsbeziehung müsste jedes nicht notwendige constraints explizit als leerer String modelliert werden.

11.4.2. Mapping von UML Datentypen auf DDM Typen

Der Stereotyp type ist bei der Abbildung von UML Datentypen auf DDM Typen optional, jedoch muss ein Stereotyp zur Angabe des Basistyps angegeben werden. Es werden die folgenden Eigenschaften berücksichtigt:

Bei der Abbildung werden die auf die Werte von name und basetype noch Namenskonventionen angewendet die standardmäßig den Name mit einem Großbuchstaben beginnen lassen und den basetype komplett in Großbuchstaben konvertieren.

11.4.3. Mapping von UML Klassen auf DDM Klassen

Der Stereotyp class ist bei der Abbildung von UML Klassen auf DDM Klassen optional. Die Eigenschafen beider Konstrukte werden wie folgt aufeinander abgebildet:

Bei der Abbildung werden auf die Werte von name und view noch Namenskonventionen angewandt die standardmäßig beide Werte mit einem Großbuchstaben beginnen lassen.

11.4.4. Mapping von UML Attribute auf DDM Attribute

Die Abbildung von UML Attributen auf DDM Attribute ist ohne zusätzliche Informationen möglich. Dabei werden die Informationen aus dem UML Modell wie folgt genutzt:

Bei der Abbildung werden auf die Werte name und view noch Namenskonventionen angewandt die standardmäßig beide Werte mit einem Großbuchstaben beginnen lassen.

11.4.5. Mapping von UML Assoziationen auf DDM Assoziationen

Die Abbildung von UML Assoziationen auf DDM Assoziationen ist ebenfalls ohne zusätzliche Informationen möglich. Dabei werden die Informationen des UML Modells wie folgt genutzt:

Auf den Wert von name wird noch eine Namenskonvention angewandt die den Wert mit einem Großbuchstaben beginnen lässt.

11.4.6. Workflow Definition

Bei der Uml2GeneSEZ Transformation sollte das GeneSEZ DDM UML Profil als Metamodell mit angegeben werden:

<component id="uml2genesez" class="de.genesez.platforms.common.workflow.Uml2GeneSEZ"> 
    <model value="<model name>" />
    <profile value="model/genesez.php.ddm.profile.uml" />
</component>

Zur Model-zu-Text Transformation kann ein PHP Generator genutzt werden, der das Template de::genesez::platforms::php::ddm::templates::Definition::Root ausführt:

<component id="model2php" class="de.genesez.platforms.php.workflow.PhpGenerator"> 
    <outputDir value="src-gen" /> 
    <template value="de::genesez::platforms::php::ddm::templates::Definition::Root" /> 
</component>

Danach wird im angegebenen Verzeichnis eine PHP Datei mit den DDM Definitionen erstellt. Standardmäßig ist diese ddm.definitions.php genannt.

Die Datei enthält am Anfang eine Protected Region um die Datenbankverbindung sowie Doctrine initialisieren zu können bevor mit der Erstellung des DDM Modells begonnen wird.