Left Up Right Modellgetriebene Softwareentwicklung

Codegeneratoren

Prinzipielles

Im Prinzip kann man einfach Codetext in einer Datei erzeugen - dies geht in allen Programmiersprachen

Textuelle Codeerzeugung: Hier wird richtig der Quelltext erzeugt, der von ganz normalen und unabhägigen Compilern und Interpretern interpretiert werden kann.

Mit Templatesprachen sind die Aspekte Modell und Zielcode getrennt.

Trennung von Generierten und manuell geschriebenen Code

Das Ideal ist, das ein Code vollständig aus einem Modell generiert werden kann.

Eine weitere Idee ist, dass im Modell der manuell geschriebene Zielcode schon eingebettet ist (z.b. Lex/Yacc - Scanner/Parser-Generatoren)

Ein Codegenerator kann sog. Protektoren in den Text generieren. Bei einer Neugenerierung muss dieser den manuell geschriebenen Code extrahieren und ein den neuen Code einbetten.

Eine einfache Methode ist, dass der Generator die alten Generate sicherheitskopiert. Dann kann man mit diff und patch die manuellen Änderungen sichern und bei der Neugenerieung wieder einspielen. (Dabei kann dann Ideen für einen besseren Codegenerator gewinnen.)

Standards

OMG MOFM2T
definiert eine Templatesprache

Bibliotheken für Codegenerierung

JET Java Emitter Templates
cglib Codegenerationenlib für JAVA

Codegeneratoren

xmi2code

Versucht Model, Controller, und Generator als Schichten zu implementieren

Implementierung:

Ideen


Informatik- und Netzwerkverein Ravensburg e.V Rudolf Weber