Compiler-Like Code Generation for fUML: Reducing Overhead in Executable UML

fUML is a specification developed by the <italic xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">Object Management Group</i> (OMG) that defines precise execution semantics as well as a respective execution environment for a subset of the <italic xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">Unified Modeling Language</i> (UML). As such, fUML lays the foundation for standardized realizations of <italic xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">executable UML</i> (xUML), which itself has been a major objective within the domain of model-driven software development since the early 2000s and a foundation for OMG’s model-driven architecture. Due to the properties of fUML’s execution semantics — the platform-independent design of its metamodel on the one hand and the interpretative characteristics of its behavior on the other hand—much computational overhead is required at runtime when executing a model. By preprocessing the models to be executed and utilizing features inherent to a specific implementation platform, such computational overhead at runtime can be substantially reduced. This can result in much faster, memory-saving, and more efficient model executions. This paper offers a model-driven realization approach to the fUML specification based on automated source code generation aimed at optimizing the runtime performance of executable UML models. This paper covers techniques for substituting generic, model-independent aspects of fUML with automatically generated, model-specific plug-in components, as well as an approach to transform the inherently platform-independent fUML metamodel into a platform-specific implementation using the example of object-oriented programming languages. Furthermore, this paper presents an exemplary generation-based fUML implementation in C++.

Authors

Institutions

Publication Details

Journal
IEEE Access
Published
2025-01-01
DOI
https://doi.org/10.1109/access.2025.3615249
Primary Topic
Model-Driven Software Engineering Techniques
Type
article
Field-Weighted Citation Impact
0.00
Controls
|||
ALL TIME
JAN
FEB
MAR
APR
MAY
JUN
JUL
AUG
SEP
OCT
article

Compiler-Like Code Generation for fUML: Reducing Overhead in Executable UML

Ralph Maschotta, Armin Zimmermann, Maximilian Hammer
IEEE Access
Model-Driven Software Engineering Techniques
article

Compiler-Like Code Generation for fUML: Reducing Overhead in Executable UML

Ralph Maschotta, Armin Zimmermann, Maximilian Hammer
article en

Abstract

fUML is a specification developed by the <italic xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">Object Management Group</i> (OMG) that defines precise execution semantics as well as a respective execution environment for a subset of the <italic xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">Unified Modeling Language</i> (UML). As such, fUML lays the foundation for standardized realizations of <italic xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">executable UML</i> (xUML), which itself has been a major objective within the domain of model-driven software development since the early 2000s and a foundation for OMG’s model-driven architecture. Due to the properties of fUML’s execution semantics — the platform-independent design of its metamodel on the one hand and the interpretative characteristics of its behavior on the other hand—much computational overhead is required at runtime when executing a model. By preprocessing the models to be executed and utilizing features inherent to a specific implementation platform, such computational overhead at runtime can be substantially reduced. This can result in much faster, memory-saving, and more efficient model executions. This paper offers a model-driven realization approach to the fUML specification based on automated source code generation aimed at optimizing the runtime performance of executable UML models. This paper covers techniques for substituting generic, model-independent aspects of fUML with automatically generated, model-specific plug-in components, as well as an approach to transform the inherently platform-independent fUML metamodel into a platform-specific implementation using the example of object-oriented programming languages. Furthermore, this paper presents an exemplary generation-based fUML implementation in C++.

IEEE AccessVol. 13
Technische Universität Ilmenau (DE)
Openalex Percentile: Top 73%
Model-Driven Software Engineering Techniques
AI Navigator

Ask Laika to Summarize, Analyze, and Connect papers live on the map.

Summarize Papers & Methodologies

Extract key findings, datasets, and comparative methods across publications.

Benchmark Rankings & Visual Analytics

Rank top research institutions, authors, funders, topics, and journals by Field-Weighted Citation Impact (FWCI) and paper volume with instant charts.

Connect Distant Disciplines

Bridge topological clusters on the map to find hidden collaborative intersections.