http://www.tu-ilmenau.de

Logo TU Ilmenau


INHALTE

Model Driven Engineering for C++

Motivation

Das Model-Driven Engineering (MDE) ist ein allgemeiner Technischer-Ansatz der Modelle als wesentliche Grundlage zur Darstellung bzw. Analyse eines Sachverhalts sowie zur Lösung eines bestimmten Problems verwendet. Die Modelle werden dabei im kompletten Produkt- bzw. Projektzyklus verwendet und bilden die Grundlage zur generativen Erzeugung verschiedener benötigter Artefakte. Das Model-Driven (Software) Development (MDD) bildet einen Schwerpunkt der MDE zur modellgetriebenen und generativen Soft- und Hardwareentwicklung. Die Model-Driven Architecture (MDA) ist der MDD Ansatz der Object Management Group (OMG), der das Ziel verfolgt, die Lücke zwischen Modell und Quelltext zu schließen und den Automatisierungsgrad der Entwicklung zu erhöhen. Dies erfolgt durch eine automatische Generierung von Quellcode aus Domänenspezifischen Modellen, die auf definierten Domänenspezifischen Sprachen (DSL) beruhen. Im Ergebnis sollen die Fehlerquellen während der Entwicklung reduziert werden und die Software schneller, effizienter, kostengünstiger und qualitativ hochwertiger erstellt werden.

Dieser weit verbreitete und erfolgreiche Ansatz wird in verschiedenen Projekten und bei der Entwicklung verschiedener Produkten verwendet. Vorreiter dieser Entwicklung sind Java-basierte Tools und Toolchains wie das Eclipse Modeling Project (EMP). Für andere Sprachen stehen jedoch nur wenige, proprietäre oder rudimentäre Lösungen zur Verfügung. Ein Hauptgrund hierfür liegt darin, dass die benötigten Grundlagen, ein kompilierbare (Meta-) Metamodell, inclusive der notwendigen Reflection für andere Sprachen fehlt.

Das Ziel dieses Projektes ist es die Grundlage für das MDE für die Programmiersprache C++ zu legen.

Übersicht

Die folgende Abbildung verdeutlicht die verschiedenen Bestandteile des MDE4CPP Projektes, welches in die 4 Teilprojekte ecore4CPP , UML4CPP,fUML4CPP und Anwendungsbeispiele unterteilt ist.

Übersicht MDE4CPP - Projekt

Modell

Model2Text Generator

Code

Binary

M3

Meta-
Metamodel

 

 

 

 

M2

Metamodell

 

M1

Modell
 

M0

Anwendung

Aktuelle Version

Die Quellen des MDE4CPP Projekt liegen derzeit in der aktuellen Version 1.0 vom 12.14.18 vor. Änderungen und neue Features werden hier beschrieben.

Installation

Eine ausführliche Installationsanweisung finden Sie sowohl hier als auch auf github

Beispiele und Tutorials

Zur Einführung in das MDE4CPP-Projekt finden Sie hier Tutorials und Beispiele.

ecore4CPP Tutorial

Hier finden Sie ein Tutorial das wesentliche Schritte die zur Einarbeitung in das ecore4CPP Projekt dienen:

  • Erstellen eines Ecore-Modells zur Laufzeit durch ein C++-Programm
  • Erstellen eines Ecore-Modells mit Hilfe des Eclipse Modelling Framework (EMF) und Generierung von Modellcode aus diesem
  • Implementieren benutzerdefinierter Methoden in ein Ecore-Modell mit Hilfe des EMF
  • Einführung in das MDE4CPP-Plugin-Framework für ein Plugin eines Ecore-Modells.

 

Weitere Beispiele

Darüber hinaus werden einige Beispiele und technische Aspekte der Realisierung des MDE4CPP Projektes hier vorgestellt

Sven Jäger, Ralph Maschotta, Tino Jungebloud, Alexander Wichmann, and Armin Zimmermann:
An EMF-like UML Generator for C++.
4th Int. Conf. on Model-Driven Engineering and Software Development (MODELSWARD 2016), Rome, February 2016.
[ pdf ]

Francesco Bedini, Ralph Maschotta, Alexander Wichmann, Sven Jäger, and Armin Zimmermann:
A Model-Driven fUML Execution Engine for C++.
Proc. 5th Int. Conf on Model-Driven Engineering and Software Development (MODELSWARD 2017), Porto, Portugal, February 2017, ISBN 978-989-758-210-3, pages 443-450, DOI 10.5220/0006206904430450.
[ DOI, pdf ]

Sven Jäger, Ralph Maschotta, Tino Jungebloud, Alexander Wichmann, and Armin Zimmermann:
Creation of Domain-Specific Languages for Executable System Models with the Eclipse Modeling Project.
10th IEEE Int. Systems Conference (SysCon 2016), Orlando, USA, April 2016. pp. 303-310.
[ DOI, pdf ]

F. Bedini, R. Maschotta, A. Wichmann, and A. Zimmermann:
An fUML Extension Simplifying Executable UML Models Implemented for a C++ Execution Engine.
International Symposium on Model-driven Approaches for Simulation Engineering (Mod4Sim 2017), part of SpringSim 2017, Virginia Beach, VA (USA), April 23-26, 2017, pages 719-729.
[ DOI, pdf ]

Alexander Wichmann, Ralph Maschotta, Francesco Bedini, Sven Jäger, and Armin Zimmermann:
A UML Profile for the Specification of System Architecture Variants Supporting Design Space Exploration and Optimization.
Proc. 5th Int. Conf on Model-Driven Engineering and Software Development (MODELSWARD 2017), Porto, Portugal, February 2017, pages 418-426.
[ DOI, pdf ]

A. Wichmann, Francesco Bedini, Ralph Maschotta, and A. Zimmermann:
Deriving Architecture Design Variants for System Optimization from Design Space Descriptions Expressed Using a UML Profile.
International Symposium on Model-driven Approaches for Simulation Engineering (Mod4Sim 2017), part of SpringSim 2017, Virginia Beach, VA (USA), April 23-26, 2017, pages 707-718.
[ DOI, pdf ]

Ilmenau University of Technology is provided with the use of VP-UML, SDE-EC, SDE-NB, SDE-IJ, SDE-VS, BPVA, AG, DBVA for educational purpose by the Academic Partner Program from Visual Paradigm.