A Design Pattern to Build Executable DSMLs and Associated V&V Tools

Model executability is now a key concern in model-driven engineering, mainly to support early validation and verification (V&V). Some approaches allow to weave executability into metamodels, defining executable domain-specific modeling languages (DSMLs). Model validation can then be achieved by simulation and graphical animation through direct interpretation of the conforming models. Other approaches address model executability by model compilation, allowing to reuse the virtual machines or V&V tools existing in the target domain. Nevertheless, systematic methods are currently not available to help the language designer in the definition of such an execution semantics and related tools. For instance, simulators are mostly hand-crafted in a tool specific manner for each DSML. In this paper, we propose to reify the elements commonly used to support state-based execution in a DSML. We infer a design pattern (called Executable DSML pattern) providing a general reusable solution for the expression of the executability concerns in DSMLs. It favors flexibility and improves reusability in the definition of semantics-based tools for DSMLs. We illustrate how this pattern can be applied to ease the development of V&V tools.

[1]  Andy Evans,et al.  The Metamodelling Language Calculus: Foundation Semantics for UML , 2001, FASE.

[2]  Martin Gogolla,et al.  An Integrated Semantics for UML Class, Object and State Diagrams Based on Graph Transformation , 2002, IFM.

[3]  Xavier Crégut,et al.  The TOPCASED project : a toolkit in open source for critical aeronautic systems design , 2006 .

[4]  Averill M. Law,et al.  Simulation Modeling and Analysis , 1982 .

[5]  Antonio Vallecillo,et al.  Formal and Tool Support for Model Driven Engineering with Maude , 2007, J. Object Technol..

[6]  H. R. Quillian In semantic information processing , 1968 .

[7]  Jean-Marc Jézéquel,et al.  Weaving executability into object-oriented meta-languages , 2005, MoDELS'05.

[8]  Grzegorz Rozenberg,et al.  Handbook of Graph Grammars and Computing by Graph Transformations, Volume 1: Foundations , 1997 .

[9]  Marvin Minsky,et al.  Matter, Mind and Models , 1965 .

[10]  Mamoun Filali,et al.  Fiacre: an Intermediate Language for Model Verification in the Topcased Environment , 2008 .

[11]  Jeffrey G. Gray,et al.  Design patterns for metamodels , 2011, SPLASH Workshops.

[12]  Tony Clark,et al.  Superlanguages: developing languages and applications with XMF. , 2008 .

[13]  Markus Scheidgen,et al.  Human Comprehensible and Machine Processable Specifications of Operational Semantics , 2007, ECMDA-FA.

[14]  Thomas Baar,et al.  Semantics of OCL specified with QVT , 2008, Software & Systems Modeling.

[15]  Hartmut Ehrig,et al.  Handbook of graph grammars and computing by graph transformation: vol. 3: concurrency, parallelism, and distribution , 1999 .

[16]  Bernard P. Zeigler,et al.  Theory of modeling and simulation , 1976 .

[17]  Guido Wachsmuth,et al.  Using Grammarware Languages to Define Operational Semantics of Modelled Languages , 2009, TOOLS.

[18]  Benoît Combemale,et al.  Generative Technologies for Model Animation in the TopCased Platform , 2010, ECMFA.

[19]  Edward A. Lee,et al.  Overview of the Ptolemy project , 2001 .

[20]  Benoît Combemale,et al.  A Property-Driven Approach to Formal Verification of Process Models , 2007, ICEIS.

[21]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[22]  Bernhard Rumpe,et al.  Meaningful modeling: what's the semantics of "semantics"? , 2004, Computer.