Skip to main content
Log in

Formal model-driven executable DSLs

Application to Petri-nets

  • S.I. : DETECT 2020
  • Published:
Innovations in Systems and Software Engineering Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16
Fig. 17
Fig. 18
Fig. 19
Fig. 20
Fig. 21
Fig. 22
Fig. 23
Fig. 24
Fig. 25
Fig. 26
Fig. 27
Fig. 28
Fig. 29
Fig. 30
Fig. 31
Fig. 32

Similar content being viewed by others

Notes

  1. The corresponding ECore file can be found at [19].

  2. A random algorithm is called probabilistic algorithm because its behaviour depends on an established number generation technique.

  3. HashSet is an implementation of interface Set in Java.

  4. Section 4.12.5, page 89.

  5. In listing of Fig. 7, src and snk correspond to references input and output of our meta-model. In QVT-R, input and output are reserved words. Note that this is the original specification taken from [20], but in our experiments, we have encoded a variant of this listing in QVTo.

  6. CSP: Communicating Sequential Processes [17].

  7. Demo videos can be found at: http://vasco.imag.fr/tools/meeduse/meenet/.

  8. The benchmark can be found at: https://mcc.lip6.fr/models.php.

References

  1. 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

  2. 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

  3. 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

  4. Gemoc. Gemoc. http://gemoc.org/

  5. Kosar T, Bohra S, Mernik M (2016) Domain-specific languages: a systematic mapping study. Inf Softw Technol 71:77–91

    Article  Google Scholar 

  6. 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

    Article  Google Scholar 

  7. Meeduse http://vasco.imag.fr/tools/meeduse/. Accessed: 15-12-2020

  8. 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

  9. 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

    Article  Google Scholar 

  10. Abrial JR (1996) The B-book: Assigning Programs to Meanings. Cambridge University Press, New York, NY, USA

    Book  MATH  Google Scholar 

  11. Leuschel M, Butler M (2008) Prob: an automated analysis toolset for the b method. Int J Softw Tools Technol Transf 10(2):185–203

    Article  Google Scholar 

  12. 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

  13. Deantoni J (2016) Modeling the behavioral semantics of heterogeneous languages and their coordination. In 2016 Architecture-Centric Virtual Integration (ACVI), pages 12–18

  14. Bousse E, Leroy D, Combemale B, Wimmer M, Baudry B (2018) Omniscient debugging for executable dsls. J Syst Softw 137:261–288

    Article  Google Scholar 

  15. 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

  16. 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

  17. Hoare CAR (1985) Communicating Sequential Processes. Prentice-Hall Inc, Upper Saddle River, NJ, USA

  18. Petri CA, Reisig W (2008) Petri net. Scholarpedia 3(4):6477

    Article  Google Scholar 

  19. 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

  20. 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

    Chapter  Google Scholar 

  21. 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

  22. EProvide. http://eprovide.sourceforge.net. Accessed: 15-12-2020

  23. 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

    Article  Google Scholar 

  24. Object Management Group. Meta Object Facility (MOF) 2.5.1 Core Specification. https://www.omg.org/spec/MOF/2.5.1/, 2015

  25. XTend example of Petri-nets. https://github.com/gemoc/petrinet/blob/master/petrinetv1/. Accessed: 15-12-2020

  26. Object Management Group. Semantics of a Foundational Subset for Executable UML Models (fUML). https://www.omg.org/spec/FUML/, 2011

  27. fUML source code. http://www.modelexecution.org/moliz/xmof/. Accessed: 15-12-2020

  28. Thong WJ and Ameedeen MA (2015) A survey of petri net tools. In Advanced Computer and Communication Engineering Technology, pages 537–551, Cham. Springer

  29. 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

  30. 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

  31. 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

  32. 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

  33. Leroy X (2009) Formal verification of a realistic compiler. Commun ACM 7:107–115

    Article  Google Scholar 

  34. Leonid A (1994) Levin. Birkhauser Verlag, Randomness and nondeterminism, In International Congress of Mathematicians

  35. Object Management Group (2014) Object Constraint Language (OCL) 2.4 Core Specification. https://www.omg.org/spec/OCL/

  36. Woodcock J, Larsen PG, Bicarregui J, Fitzgerald J (2009) Formal methods: Practice and experience. ACM Comput Surveys (CSUR) 41(4):1–36

    Article  Google Scholar 

  37. Hoare T (2007) The ideal of program correctness. Comput J 50(3):254–260

    Article  Google Scholar 

  38. Object Management Group (2017) Unified Modeling Language (UML) 2.5.1 Core Specification. https://www.omg.org/spec/UML/

  39. 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/

  40. 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

  41. Bobbio A (1990) System modelling with petri nets. In: Colombo AG, de Bustamante AS (eds) Systems Reliability Assessment. Springer, Netherlands, Dordrecht, pp 103–143

    Chapter  Google Scholar 

  42. 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

  43. 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

  44. Atelier B (2020) http://www.atelierb.eu/en/. Accessed: 15-12

  45. Oxford. The Oxford Dictionary. Oxford University Press

  46. 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

  47. 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

    Google Scholar 

  48. PNML Homepage (2020) http://www.pnml.org. Accessed: 15-12

  49. The ePNK Homepage (2020) http://www2.compute.dtu.dk/~ekki/projects/ePNK/index.shtml. Accessed: 15-12

  50. PNML Framweork Homepage. https://pnml.lip6.fr. Accessed: 15-12-2020

  51. ISO/IEC Systems and software engineering “High-level Petri nets” Part 2: Transfer format, International Standard ISO/IEC 15909-2

  52. 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

  53. Rivera JE, Duran F, Vallecillo A (2009) Formal specification and analysis of domain specific models using maude. Simulation 85(778–792):10

    Google Scholar 

  54. 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)

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Akram Idani.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

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

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11334-021-00408-4

Keywords

Navigation