Auf dieser Stufe ist die MDA angesiedelt. Die MDA setzt den Ansatz der generativen Softwareentwicklung unter Verwendung der UML um, d. h. die Funktionalität der Anwendung wird mit Hilfe von UML und UML-Profilen in Form von Modellen spezifiziert und der eigentliche Programmcode wird auf Basis dieser Modelle generiert. Dabei wird insbesondere auch die Generierung von Programmcodes für unterschiedliche Ziel-
plattformen berücksichtigt. Auf diese Art und Weise wird der in die Modellierung des Systems investierte Aufwand direkt für die eigentliche Implementierung genutzt und es wird verhindert, dass Modell und Programmcode auseinander laufen.
Die Generierung wird durch Generatoren durchgeführt, die das abstrakte Modell (evtl. in mehreren Schritten) in den Programmcode umsetzen. Das Modell muss dazu in einer maschinell verarbeitbaren Form vorliegen, d. h. graphische Darstellungen sind nur bedingt geeignet und müssen vorher in eine strukturierte Repräsentation umgewandelt werden. Beides ist jedoch in der in MDA verwendeten UML gegeben.
An dieser Stelle stellt sich die Frage: Was ist der bahnbrechende Unterschied zu den bisherigen Ansätzen der Code-Generierung?
Zur Beantwortung dieser Frage wird im Folgenden eine kurze Abgrenzung der MDA vorgenommen.
MDA ist kein CASE-Ansatz. Klassische CASE-Tools zeichnen sich dadurch aus, dass häufig sowohl Metamodell wie auch Transformation fix sind. Darüber hinaus besitzen sie in der Regel proprietäre Modellierungssprachen. Damit fehlt die angestrebte Interoperabilität und insbesondere lassen sich Modellierungssprache und der generierte Anteil nicht auf projektspezifische Bedürfnisse anpassen.
MDA ist keine 4GL. Ähnlich wie bei den CASE-Tools sind bei den 4GL-Tools häufig Transformation und Metamodell fest. Zusätzlich beruhen sie auf festen Laufzeitsystemen, die durch den Entwickler nicht modifiziert werden können. MDA macht hier dem gegenüber keine Einschränkungen.
MDA ist auch kein Code-Wizard oder Pattern-Expander. MDA geht über die bloße Generierung von Code hinaus. Der Fokus von MDA liegt auf: