Für ein Softwareprojekt wird eine Aufteilung in mindestens zwei Projekte vorgeschlagen. Dies ist zum Einen ein so genanntes Generatorprojekt, welches Konfigurationen, Bibliotheken und weitere spezifische Artefakte für den modellgetriebenen Entwicklungsprozess beinhaltet. Neben diesem existiert mindestens noch ein weiteres Projekt welches den anwendungsspezifischen Quellcode beinhaltet. Durch diese Aufteilung sind in jedem Projekt nur die Artefakte enthalten, die für das jeweilige Projekt relevant sind.
Das Generatorprojekt ist ein openArchitectureWare-Projekt, welches wiederum ein Eclipse-Plug-In-Projekt ist. Dadurch können die benötigten Bibliotheken für den Generator einfach als Eclipse-Plug-Ins referenziert werden. Neben den spezifischen Verzeichnissen und Dateien von Eclipse-Plug-In-Projekten existieren die folgenden Verzeichnisse:
* config
* model-exp
* model-gen
Das Verzeichnis config enthält den Workflow, welcher die einzelnen Schritte beschreibt, die notwendig sind, um ein Modell in Quellcode zu transformieren. Weiterhin kann optional noch die Datei log4j.properties enthalten sein, welche das von GeneSEZ und openArchitectureWare genutzte Logging-Framework Log4J konfiguriert.
Im Verzeichnis model-exp befindet sich das Modell der Anwendung im XMI-Format des Eclipse UML2-Projektes. Im Falle des Beispielprojektes wurde das Modell mit dem Modellierungswerkzeug Magic Draw erstellt und als Eclipse UML2-Modell exportiert. Daraus ergibt sich auch der Name des Verzeichnisses model-exp, der für "exportiertes Modell" steht. Dieses Modell dient als Ausgangspunkt der Codegenerierung.
Der Ordner model-gen enthält ein serialisiertes GeneSEZ-Modell, welches durch den Workflow erzeugt wurde. Sich dieses Modell einmal näher anzusehen, kann z.B. nützlich sein, um zu überprüfen, ob Modellmodifikationen korrekt funktionieren. Die XMI-Datei kann mit Hilfe des Sample Reflective Ecore Model Editor geöffnet werden. Dieser stellt das Modell in einer Baumstruktur dar, ähnlich wie der UML Model Editor für Eclipse UML2-Modelle.
Weiterhin können sich noch weitere Dateien und Verzeichnisse wie z.B. projektspezifische Type-Mapping-Dateien und Artefakte für die Anpassung des Generators im Generator-Projekt befinden.
Bei größeren Projekten ist es sinnvoll, mehrere Anwendungsprojekte zu erstellen (z.B. wenn neben einer Desktopoberfläche eine Weboberfläche entwickelt wird). Ansonsten ist ein Anwendungsprojekt in der Regel ausreichend. Das Anwendungsprojekt kann ein Eclipse-Projekt der entsprechenden Zielplattform sein: ein Java-Projekt, ein PHP-Projekt oder ein Web-Projekt (je nachdem, welche Eclipse-Nature am besten geeignet ist). Es kann sich aber genauso gut um ein Projekt einer anderen Entwicklungsumgebung handeln (z.B. ein Visual Studio-Projekt für die C#-Entwicklung). Für den modellgetriebenen Entwicklungsprozess an sich ist lediglich ein Verzeichnis im Dateisystem notwendig (siehe unten), jedoch sollte dies sinnvoll in einer Projektstruktur eingegliedert sein.
Die Verzeichnisstruktur ist sehr vom verwendeten Projekt abhängig. Deshalb werden hier nur die wichtigsten Verzeichnisse kurz vorgestellt. Im Falle des Beispielprojektes handelt es sich um ein Java-Projekt, das die folgenden Verzeichnisse enthält:
* src
* src-gen
* lib
* model
Die Verzeichnisse src und src-gen enhalten den Quellcode des Projektes. Der generierte Quellcode befindet sich dabei im Verzeichnis src-gen und der manuell erstellte in src.
Im lib-Verzeichnis sind die Bibliotheken für das Projekt enthalten. Im Beispielprojekt ist hier die Bibliothek zum Assoziations-Handling enthalten.
Der model-Ordner enthält das Modell, welches mit der eingesetzten Modelliersoftware erstellt wurde. Dieses Modell ist dem Anwendungsprojekt zugeordnet, da aus diesem Modell Teile des Quellcodes automatisch erzeugt werden, wodurch das Modell selbst zum Quellcode wird.