Die unterschiedlichen Entwicklungsphasen

Die Arbeit mit AGen besteht grundsätzlich aus drei Phasen, die sich hochiterativ wiederholen können: die Modell-Phase, die Template-Phase und die Software-Generierungs- und Programmierungsphase.

In der Modell-Phase spezifiziert die Fachseite (z.B. Produktmanager, Business-Analysten) verschiedene Modellaspekte:

  • Entitätsaspekte, d.h. die wesentlichen, abstrakten Datentypen mit Attributen,
  • UI-Aspekte in Form von visuellen Wireframes,
  • Interfaceaspekte.

Ergebnis der Modell-Phase sind textuelle XML-Spezifikationen, die von den Templates für die Softwaregenerierung verwendet werden.

AGen Entwicklungsphasen

In der Template-Phase wird in zwei Arten von Templates unterschieden:

  • In den Input-Templates wird definiert, wie Dokumente mit Business-Spezifikationen in ein Domain-Model transformiert werden. Es geht also darum, die vom Anwender gewünschten
  • Funktionen zu verstehen, die zum Beispiel vom Produktmanagement in Form von Excel-Listen definiert wurden.
  • Die Architektur-Templates legen fest, wie Code und Dokumente vom Domain-Model generiert werden.

Ergebnis der Template-Phase ist eine generierte Anwendung, die selbst ein auf den jeweiligen Business-Case hochspezialisierter Generator ist.

In der Generierungs-Phase generiert der in der Template-Phase kreierte Generator Code und Dokumente, die mit den manuell produzierten Codekomponenten zusammengeführt werden. Hierbei verwendet er die Dokumente mit Business-Spezifikationen, die vom Produktmanagement erstellt wurden. Auf diese Weise kann Code generiert werden, ohne dass die Funktionsweise der Templates bekannt sein muss. Auch kann die Code-Generierung in eine Tool-Chain integriert werden. Der generierte Code lässt sich darüber hinaus um zusätzlichen Programm-Code erweitern, um Business-Logiken zu schaffen, die nur vereinzelt benötigt werden und bei denen der Aufwand für eine automatische Generierung zu hoch wäre.

Die Unterteilung in drei Phasen bringt den Vorteil, dass klar in Template- und Anwendungs-Entwicklung unterschieden wird und somit die jeweiligen Experten für die passende Entwicklungstätigkeit eingesetzt werden können.