infinite loop between two states, which hints to the
same (potential undesired) condition in the original
diagram. Moreover, as some transitions are never fir-
ing in the reachability graph, some parts of the model
containing the missing transitions are unreachable
from the initial marking (Think2Start and Eat2Start
in the example).
The shown steps demonstrate that difficulties in
transforming an activity diagram into a Petri net arise
from the incomplete specification of such diagrams,
but that execution-specific issues can be detected with
a correctly extended Petri net that incorporates the se-
quential fUML execution.
5 CONCLUSION
In this paper, we have developed the foundation for
a lint-like fUML activity diagram verification, which
can be used to detect and warn modelers about er-
rors or potentially dangerous anomalies in their di-
agrams describing concurrent programs. This ap-
proach is based on two types of M2M transformations
to Petri nets: 1) an intuitive one similar to the exist-
ing literature to tackle conceptual problems, and 2) an
fUML-conform one introduced here to find problems
caused by the sequential execution semantics speci-
fied by the fUML. In particular, our method with its
different transformations, aims to detect synchroniza-
tion problems that would occur when the diagrams are
executed both concurrently and sequentially.
The sequential transformation of fork nodes al-
lowed us to verify not only models that were ob-
viously wrong (for example with disconnected ele-
ments), but also models without such problems that
in reality lead to a peculiar execution which is hard
to predict without expert knowledge of the execution
engine implementation.
As a side effect, the paper points out current limi-
tations and potentially dangerous situations of the cur-
rent fUML specification, that would only become evi-
dent when the execution happens concurrently or with
a different static execution order.
5.1 Future Work
The next steps consist of finding a suitable algorithm
for correctly transforming all possible constellations
of fork node flows; i.e., finding or deciding the ab-
sence of the end of each flow. Once a reliable method
is defined, it will be possible to implement the sequen-
tial transformation of fork node flows.
Further work will include parallelization of the
fUML C++ execution engine developed in our group
(MDE4CPP, (Bedini et al., 2017)), automation of the
M2M transformation, and the execution of the analy-
sis techniques which are relevant to the input model.
The transformation implementation is available
online
1
and distributed under the MIT license.
REFERENCES
Agarwal, B. (2013). Transformation of UML Activity Dia-
grams into Petri Nets for Verification Purposes. Inter-
national Journal Of Engineering And Computer Sci-
ence, 2(3):798–805.
Andrade, E., Maciel, P., Callou, G., and Nogueira, B.
(2009). A methodology for mapping sysml activity
diagram to time petri net for requirement validation of
embedded real-time systems with energy constraints.
In 2009 Third International Conference on Digital So-
ciety (ICDS), pages 266–271.
Andrews, G. R. (1991). Concurrent programming: prin-
ciples and practice. Benjamin/Cummings Publishing
Company San Francisco.
Arlow, J. and Neustadt, I. (2002). UML 2 and the Unified
Process: Practical Object-Oriented Analysis and De-
sign. Pearson Education, Inc., 2 edition.
Badouel, E., Bernardinello, L., and Darondeau, P. (2015).
Petri net synthesis. Springer.
Bedini, F., Maschotta, R., Wichmann, A., Jäger, S., and
Zimmermann, A. (2017). A model-driven fuml exe-
cution engine for C++. In Proceedings of the 5th In-
ternational Conference on Model-Driven Engineering
and Software Development, MODELSWARD 2017,
Porto, Portugal, February 19-21, 2017., pages 443–
450. SciTePress.
Distefano, S., Scarpa, M., and Puliafito, A. (2011). From
UML to Petri Nets: The PCM-Based Methodol-
ogy. IEEE Transactions on Software Engineering,
37(1):65–79.
Eshuis, R. and Wieringa, R. (2004). Tool support for ver-
ifying uml activity diagrams. IEEE Transactions on
Software Engineering, 30(7):437–447.
Girault, C. and Valk, R. (2003). Petri Nets for System Engi-
neering. Springer.
Laurent, Y., Bendraou, R., Baarir, S., and Gervais, M.-P.
(2014). Formalization of fuml: An application to pro-
cess verification. In International Conference on Ad-
vanced Information Systems Engineering, pages 347–
363. Springer.
López-Grao, J. P., Merseguer, J., and Campos, J. (2004).
From UML Activity Diagrams to Stochastic Petri
nets: application to software performance engineer-
ing. ACM SIGSOFT Software Engineering Notes,
29(1):25–36.
Murata, T. (1989). Petri nets: Properties, analysis and ap-
plications. Proceedings of the IEEE, 77(4):541–580.
OMG (2017a). fUML 1.3 Specifications.
https://www.omg.org/spec/FUML/1.3/PDF. on-
line.
1
https://github.com/MDE4CPP/AD2PN
Towards Automated fUML Model Verification with Petri Nets
305