(NoMagic, 2019b). Instance tables are also used by
another Papyrus extension, the MOKA (CEA, 2019)
tool that enables the direct execution of (fUML) mod-
els. The documentation for Rhapsody contains in-
formation about instance modeling (IBM, 2019), but
does not give any hints on how to use these systemat-
ically. Rhapsody simplifies the assignment of values
via popup dialogs in which values could be entered
directly instead of explicitly having to chose the re-
spective UML element (such as LiteralString or Lit-
eralInteger).
The work done in (Agarwal et al., 2000) states
that traditional class-based models are not sufficient
in case of enterprise models, but need to be accompa-
nied by instance models. The management of these
instance models needs to be facilitates by tools. How-
ever, the work is not specific for UML models and
does not cover the possibilities of UML instance spec-
ifications. Whole-part relationships have been ex-
amined by (Guizzardi et al., 2002), the paper deals
with the aggregation vs. composition aspects between
classes and instances. While the paper is specific for
UML (the relatively old version 1.4), it does not par-
ticularly deal with instances. Sharing of instances is
an important concept in the FRACTAL component
model (Bruneton et al., 2006).
Many tools generate code from UML models, but
most do not mention specific support for generating
code from instance models. In case of Rhapsody, de-
fault values are either initialized via assignment or in
the constructor.
(Ciccozzi et al., 2012) presented a mechanism to
support full code generation from UML models. The
approach that has been used in the European project
CHESS, contains a dedicated model of component
and port instances, taking multiplicity information
into account. The latter assures that a port of a compo-
nent instance interacting with others has the matching
multiplicity (e.g. two, if the component instance inter-
acts with two others) and to generate the appropriate
code. Assuring that multiplicity information matches
is the subject of (Mammar and Laleau, 2014) which
attacks this issue in a more formal way using the B
language.
In case of Papyrus SW designer already men-
tioned in section ref sec:tooling, the support is
twofold: it supports the initialization of default val-
ues as well as an initialization via boot-strap code that
might override the default values. The tool also takes
multiplicity information into account and has a val-
idation rules that check whether these are matching.
An extension of this tool supporting the (re-) config-
uration of instances at run-time is presented in (Hus-
sein et al., 2017). A UML state-machines captures
the different application states along with transitions
that are triggered by adaptation events. Each state is
coupled with a deployment plan, i.e. a set of instance
specification that correspond to this state.
6 CONCLUSION
In this paper, we have shown how to use UML in-
stance specifications to configure a system. While
UML instance specifications are quite powerful, their
usage needs additional tool support to improve usabil-
ity. Tables are a suitable and saleable way to configure
instances – and ease the transition for developers that
are use to configuration via Excel tables. While not
being new, there is surprisingly little work that list
different ways to organize these instances, e.g. the
use of default values, the possibility override these or
the sharing of instance specifications. Putting the ap-
plication configuration into the model enables a first
validation on the model level.
We have also shown that UML lacks the possi-
bility of nesting of instance specification. While in-
stances values can point to other instance specifica-
tions, the instance specifications can now own other
instance specifications.
Code generation support is required, if the gener-
ated code should actually take the configuration val-
ues into account. This becomes more interesting, if
we take re-configurable applications into account that
are able to change between different configurations.
The work underlying this paper has been partially
funded by the RobMoSys project from the European
Union’s Horizon 2020 research and innovation pro-
gramme under grant agreement No 732410.
REFERENCES
Agarwal, R., Bruno, G., and Torchiano, M. (2000). Instance
modeling – beyond object-oriented modeling. In Pro-
ceedings of the 3rd International Conference on Infor-
mation Technology (CIT 2000).
Bruneton, E., Coupaye, T., Leclercq, M., Qu
´
ema, V., and
Stefani, J.-B. (2006). The FRACTAL component
model and its support in Java. Software-practice and
Experience, 36:1257–1284.
CEA (last visited 2019). Papyrus MOKA User Guide.
https://wiki.eclipse.org/Papyrus/UserGuide/ModelEx
ecution.
Ciccozzi, F., Cicchetti, A., and Sj
¨
odin, M. (2012). Full Code
Generation from UML Models for Complex Embed-
ded Systems. In Second International Software Tech-
nology Exchange Workshop (STEW) 2012.
Application Configuration via UML Instance Specifications
501