http://www.tu-ilmenau.de

Logo TU Ilmenau


INHALTE

Model Driven Engineering for C++

Motivation

The Model-Driven Engineering (MDE) is a general technical approach of the models as an essential basis for the representation or analysis of a system as well as for the solution of certain problems. The models are used in the complete product or project cycle and form the basis for the generative creation of required artifacts. The Model-Driven (Software) Development (MDD) is a focus of the MDE for model-driven and generative software and hardware development. The Model-Driven Architecture (MDA) is the MDD approach of the Object Management Group (OMG), which aims at closing the gap between model and source code and increasing the degree of automation of the development. This is done by automatically generating source code from domain-specific models based on defined domain-specific languages ​​(DSL). As a result, the causes of errors during the development process are reduced, and the software can be obtained faster, more efficiently, more cost-effectively, and with higher quality.

This widespread and successful approach is used in various projects and for the development of various products. Pioneers of this development are Java-based tools and toolchains such as the Eclipse Modeling Project (EMP). For other languages, however, only a few proprietary or rudimentary solutions are available. One of the main reasons for this is that the necessary foundations, a compilable (meta) metamodel, including the necessary reflection for other languages, are missing.

The goal of this project is to lay the foundation for MDE for the programming language C ++.

Overview

The different parts of the MDE4CPP project are illustrated in the following picture. 

Overview of MDE4CPP - Project

Modell

Model2Text Generator

Code

Binary

M3

Meta-
Metamodel

 

 

 

 

M2

Metamodell

 

M1

Modell
 

M0

Anwendung

Current Version

The current version of MDE4CPP project is 1.0 from 04/12/18. Changes and new features are described here.

Installation

The installation details can be found here or on github.

Examples

Some examples and description of technical aspacts can be find here.

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 ]

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 ]

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 ]