Abstract
One of the promising techniques to address the dependability of a system is to apply, at early design stages, domain-specific languages (DSLs) with execution semantics. Indeed, an executable DSL would not only represent the expected system’s structure, but it is intended to itself behave as the system should run. In order to make executable DSLs a powerful asset in the development of safety-critical systems, not only a rigorous development process is required but the domain expert should also have confidence in the execution semantics provided by the DSL developer. To this aim, we recently developed the Meeduse tool and showed how to bridge the gap between MDE and a proof-based formal approach. In this work, we apply our approach to the Petri-net DSL and we present MeeNET, a proved Petri-net designer and animator powered by Meeduse. MeeNET is built on top of PNML (Petri-Net Markup Language), the international standard ISO/IEC 15909 for Petri-nets, and provides underlying formal static and dynamic semantics that are verified by automated reasoning tools. This paper first presents simplified MDE implementations of Petri-nets applying Java, QVT, Kermeta and fUML that we experimented in order to debug a safety-critical system and summarises the lessons learned from this study. Then, it provides formal alternatives, based on the B method and process algebra, which are well-established techniques allowing interactive animation on the one hand and reasoning about the behaviour correctness, on the other hand.
Similar content being viewed by others
Notes
The corresponding ECore file can be found at [19].
A random algorithm is called probabilistic algorithm because its behaviour depends on an established number generation technique.
HashSet is an implementation of interface Set in Java.
Section 4.12.5, page 89.
CSP: Communicating Sequential Processes [17].
Demo videos can be found at: http://vasco.imag.fr/tools/meeduse/meenet/.
The benchmark can be found at: https://mcc.lip6.fr/models.php.
References
Bandener N, Soltenborn C and Engels G (2011) Extending DMM Behavior Specifications for Visual Execution and Debugging. Software Language Engineering, volume 6563 of LNCS, pages 357–376. Springer
Engels G, Hausmann JH, Heckel R and Sauer S (2000) Dynamic Meta Modeling: A Graphical Approach to the Operational Semantics of Behavioral Diagrams in UML. In Andy Evans, Stuart Kent, and Bran Selic, editors, UML 2000 — The Unified Modeling Language, volume 1939 of LNCS, pages 323–337. Springer
Tatibouet J, Cuccuru A, Gerard S, & Terrier F (2014) Formalizing execution semantics of uml profiles with fuml models. In Model-Driven Engineering Languages and Systems (Models), volume 8767 of LNCS, pages 133–148. Springer
Gemoc. Gemoc. http://gemoc.org/
Kosar T, Bohra S, Mernik M (2016) Domain-specific languages: a systematic mapping study. Inf Softw Technol 71:77–91
Lung A, Carbonell J, Marchezan L, Rodrigues E, Bernardino M, Basso FP, Medeiros B (2020) Systematic mapping study on domain-specific language development tools. Empir Softw Eng 25(5):4205–4249
Meeduse http://vasco.imag.fr/tools/meeduse/. Accessed: 15-12-2020
Idani A (2020) Meeduse: A tool to build and run proved dsls. In Brijesh, D. and Elena, T., editors, 16th International Conference on Integrated Formal Methods (IFM), volume 12546 of LNCS, pages 349–367. Springer
Idani A, Ledru Y, Vega G (2020) Alliance of model driven engineering with a proof-based formal approach. Int J Innov Syst Softw Eng (ISSE) 16(3):289–307
Abrial JR (1996) The B-book: Assigning Programs to Meanings. Cambridge University Press, New York, NY, USA
Leuschel M, Butler M (2008) Prob: an automated analysis toolset for the b method. Int J Softw Tools Technol Transf 10(2):185–203
Idani A (2020) Dependability of model-driven executable dsls - critical review and solutions. In: Henry M, Paris A, Barbora B, Javier C, Mauro C, Mirco F, Anne K, Patrizia S, Catia T, Danny W, and Uwe Z (Eds.) 3rd International Workshop on Modeling, Verification and Testing of Dependable Critical Systems (DETECT), volume 1269 of CCIS, pages 358–373. Springer
Deantoni J (2016) Modeling the behavioral semantics of heterogeneous languages and their coordination. In 2016 Architecture-Centric Virtual Integration (ACVI), pages 12–18
Bousse E, Leroy D, Combemale B, Wimmer M, Baudry B (2018) Omniscient debugging for executable dsls. J Syst Softw 137:261–288
Langer P, Mayerhofer T and Kappel G (2014) Semantic model differencing utilizing behavioral semantics specifications. In 17th International Conference Model-Driven Engineering Languages and Systems - MODELS, volume 8767 of LNCS, pages 116–132. Springer
Mayerhofer T, Langer P, Wimmer M, & Kappel G (2013) Towards xmof: Executable dsmls based on fuml. In International Conference on Software Language Engineering - SLE, volume 8225 of LNCS, pages 56–75. Springer
Hoare CAR (1985) Communicating Sequential Processes. Prentice-Hall Inc, Upper Saddle River, NJ, USA
Petri CA, Reisig W (2008) Petri net. Scholarpedia 3(4):6477
Petri net ecore file. https://github.com/gemoc/petrinet/blob/master/petrinetv1/fr.inria.diverse.sample.petrinetv1.model/model/petrinetv1.ecore. Accessed: 15-12-2020
Wachsmuth G (2008) Modelling the operational semantics of domain-specific modelling languages. In: Lämmel R, Visser J, Saraiva J (eds) Generative and Transformational Techniques in Software Engineering II (GTTSE). Springer, Berlin Heidelberg, pp 506–520
Hartmann T and Sadilek DA (2008) Undoing operational steps of domain-specific modeling languages. In Proceedings of the 8th OOPSLA Workshop on Domain-Specific Modeling (DSM’08) - University of Alabama at Birmingham
EProvide. http://eprovide.sourceforge.net. Accessed: 15-12-2020
Jezequel JM, Combemale B, Barais O, Monperrus M, Fouquet F (2013) Mashup of Meta-Languages and its Implementation in the Kermeta Language Workbench. Softw Syst Model 14(2):905–920
Object Management Group. Meta Object Facility (MOF) 2.5.1 Core Specification. https://www.omg.org/spec/MOF/2.5.1/, 2015
XTend example of Petri-nets. https://github.com/gemoc/petrinet/blob/master/petrinetv1/. Accessed: 15-12-2020
Object Management Group. Semantics of a Foundational Subset for Executable UML Models (fUML). https://www.omg.org/spec/FUML/, 2011
fUML source code. http://www.modelexecution.org/moliz/xmof/. Accessed: 15-12-2020
Thong WJ and Ameedeen MA (2015) A survey of petri net tools. In Advanced Computer and Communication Engineering Technology, pages 537–551, Cham. Springer
Lienhard A, Girba T, & Nierstrasz O (2008) Practical object-oriented back-in-time debugging. In Jan Vitek, editor, ECOOP 2008 – Object-Oriented Programming, pages 592–615. Springer
Baar T (2005) Non-deterministic constructs in OCL - what does any() mean. In Model Driven - 12th International SDL Forum, volume 3530 of LNCS, pages 32–46. Springer
Vallecillo A, & Gogolla M (2017) Adding random operations to OCL. In Proceedings of MODELS 2017 Satellite Event, CEUR Workshop Proceedings, pages 324–328. CEUR-WS.org
Andova S, van den Brand MG, Engelen LJ and Verhoeff T (2012) MDE basics with a DSL focus. In Formal Methods for Model-Driven Engineering - 12th International School on Formal Methods for the Design of Computer, Communication, and Software Systems, volume 7320 of LNCS, pages 21–57. Springer
Leroy X (2009) Formal verification of a realistic compiler. Commun ACM 7:107–115
Leonid A (1994) Levin. Birkhauser Verlag, Randomness and nondeterminism, In International Congress of Mathematicians
Object Management Group (2014) Object Constraint Language (OCL) 2.4 Core Specification. https://www.omg.org/spec/OCL/
Woodcock J, Larsen PG, Bicarregui J, Fitzgerald J (2009) Formal methods: Practice and experience. ACM Comput Surveys (CSUR) 41(4):1–36
Hoare T (2007) The ideal of program correctness. Comput J 50(3):254–260
Object Management Group (2017) Unified Modeling Language (UML) 2.5.1 Core Specification. https://www.omg.org/spec/UML/
Gosling J, Joy B, Steele G, Bracha G, Buckley A and Smith D (2018) The Java Language Specification, Java SE 10 Edition. https://docs.oracle.com/javase/specs/
Behm P, Benoit P, Faivre A and Meynadier JM (1999) Météor: A successful application of b in a large project. In Proceedings of the Wold Congress on Formal Methods in the Development of Computing Systems, FM ’99, pages 369–387, London, UK, UK. Springer-Verlag
Bobbio A (1990) System modelling with petri nets. In: Colombo AG, de Bustamante AS (eds) Systems Reliability Assessment. Springer, Netherlands, Dordrecht, pp 103–143
Cortadella J and Reisig W (2004) editors. Applications and Theory of Petri Nets 2004, 25th International Conference, ICATPN 2004, Bologna, Italy, June 21-25, 2004, Proceedings, volume 3099 of LNCS. Springer
Lann Le G (1996) The Ariane 5 Flight 501 Failure - A Case Study in System Engineering for Computing Systems. Research Report RR-3079, INRIA. Projet REFLECS
Atelier B (2020) http://www.atelierb.eu/en/. Accessed: 15-12
Oxford. The Oxford Dictionary. Oxford University Press
Butler M and Leuschel M (2005) Combining CSP and B for specification and property verification. In International Symposium of Formal Methods - FM 2005, volume 3582 of Lecture Notes in Computer Science, pages 221–236. Springer
Hillah LM, Kindler E, Kordon F, Petrucci L, Treves N (2009) A primer on the Petri Net Markup Language and ISO/IEC 15909–2. Petri Net Newslett 76:9–28
PNML Homepage (2020) http://www.pnml.org. Accessed: 15-12
The ePNK Homepage (2020) http://www2.compute.dtu.dk/~ekki/projects/ePNK/index.shtml. Accessed: 15-12
PNML Framweork Homepage. https://pnml.lip6.fr. Accessed: 15-12-2020
ISO/IEC Systems and software engineering “High-level Petri nets” Part 2: Transfer format, International Standard ISO/IEC 15909-2
Attiogbe C (2009) Semantic Embedding of Petri Nets into Event-B. In Integration of Model-based Formal Methods Tools (IM\_FMT @ IFM’2009), Dusseldorf, Germany, March . http://www.lina.sciences.univ-nantes.fr/apcb/IM_FMT2009/index.html
Rivera JE, Duran F, Vallecillo A (2009) Formal specification and analysis of domain specific models using maude. Simulation 85(778–792):10
Gargantini A, Riccobene E, Scandurra P (2010) Combining formal methods and mde techniques for model-driven system design and analysis. Advances in Software 3(1 & 2)
Author information
Authors and Affiliations
Corresponding author
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
About this article
Cite this article
Idani, A. Formal model-driven executable DSLs. Innovations Syst Softw Eng 18, 543–566 (2022). https://doi.org/10.1007/s11334-021-00408-4
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11334-021-00408-4