Definition von Randbedingungen für Modelle in C++ (OCL4CPP)

Dieses Teilprojekt reichert alle anderen Projekte mit der Fähigkeit an, Modellabfragen mittels OCL zu spezifizieren und diese zur Laufzeit validieren zu können. Die Grundlage ist die Object Constraint Language (OCL) der OMG.  Die definierte Grammatik der OCL wird mittels ANTLR in C++ realisiert. Ausgehend von der MOF-Spezifikation der OCL wurde in eine ocl.ecore-Datei mit den notwendigen Typen und operationen zur Verarbeitung von OCL Ausdrücken realisiert. Mit Hilfe des ecore4CPP generators und einem C++Compiler und aus der erstellten Grammatik wird eine OCL Bibliothek (binary und C++ Headerfiles) zur Valisierung von OCL-Ausdrücken erstellt. Dies kann verwendet werden um:

  • OCL-Ausdrücke in C++ zu definieren und zur Laufzeit überprüfen zu lassen.
  • Modellabfragen in OCL als Stringeingaben zur Laufzeit ausführen zu können.
  •  Modellabfragen in Modelle integrieren zu können, die zur Laufzeit entsprechend validiert werden. Hierzu gehören:
    • ecore Modellabfragen
    • UML-Constraints in Klassen- und Aktivitätsdiagrammen

Auch zu diesem Projekt ist eine umfangreiche Tests und Beispiele verfügbar. Weitere Informationen, Beispiele und Tutorials finden Sie hier