13.07.2015 Aufrufe

Diplomarbeit Modellgetriebene Software-Entwicklung: Vergleich von ...

Diplomarbeit Modellgetriebene Software-Entwicklung: Vergleich von ...

Diplomarbeit Modellgetriebene Software-Entwicklung: Vergleich von ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Eigenschaft nullzulässig bei dem Feld amtsgericht der Entität Antrag wird auf true gesetzt.Um während der Testphase besser den zeitlichen Ablauf nachvollziehen zu können, solleneinige Felder, die als Date deklariert sind, in der Datenbank als Timestamp deklariertwerden. Betroffen sind die Felder beginn_Datum und ende_Datum aus Mahnfall, datum ausMahnereignis und datum aus Dokument. Im Modell sollen sie aber weiterhin als Datedeklariert bleiben. Für einen solchen Fall bedient man sich einer Eigenschaft, um dieGenerierung zu beeinflussen. Für diese Felder wird in der Eigenschaft beschreibung dieZeichenkette „TIMESTAMP“ hinzugefügt, um zu steuern, dass diese Felder für dieDatenbank einen anderen Datentypen bekommen als für den Programmcode.5.3.3 ModelltransformationBei der MDA-Light Vorgehensweise gibt es nur eine Transformation vom Modell zur PSI. Fürdiese Transformation wird ein oAW Generator konfiguriert. Dazu wird eine Workflow-Datei inXML erstellt. In ihr wird unter anderem beschrieben, welche Metamodelle benutzt werdenund an welcher Stelle man sie findet. Weiter wird der Pfad angegeben, wo die generiertenArtefakte hingeschrieben werden sollen und wo die geschützten Bereiche für individuelleImplementierungen liegen. Darüber hinaus wird das Anwendungsmodell und das xPand-Hauptskript angegeben. Als Metamodelle werden das UML2-Metamodell und das GMV-Profilangegeben. Listing 5.1 zeigt einen Codeausschnitt, der ein Metamodell und das HauptskriptRootGMV definiert.Listing 5.1: Workflow-AusschnittDie benutzen Werkzeuge speichern die Modelle im XMI-Format, einem XML-Derivat. EinModell wird also in einer Baumstruktur in XML gespeichert. Der Wurzelknoten ist das Modell.Die darunterliegenden Knoten sind Pakete oder Klassen. Unter den Klassenknoten liegenKnoten für Methoden, Attributen, Assoziationen und weitere Daten bezüglich der Klasse. Sokann man sich beim Generieren durch das Model arbeiten, indem man nacheinander dieKnoten expandiert und zum Knoten passende Codeausschnitte in die Ausgabedatei schreibt.Das Modell Mahnsystem wurde als Paket Mahnsystem definiert. Das HauptskriptRootGMV.xpt expandiert direkt die Knoten, welche für die Klassen stehen (Entitäten,Geschäftsobjekte und Geschäftsprozesse) und ruft den dazugehörigen DEFINE-Block auf.Ein DEFINE-Block wird für ein Modellelement definiert, was auch ein Knoten in dem XMI-Baum ist. Diese Blöcke sind auf verschiedene Skripte verteilt, in welchen wiederum neueSkripte mit weiteren DEFINE-Blöcken aufgerufen werden können. Für eine Entität werdendie Skripte cr_java_dbh, cr_java_entity und cr_db2_table aufgerufen. Für einenGeschäftsprozess wird das Skript cr_java_gp.xpt und für ein Geschätfsobjekt cr_java_gp.xptaufgerufen.Für Geschäftsprozesse wird jeweils nur eine Java-Klasse generiert. Geschäftsprozessebesitzen keine eigenen Daten, enthalten nur Methoden. In dem aufgerufenen Skript wird alsonur der Knoten für den Geschäftsprozess und die Knoten für die Methoden expandiert. DasSkript enthält nur schematischen Code und Markierungen für den geschützten Bereich desindividuellen Codes. Der schematische Code wird durch das Expandieren der Knoten desModells erzeugt. Der individuelle Code wird per Hand, in der generierten Datei, in dengeschützten Bereich geschrieben und somit bei jedem Generator Durchlauf wieder in39

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!