A C++ Implementation of UML Subsets and Unions for MDE
Francesco Bedini, Ralph Maschotta, Alexander Wichmann, Armin Zimmermann
2018
Abstract
This paper shows and discusses the realization of advanced data structures used in the UML specification (namely subsets, unions, and subset-unions) for a C++ execution engine. Those data structures have been realized thanks to the use of variadic templates, which were first introduced in C++11. Thanks to those templates which allow to take as parameters a non-fixed number of elements in an elegant manner, it has been possible to automatically generate from the Ecore and UML ecore models type-safe data structures which avoid elements being duplicated or the generation of additional lists during run-time. A performance analysis is presented to show how our implementation behaves compared to the other possible approaches.
DownloadPaper Citation
in Harvard Style
Bedini F., Maschotta R., Wichmann A. and Zimmermann A. (2018). A C++ Implementation of UML Subsets and Unions for MDE.In Proceedings of the 6th International Conference on Model-Driven Engineering and Software Development - Volume 1: MODELSWARD, ISBN 978-989-758-283-7, pages 464-471. DOI: 10.5220/0006606404640471
in Bibtex Style
@conference{modelsward18,
author={Francesco Bedini and Ralph Maschotta and Alexander Wichmann and Armin Zimmermann},
title={A C++ Implementation of UML Subsets and Unions for MDE},
booktitle={Proceedings of the 6th International Conference on Model-Driven Engineering and Software Development - Volume 1: MODELSWARD,},
year={2018},
pages={464-471},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0006606404640471},
isbn={978-989-758-283-7},
}
in EndNote Style
TY - CONF
JO - Proceedings of the 6th International Conference on Model-Driven Engineering and Software Development - Volume 1: MODELSWARD,
TI - A C++ Implementation of UML Subsets and Unions for MDE
SN - 978-989-758-283-7
AU - Bedini F.
AU - Maschotta R.
AU - Wichmann A.
AU - Zimmermann A.
PY - 2018
SP - 464
EP - 471
DO - 10.5220/0006606404640471