MOF Meta-Model, oAW, MDSD und iUPB
Was sich hinter diesen Buzz-Words verbirgt, wusste ich bis vor einem Semester auch nicht. Dieses Semester habe ich die Veranstaltung "Model-Driven Software Development" bei Steffen Becker gehört. Leider haben mich die anderen Kurse zu stark zeitlich eingeschränkt, so dass ich mich erst jetzt richtig mit den Themen dieser Vorlesung auseinander setzen kann. Am Freitag habe ich also wieder eine mündliche Prüfung in eben dieser besagten Veranstaltung und das Thema hat mich so fasziniert, dass ich zur Zeit meinen Entwicklungsprozess für iUPB auf einen modellbasierten Ansatz umstelle.
Als Grundstock habe ich den Architecture-Centric MDSD Prozess von Völter und Stahl gewählt. Allerdings habe ich auf UML-Profiles als Meta-Modell verzichtet und ein eigenes ECORE (EMOF) Meta-Modell entwickelt. Das Meta-Modell ist noch lange nicht komplett, aber ich bin mittlerweile soweit, dass ich damit fast meine komplette App beschreiben und eben auch automatisiert Code dafür generieren lassen kann. Unten sieht man ein Bild als Ecore-Diagram.

MOF-Meta Modell zur Beschreibung meiner App
Der Ablauf funktioniert so: Eine konkrete Modell-Instanz des Meta-Modells beschreibt die Struktur meiner App. Mittels openArchitectureWare-XPand habe ich eine Model-2-Text Transformation geschrieben, die mir meine komplette Platform (App Code) generiert. Möchte ich z.B. einen Table-View erstellen, der aus einem RSS-Feed Daten darstellt, so kann ich nun einfach in meinem Modell einen neuen Table-View hinzufügen; diesem einen Namen geben, ein Icon und einen RssDataProvider. Auf "Generate" geklickt und schon habe ich ca. 98% der Entwicklungsarbeit fertig gestellt.
Wenn dieses Meta-Modell soweit ausgereift ist, dass man es wirklich vernünftig auch anderen Personen an die Hand geben kann, dann werde ich es als OpenSource veröffentlichen. Bis dahin sollte ich aber erst einmal weiter für die Prüfung lernen und danach wieder für eine Prüfung lernen und dann, dann werde ich eine neue iUPB Version veröffentlichen - wenn meine Masterarbeit dann nicht dazwischen kommt.