employs additional keywords (invariant and derivation
instead of inv and dev). In contrast to SOIL, no ad-
ditional statements may be used which prevents side
effects. Furthermore, the textual editor is not projec-
tional but parser-based and directly refers to the Ecore
model; as a result, references are used instead of asso-
ciations (that are familiar for modelers used to UML),
for instance. Eventually, the OCL implementations
do not affect the generated Java source code; rather,
mechanisms are used to delegate the invocations of
operations to the expressions written in OCL syntax.
Besides SOIL, the modeling language ALF
(OMG, 2017) recently gained more and more atten-
tion. It provides a textual concrete syntax for fUML
(OMG, 2021) that refers to a subset of UML and
adds proper execution semantics. In contrast to SOIL,
the language ALF does not reuse an expression lan-
guage. Furthermore, ALF completely misses the con-
cept of derived structural features. Invariants as con-
straints between model elements cannot be modeled,
as well. An extension of the tool Valkyrie (Schr
¨
opfer
and Buchmann, 2019) supports creating models in-
cluding structural elements and behavior and gener-
ating Java source code from them. Within an inte-
grated user interface, the structural elements are spec-
ified by diagrams in a graphical editor. For operations
and derived structural features, the behavior may be
specified by using ALF in a textual parser-based ed-
itor that is visible together with the diagram editor.
In the background, a bidirectional transformation be-
tween UML and ALF is performed.
The tool Papyrus (Guermazi et al., 2015) poses
another application that refers to ALF. Papyrus allows
for creating UML, SysML, and MARTE models using
various diagram editors. Papyrus comes along with
a code generation engine that facilitates generating
source code from class models; besides Java source
code, also C++ is supported. Using a textual parser-
based ALF editor, UML model elements may be de-
scribed by ALF notation. In addition, the behavior of
activities can be specified in the ALF editor. The pri-
mary goal of the Papyrus ALF integration is provid-
ing alternative representations – graphical and textual
syntax – of the same UML model and not generating
source code to execute the behavioral specifications.
As a commercial tool, MagicDraw UML (Seide-
witz, 2017) also provides behavioral modeling with
ALF which integrates the ALF Reference Implemen-
tation
9
. Using ALF syntax, bodies of activities may
be modeled. The Cameo Simulation Toolkit
10
is re-
quired to execute UML activity, state machine, and
9
http://alf.modeldriven.org
10
https://docs.nomagic.com/display/CST190/Cameo+Si
mulation+Toolkit+Documentation
interaction models in MagicDraw. Similar to Papyrus,
the ALF fragments are compiled to activity models
that are integrated within the wider UML modeling
context.
The language QVTo (Operational QVT) as a part
of the QVT (Query/View/Transformation) standard
(OMG, 2016) allows for specifying unidirectional
model transformations in an imperative way. To this
end, mappings between model elements can be spec-
ified by using an imperative language based on OCL
called Imperative OCL. In contrast to SOIL, Imper-
ative OCL uses imperative expressions as a subtype
of OCL expressions. This circumstance comes along
with problems which are discussed in (B
¨
uttner and
Kuhlmann, 2008). While SOIL and ALF aim at an in-
tegration of the imperative elements into the model to
decribe its behavior, QVTo employs imperative con-
structs to define the transformation between models.
In the context of Ecore models, Xcore
11
provides
a textual concrete syntax that captures both structure
and behavior. The textual syntax of Xcore does not
base upon an official standard. From Xcore models,
executable Java source code is generated. The behav-
ioral model elements are described in a strongly pro-
cedural way. As a consequence, an object-oriented
way of modeling – as known from OCL or ALF –
is only possible to a limited extent. For instance, no
concept of object creation by means of constructors is
supported by Xcore.
As a graphical modeling language, Fujaba (The
Fujaba Developer Teams from Paderborn, Kassel,
Darmstadt, Siegen and Bayreuth, 2005) bases upon
graph transformations that allows for expressing both
the structural and the behavioral part of a software
system on the modeling level. A code generation en-
gine facilitates the transformation of Fujaba specifi-
cations into executable Java source code. Fujaba em-
ploys story diagrams to specify the behavior of a soft-
ware system. Similar to UML, story diagrams con-
tain activities for which story patterns are used. A
story pattern constitutes a graph transformation rule
where a single graphical notation comprises both the
left-hand as well as the right-hand side of the transfor-
mation rule. Therefore, manipulations of the runtime
object graph may be described by story patterns in a
declarative way on a high level of abstraction. Never-
theless, the control flow in activity diagrams in on the
same level as in control flow diagrams which leads
to a rather basic level of abstraction in respect to the
control flow of methods. As a case study (Buchmann
et al., 2011) revealed, software systems only contain a
low number of problems which require complex story
patterns. The resulting story diagrams nevertheless
11
https://wiki.eclipse.org/Xcore
MODELSWARD 2023 - 11th International Conference on Model-Based Software and Systems Engineering
82