Modellgetriebene Entwicklung mittels UML für C++ (UML4CPP)

Grundlage dieses Teilprojektes ist es lauffähige Applikationen auf Grundlage von UML-Modellen zu erstellen. Grundlage des Metamodel ist das UML-Metamodell der OMG. Diese ist als uml.ecore-Datei in Eclipse verfügbar. Mit Hilfe des ecore4CPP generators und einem C++Compiler wird aus dem uml.ecore Modell eine UML Bibliothek (binary und C++ Headerfiles). Das UML-Metamodell dient ensprechend des Reflection-Pattern als Meta-Ebene für alle weiteren Anwendungen von UML-Modellen. Da das UML-Metamodell selbst auf ecore beruht, wird die UML entsprechend des Reflection-Pattern mithilfe des ecore-Metamodell zur Laufzeit beschrieben.

Desweiteren kann man das UML4CPP-Projekte folgendermaßen anwenden:

  • UML-basierte Applikationen erstellen (mittels C++ Programm alle Modellelemente der UML anlegen. z.B.: Package, Class, Attribut, Action, Activity, State, Interaction, Use-Case, usw. zur Laufzeit anlegen).
  • Die zur Laufzeit erstellten UML Modelle speichern und laden (XMI-konform als .uml-Modelle).
  • Die gespeicherten Modelle mit anderen UML-Tools (z.B.: UML-Designer oder Papurus) öffnen und bearbeiten.
  • Auf Grundlage eines erstellten UML-Modells eine Modell-Bibliothek (Binary+Header) erstellen. Zum Beispiel: erstellen eines Familien-UML-Metamodells; Generierung einer Familien-Bibliothek.
  • Durch Anreicherung von Operationen eines UML-Modells mit C++ Quellcode und Definition einer Main-Operation (incl. Quellcode), Generierung einer lauffähigen Applikation. Zum Beispiel: Programm zur Familienverwaltung.
  • Erstellung von Modellen auf Grundlage des generierten UML-Modells zur Laufzeit (z.B.: eine Familiendatenbank).
  • Speichern und laden von UML-Modellen in Eclipse-EMF kompatiblen XMI-Dateien (z.B.: speichern der Familiendatenbank als .xmi).
  • Laden und Editieren der gespeicherten Modell-Dateien mittels Eclipse-EMF generierten DSL-Editoren
  • Erstellung von Aktivitätsdiagramm, die mit der fUML-ausgeführt werden kann.
  • Erstellung von Kompositionsstrukturen, die zur Laufzeit entsprechend der Semantik der PSCS erstellt werden.
  • Grundlage zur Definition von OCL-Ausdrücken, die zur Laufzeit validiert werden können.
  • Erstellung von Zustandsdiagrammen, die zukünftig mit der PSSM-ausgeführt werden kann.

Weitere Informationen, eine Installationsanleitung, Beispiele und Tutorials finden Sie hier.