Suchen und Finden
Service
Infos und Kontakt
7 Generierungstechniken (S. 156)
Es gibt mittlerweile etliche Tools und Konzepte am Markt, um Code zu generieren. Das verdeutlicht den Druck in der Branche und die Notwendigkeit, zu automatisieren, um Qualität zu steigern und Kosten zu reduzieren. Die unterschiedlichen Tools setzen teilweise unterschiedliche Generierungstechniken ein, die wir in diesem Kapitel kurz erläutern möchten. Teilweise verwenden die Tools auch Mischformen dieser prinzipiellen Generierungstechniken. Die vorgestellten Generierungstechniken stellen keine abschließende Liste dar, sind aber die derzeit gängigsten Methoden.
7.1 Templates für beliebige Zielsprachen
Templates sind im Kontext „Generieren" Vorlagen, die den zu generierenden Code enthalten. Die Templates enthalten die Regeln, wie der „Codetext" auszugeben ist. Das heißt, der dort enthaltene Quellcode entspricht einem Ausgabetext, sodass die Zielsprache irrelevant ist.
Die Variablen der Templates beziehen sich auf das Modell, man sagt auch: „Die Templates werden auf das Modell angewendet". Das Modell kann in unterschiedlicher Form vorliegen. Eine Möglichkeit wäre ein DOM-Dokument als XML-Repräsentation des Modells (oder Modellausschnittes) im Speicher – meist wird dieses dann zuvor gefiltert (siehe Kapitel 7.1.1); eine andere Möglichkeit besteht in der Instantiierung eines Metamodells (siehe Kapitel 7.1.2).
7.1.1 Templates und Filtering
Wird das Modell als DOM im Speicher gehalten, so werden häufig „Filter" vor die eigentliche Bearbeitung geschaltet, um die Modellelement-Menge und damit die Komplexität der Templates einzuschränken, wie Abbildung 7.1 zeigt.
Ein Repräsentant dieser Technik sind z.B. XSLT-Skripte, die eine XML-Spezifikation in Codetext umwandeln können. Setzt man XSLT-Skripte für diese Zwecke ein, werden sie jedoch sehr schnell unübersichtlich. Dies ist bereits am folgenden kleinen Beispiel ersichtlich. Wir zeigen eine Umwandlung anhand des ersten Beispiel aus Kapitel 2. Hier sollte aus der Modelldatei simple.model (siehe Listing 2.1) eine Java-Datenklasse mit Setter- und Getter-Methoden erzeugt werden (siehe Listing 2.2).
Alle Preise verstehen sich inklusive der gesetzlichen MwSt.; Ersparnis im Vergleich zur Printversion

















