12.2. Modellierungshinweise zur Verwendung der Plattform-Erweiterungen

Die Plattform-Erweiterungen ergänzen den "normalen" Java 5-konformen Quellcode um einige Code-Schnipsel, meistens Annotationen. Die dazu notwendigen Informationen kann der Modellierer über Stereotypen modellieren. Dabei entsprechen die Stereotypen mit ihren TaggedValues meist den in den verschiedenen Spezifikationen definierten Annotationen mit ihren Attributen. Dabei wurde auch das in den JavaEE-Spezifikationen verwendete Prinzip der "Convention over Configuration" berücksichtigt. Die Standard-Werte der TaggedValues entsprechen denen der Annotations-Attribute. Das folgende Bild zeigt dies am Beispiel des Stereotypen "jpaPersistentEntity".

Figure 12.1. Mapping des Stereotypen "jpaPersistent" auf die Annotationen "@Entity"

Mapping des Stereotypen "jpaPersistent" auf die Annotationen "@Entity"

Diese Abbildung der Stereotypen mit ihren TaggedValues auf die Annotationen mit ihren Attributen erlaubt eine intuitive Verwendung der Stereotypen, falls der Modellierer die Sicht des Programmierers einnimmt. Er kann anhand der verwendeten Stereotypen sehen wie der generierte Quellcode aussehen wird und gegebenenfalls Schlußfolgerungen ziehen welche Informationen im Modell noch fehlen.

Die Einnahme der Sicht eines Programmierers bei der Modellierung hat Vor- und Nachteile. Dem oben genannten Vorteil steht die "Vertechnologisierung" des Modells entgegen. Damit ist die Anreicherung des Modells mit technologiespezifischen Informationen gemeint. Unter Umständen werden einige Informationen auch redundant modelliert.

Der folgende Ansatz erlaubt dem Modellierer sich ein paar Schritte von der Programmier-Sicht zu entfernen. Der Rückweg steht ihm dabei aber jederzeit offen.

12.2.1. Automatische Quellcode-Ergänzung

Die automatische Quellcode-Ergänzung verringert den Aufwand des Modellierers ein vollständiges Modell für eine bestimmte Technologie zu erstellen. Dabei übernimmt GeneSEZ die Aufgabe bereits im Modell vorhandenen oder logisch herleitbare Informationen in die Generierung des Quellcodes einfließen zu lassen. Der Modellierer muss keine redundanten Informationen oder technologiespezifischen Elemente (z.B. Interfaces, Klassen, Attribute oder Methoden) modellieren.

Die notwendigen Informationen für die Codegenerierung können GeneSEZ im Allgemeinen auf drei verschiedene Weisen zur Verfügung gestellt werden:

  • vollautomatisch (Informationen ergeben sich vollständig durch die Metadaten des Modells),

  • halbautomatisch (Informationen ergeben sich aus Stereotypen und den Metadaten des Modells) oder

  • manuell (Informationen ergeben sich ausschließlich aus den verwendeten Stereotypen).

Dieses Konzept ermöglicht dem Modellierer seinen Aufwand auf ein Minimum zu senken und das Modell frei von technologiespezifischen Elementen zu halten. Er kann aber jederzeit die automatische Quellcode-Ergänzung durch die Verwendung von Stereotypen beeinflussen (halbautomatisch) oder überschreiben (manuell).

GeneSEZ setzt einen mündigen Modellierer voraus, der weiß was er modelliert. Die manuellen Informationen haben bei der Codegenerierung die höchste Priorität.