Startseite < Informatik < Algorithmen Datenstrukturen / Software-Engineering < Entwicklungsmodelle < Wasserfallmodell Evolutionäres Modell [ DRUCK , 2004 , 2005 , 2006 , 2007 , 2008 , 2009 ] Transformationsmodell > Entwicklungsphasen / Web-Engineering > / Programmiersprachen / Künstliche Intelligenz > Schach Privates / Inhalt >
Transformationsmodell
Mit einer formalen Spezifikation wird das Zielprojekt generiert.
Einführung Definition zum transfromativen Entwicklungsmodell
Was ist das Transformationsmodell?
Das Transformationsmodell bezeichnet ein Software-Entwicklungsmodell, welches das erforderliche Zielprojekt anhand einer formalen Projektbeschreibung mit Hilfe eines Transformators größtenteils automatisch erzeugt bzw. generiert.

Der Transformator erhält als Input die formale Spezifikation, die Projektbeschreibung. Als Output liefert der Transformator das Zielprojekt.

Die Schwierigkeit liegt darin, einen Transformator (Programmgenerator) zu finden, der alle Funktionen der Spezifikation korrektheitserhaltend in das Zielprojekt transformieren kann. 1

Beim diesem Entwicklungsmodell spielt das Programmierparadigma „Generatives Programmieren” eine wesentliche Rolle. Falls es noch keinen erforderlichen Transformator zur gegebenen Spezifikation, die formal angelegt sein muss, geben sollte, so muss dieser entwickelt werden.
Motivation Motivation zum transfromativen Entwicklungsmodell
Copy & Paste
Wenn Sie bei der Implementierung zum x-ten mal Code kopiert und an anderer Stelle eingefügt haben, um diesen etwas anzupassen, ist es eigentlich schon zu spät für einen generativen Prozess. Nachträgliche Änderungen, welche die kopierten Codebestandteile betreffen, müssen schlimmstenfalls überall im Projekt nachgezogen werden. Man sollte sich schon bei der Projektspezifizierung Gedanken darüber machen, welche Teile des Projekts generativ erstellt werden können. Bei häufigen Copy&Paste-Aktionen läuft man nur Gefahr, dass das Projekt schnell in einen inkonsistenten Zustand gerät (zu viel Redundanz), wohingegen generierte Bestandteile für Konsistenz im Zielprojekt sorgen. Zum Beispiel weisen generierte Benutzerdialoge immer gleiches Verhalten auf.

Partielles Generieren von Projektbestandteilen betrachte ich als Vorstufe einer (vollständigen) Transformation.
Nicht nur für Windows!
Schafft man es ein Zielprojekt vollständig zu generieren, kann man im nächsten Schritt das Zielprojekt auch für andere Plattformen generativ erstellen lassen. Dazu muss nur noch der Programmgenerator für die jeweilige Plattform erweitert werden. Damit erreichen Sie eine weitaus größere Zielgruppe, also nicht nur Windowsnutzer sondern auch Solche, die Linux oder MacOS als Plattform verwenden. Damit nicht genug, das Zielprojekt kann bestimmt auch zu einer Webanwendung für beliebige Browser werden.
Ähnliche Zielprojekte
Erstellt man für ein Zielprojekt einen Programmgenerator, so kann man für ähnliche Zielprojekte den Programmgenerator entsprechend erweitern. Die Unterschiede können Sie als Input für den Programmgenerator auslagern, eine formale Spezifikation wird geboren und der Programmgenerator wird zum Transformator. Die Entwicklungszeit verkürzt sich enorm. Die Entwicklung für weitere Zielprojekte, die in die Klasse der transformierbaren Zielprogramme bezüglich des Transformators fallen, hört schon bei der Spezifikation auf.
Beispiele Beispiele zum transfromativen Entwicklungsmodell
Yacc
Yacc steht für Yet-Another-Compiler-Compiler und bedeutet, dass Sie bezüglich einer formalen Spezifikation einen eigenen Compiler erstellen können. Das Transformationsprogramm Yacc ist ebenfalls ein Compiler.
Tinyray
Mit Tinyray können Sie ebenfalls andere Programme erstellen (compilieren). Mit Hilfe eines formalen Tinyray-Programms können Sie zum Beispiel ein interaktives C-Programm erstellen.