=Paper= {{Paper |id=Vol-2019/gemoc_1 |storemode=property |title=Bridging Engineering and Formal Modeling: WebGME and Formula Integration |pdfUrl=https://ceur-ws.org/Vol-2019/gemoc_1.pdf |volume=Vol-2019 |authors=Tamas Kecskes,Qishen Zhang,Janos Sztipanovits |dblpUrl=https://dblp.org/rec/conf/models/KecskesZS17 }} ==Bridging Engineering and Formal Modeling: WebGME and Formula Integration== https://ceur-ws.org/Vol-2019/gemoc_1.pdf
  Bridging Engineering and Formal Modeling: WebGME and Formula Integration

                                 Tamas Kecskes        Qishen Zhang      Janos Sztipanovits
                            Department of EECS, Vanderbilt University, Nashville, TN
                       {tamas.kecskes, qishen.zhang, janos.sztipanovits}@vanderbilt.edu


Abstract—Emergence of heterogeneous engineering domains          are restricted to modeling language constructs limited to
that cross disciplinary boundaries lead to design flows that     modeling the interactions among different and changing
span multiple Domain Specific Modeling Languages (DSML).         modeling domains. The cost of introducing easy-to-evolve
Analyzing system level behavior and pursuing cross-domain        model integration languages - that are themselves DSMLs -
trade-offs requires the semantic integration of modeling do-     is the requirement for explicit representation of their formal
mains. Driven by the specific needs of and our experience        semantics, which is necessary to preserve the semantic
with design automation tool suites for Cyber-Physical Systems    integrity of design flows [2].
(CPS), this paper focuses on using model integration languages        In our previous work, developing the OpenMETA de-
as a flexible way for modeling cross-domain interactions. The    sign automation tool suite for DARPA’s Adaptive Vehicle
primary challenge in specifying and supporting model inte-       Make program [3], we addressed these needs by pursuing
gration languages is that both rapid evolvability and semantic   and coordinating two parallel paths in model integration.
precision are required. This challenge is mapped into a meta-    As a first step, we specified and continuously evolved the
level model integration problem, the integration of a meta-      CyPhyML model integration language focusing on the in-
modeling language used for specifying DSMLs and configuring      tegrated OpenMETA design flow targeting ground vehicle
the underlying meta-programmable modeling tool WebGME,           design [3]. Since the OpenMETA design flow extended
and a formal framework that uses algebraic data types and        to multiple physical and cyber domains, CyPhyML itself
Constraint Logic Programming - Formula - devoted to formally
                                                                 proved to be a complex DSML requiring the use of our
                                                                 meta-programmable modeling tool, WebGME[4]. To satisfy
specifying the semantics of DSMLs and model transformations.
                                                                 the need for representing and evolving the formal seman-
The primary contribution of the paper is the deep semantic in-
                                                                 tics of CyPhyML, we developed the OpenMETA Semantic
tegration of WebGME and Formula that keep the engineering
                                                                 Backplane[2]. It provided a formal representation of the
view of an evolving model integration language and its formal
                                                                 interacting physical and cyber domains. Although the two-
representation tightly synchronized.
                                                                 pronged approach satisfied the basic needs, the challenge
Index Terms—WebGME, Formula, DSML, Model Transforma-             of synchronizing the CyPhyML and Formula models, and
tion, Constraint Programming.                                    meta-models decreased the benefits of the Semantic Back-
                                                                 plane.
                                                                      In this paper we discuss our recent work on establish-
1. Introduction                                                  ing a deep integration of WebGME and Formula. Deep
                                                                 integration means keeping the two representations - the
    Modeling tools are key enablers of model-driven engi-        CyPhyML meta-models and models in WebGME and their
neering. They are responsible for offering intuitive engineer-   FORMULA equivalent - fully synchronized and providing
ing interface (usually graphical) for model developers and       seamless access to complementary services of the tools.
they provide a range of services supporting safe model en-       WebGME services include [4]:
gineering practices including composing/decomposing, vi-
                                                                    •   meta-programmability with prototypal inheritance
sualizing, modifying, checking well-formedness, version-
                                                                        that allows smooth language integration and evolu-
ing, and storing large models. Adaption of model-driven
                                                                        tion,
methods in new cross-disciplinary fields such as Cyber-
                                                                    •   graphical concrete syntax that is highly customiz-
Physical Systems (CPS) challenges modeling tool develop-
                                                                        able,
ers with heterogeneity: design flows require the integration
                                                                    •   multiple, well defined APIs for model interpretation
of multi-physics, multi-abstraction and multi-fidelity mod-
                                                                        and tool integration,
els expressed in a rich set of domain-specific modeling
                                                                    •   version control with branch support to allow mod-
languages (DSML). Since design flows and the tools in-
                                                                        eling in large, and
volved in their implementation change, the suite of relevant
                                                                    •   collaborative, distributed modeling via web-
modeling languages is not static; they evolve continuously.
                                                                        interface.
Our approach to manage model heterogeneity has been
the introduction of model integration languages [1] that
   FORMULA services include:                                     state-of-the-art satisfiability modulo theories (SMT) solver
                                                                 Z3 [14].
   •   formal representation of structural semantics of              In summary, the Formula tool complements WebGME
       modeling languages [5] as strongly-typed, open-           with a range of essential services: verifying if domain con-
       World logic programs (OLP) [6] offering specifi-          straints are consistent (the domain is not empty), completing
       cations that are highly declarative and executable,       partially defined models that are part of the domain, check-
       they can express static, dynamic, and transformation      ing well-formedness of models, formally specifying (and
       semantics of DSMLs,                                       executing) model transformations, and formally composing
   •   program synthesis and automated reasoning enabled         domains.
       by the symbolic execution of logic programs into
       quantifier-free sub-problems, which are dispatched
       to the state-of-the-art SMT solver Z3 [7],
                                                                 4. Integration Architecture
   •   modular reuse of DSMLs via the composition of                 To provide a seamless and tight integration that com-
       OLPs in a strong category theoretic sense [8].            bines the modeling power of WebGME with the reasoning
     The primary contribution of this paper is the semantic      engine of Formula, we have created an integration archi-
integration between the tools, detailing the relationship be-    tecture presented in Figure 1. As it is shown, the WebGME
tween WebGME meta-models and Formula domain spec-                client interface has a single communication channel towards
ifications. The following sections presents the integrated       the server, that helps in providing a unified platform where
use of WebGME and Formula services using constraint              the user is able to harness the capabilities of both tools.
specification as example.                                            To keep the WebGME project and its Formula represen-
                                                                 tation synchronized, the system uses the webhook feature of
                                                                 WebGME. It generates a notification towards a configured
2. Modeling in WebGME                                            machine - in our case the Formula machine - at every event
                                                                 of interest. For every new commit in the WebGME model
     WebGME[4] is the next generation of Vanderbilt’s            store, the Formula machine will receive a request to make
Generic Modeling Environment(GME) [9] providing many             the model translation and constraint evaluation. After finish-
newly designed features such as web-based deployment,            ing, it will store the results in a separate database so they
version control, real-time collaborative editing and prototyp-   can be queried later as well. With the help of an additional
ical inheritance to add more scalability and extensibility for   middleware, the Formula editor is capable of continuously
large, real world applications. WebGME is a response to the      querying the results from the server and provide it to the
limitations of GME uncovered by the widespread application       user - whether it is the evaluation of constraints or some
of our model-integrated computing (MIC) tools.                   syntax error.
     Although the WebGME advanced the modeling capa-                                                     Another aspect of the
bilities of GME and provided a highly customizable and                                               integration is that the We-
meta-programmable framework; it still lacks an expressive                                            bGME meta-model repre-
and easy-to-use platform for well-formedness checking. In                                            sented as a Formula do-
WebGME, the models could be checked with script defined                                              main is always available
in JavaScript language, but for model-developers and engi-                                           in a synchronous man-
neers its use is cumbersome and lacks expressiveness which                                           ner. Modifications to the
makes it hard to maintain. Elimination of this gap was one                                           meta-model are immedi-
of the key motivations for the deeper integration between                                            ately reflected as Formula
WebGME and Formula.                                                                                  domain specifications and
                                                                 Figure 1: Integration Archi-
                                                                 tecture view of the WebGME          can be extended with For-
3. Formal Specification of Modeling Lan-                         Formula integration                 mula constraints without
guages in Formula                                                                                    interaction with server.
                                                                 However, the constraint evaluation and syntax checking
    Microsoft Formula[10] is a constraint logic program-         requires server interaction with reasoning in Formula engine.
ming tool developed by Jackson at Vanderbilt and later
at Microsoft Research [5]. Formula is based on algebraic         5. Semantic Integration Between WebGME
data types and first-order logic with fixed-point semantics.     and Formula
It has found many application in Model-Based Engineering
such as reasoning about meta-modeling [11] or finding                The cornerstone of WebGME and Formula integration
specification errors by constraints [12].                        is the transformation of WebGME metamodels and models
    The theoretical foundation for Formula reasoning is          into Formula domain and instance representations. We ex-
based on Non-recursive Horn Domain (a well-known de-             plain this translation in two steps. First, we discuss a simple
cidable subset of first-order logic) to reason about meta-       example to demonstrate the two alternative representations,
model as mentioned in a previous paper[13]. Formula is also      and second we provide a simplified version of the model
capable of generating automatic proofs by the help of the        transformation rules.
                   (a) FSM Meta-model in WebGME                                (b) Up-Down Counter model in WebGME

                                                                model M of FiniteStateMachines {
                                                                  TenMachine_attr is Attr__FSMDiagram("TenMachine").
                                                                  TenMachine_ptr is Ptr__FSMDiagram(NULL).
                                                                  TenMachine is FSMDiagram("TenMachine",
                                                                   NULL, TenMachine_attr, TenMachine_ptr).
                                                                  Initial_attr is Attr_Initial("Initial").
                                                                  Initial_ptr is Ptr__Initial(NULL).
                                                                  Initial is Initial("Initial",
                                                                   TenMachine, Initial_attr, Initial_ptr).
                                                                  End_attr is Attr_End("End").
domain FiniteStateMachines {                                      End_ptr is Ptr__End(NULL).
  Transition ::= new (id: String,                                 End is End("End", TenMachine, End_attr, End_ptr).
   parent: any FSMDiagramTYPE + {NULL},                           State_One_attr is Attr__State("State One").
   attributes: any Attr__Transition,                              State_One_ptr is Ptr__State(NULL).
   pointers: any Ptr__Transition).                                State_One is State("State One",
  Attr__Transition ::= new (guard: String,                         TenMachine, State_One_attr, State_One_ptr).
   name: String,                                                  State_Two_attr is Attr__State("State Two").
   operation: String).                                            State_Two_ptr is Ptr__State(NULL).
  Ptr__Transition ::= new (base: any FCOTYPE + {NULL},            State_Two is State("State Two",
   dst: any StateBaseTYPE + {NULL},                                TenMachine, State_Two_attr, State_Two_ptr).
   src: any StateBaseTYPE + {NULL}).                              Tr_I_to_E_attr is
                                                                   Attr__Transition("x=10", "Transition", "").
    Initial ::= new (id: String,                                  Tr_I_to_E_ptr is Ptr__Transition(NULL, Initial, End).
     parent: any FSMDiagramTYPE + {NULL},                         Tr_I_to_E is Transition("Tr_I_to_E",
     attributes: any Attr__Initial,                                TenMachine, Tr_I_to_E_attr, Tr_I_to_E_ptr).
     pointers: any Ptr__Initial).                                 Tr_I_to_1_attr is
    Attr__Initial ::= new (name: String).                          Attr__Transition("x>10", "Transition", "x:=x-1").
    Ptr__Initial ::= new (base: any FCOTYPE + {NULL}).            Tr_I_to_1_ptr is Ptr__Transition(NULL, Initial, Sate_One).
                                                                  Tr_I_to_1 is Transition("Tr_I_to_1",
    StateBase ::= new (id: String,                                 TenMachine, Tr_I_to_1_attr, Tr_I_to_1_ptr).
     parent: any FSMDiagramTYPE + {NULL},
     attributes: any Attr__StateBase,                               Tr_I_to_2_attr is
     pointers: any Ptr__StateBase).                                  Attr__Transition("x<10", "Transition", "x:=x+1").
    Attr__StateBase ::= new (name: String).                         Tr_I_to_2_ptr is Ptr__Transition(NULL, Initial, Sate_Two).
    Ptr__StateBase ::= new (base: any FCOTYPE + {NULL}).            Tr_I_to_2 is Transition("Tr_I_to_2",
                                                                     TenMachine, Tr_I_to_2_attr, Tr_I_to_2_ptr).
    State ::= new (id: String,
     parent: any FSMDiagramTYPE + {NULL},                           Tr_1_to_1_attr is
     attributes: any Attr__State,                                    Attr__Transition("x>10", "Transition", "x:=x-1").
     pointers: any Ptr__State).                                     Tr_1_to_1_ptr is Ptr__Transition(NULL, State_One, Sate_One).
    Attr__State ::= new (name: String).                             Tr_1_to_1 is Transition("Tr_1_to_1",
    Ptr__State ::= new (base: any FCOTYPE + {NULL}).                 TenMachine, Tr_1_to_1_attr, Tr_1_to_1_ptr).

    End ::= new (id: String,                                        Tr_1_to_E_attr is Attr__Transition("x=10", "Transition", "").
     parent: any FSMDiagramTYPE + {NULL},                           Tr_1_to_E_ptr is Ptr__Transition(NULL, State_One, End).
     attributes: any Attr__End,                                     Tr_1_to_E is Transition("Tr_1_to_E",
     pointers: any Ptr__End).                                        TenMachine, Tr_1_to_E_attr, Tr_1_to_E_ptr).
    Attr__End ::= new (name: String).
    Ptr__End ::= new (base: any FCOTYPE + {NULL}).                  Tr_2_to_2_attr is
                                                                     Attr__Transition("x<10", "Transition", "x:=x+1").
    FSMDiagram ::= new (id: String,                                 Tr_2_to_2_ptr is Ptr__Transition(NULL, State_Two, Sate_Two).
     parent: any {NULL},                                            Tr_2_to_2 is Transition("Tr_2_to_2",
     attributes: any Attr__FSMDiagram,                               TenMachine, Tr_2_to_2_attr, Tr_2_to_2_ptr).
     pointers: any Ptr__FSMDiagram).
    Attr__FSMDiagram ::= new (name: String).                        Tr_2_to_E_attr is Attr__Transition("x=10", "Transition", "").
    Ptr__FSMDiagram ::=                                             Tr_2_to_E_ptr is Ptr__Transition(NULL, State_Two, End).
     new (base: any FCOTYPE + {NULL}).                              Tr_2_to_E is Transition("Tr_2_to_E",
}                                                                    TenMachine, Tr_2_to_E_attr, Tr_2_to_E_ptr).
                                                                }


                         (c) Domain in Formula                                           (d) Model in Formula

                           Figure 2: Meta-Model and Model representation in WebGME and Formula
                          WebGME
       Concept
                            (Meta)                                      Formula translation
      description
                        representation

                                            FSMDiagram ::= new (id: String, parent: any {NULL},
                                             attributes: any Attr__FSMDiagram,
     Component                               pointers: any Ptr__FSMDiagram).


                                            StateBase ::= new (...parent: any FSMDiagramTYPE + {NULL},...).
     Containment

                                            Transition ::= new (...attributes: any Attr__Transition...).
                                            Attr__Transition ::= new (guard: String, name: String,
     Attribute                                                                  operation: String).



                                            Transition ::= new (...pointers: any Ptr__Transition).
     Pointer                                Ptr__Transition ::= new (...dst: any StateBaseTYPE + {NULL},
     (one to one                             src: any StateBaseTYPE + {NULL}).
     association)

                                            StateBase ::= new (...).
                                            End ::= new (...).
     Inheritance                            StateBaseTYPE ::= StateBase + ... + End.



             Figure 3: Subset of translation rules of WebGME Meta concepts into Formula domain constructs


5.1. Modeling Example                                             discussion the formal specification of behavioral semantics.
                                                                  Formula supports this by its constructs for specifying model
    Finite State Machine (FSM) is used to demonstrate how         transformations. The various ways to use Formula for speci-
WebGME meta-models are represented as Formula domains.            fying behavioral semantics in operational or denotation style
The FSM modeling language defined as WebGME meta-                 is discussed in [2].
model is shown in Figure 2a. The meta-modeling language
(WebGME META) adopts a UML-like concrete syntax,
which is detailed in [4]. A specific FSM instance using           5.2. Generation of Formula Domains and Models
WebGME graphical interface is shown in Figure 2b. The
concrete syntax is configurable as expected from meta-                 A WebGME plugin, GenFORMULA makes the trans-
programmable modeling tools. The example shows a simple           lation by using the Core API functions of WebGME. It
up-down counter that - given any x integer input value and        creates a Formula domain by traversing the meta-concepts
an initial state - will check the value of input, if its value    of the project. By following the rules presented in Figure 3,
is equal to ten, a transition is triggered to move from initial   every Class definition is translated into three constructors
state to end state denoting the goal is reached, otherwise        in Formula. Attr__Class is a tuple for the available at-
it will jump to either State One or State Two and                 tributes, Ptr__Class couples the pointer definitions, and
keep incrementing or decrementing x until it reaches ten and      Class(id,parent,attributes,pointers) tuple
transfer to end state. The equivalent Formula representation      combines the other two and adds the containment rep-
are shown in Figures 2c and 2d.                                   resentation with the parent field. The plugin also de-
    The definition on Figure 2a, still allows the creation of     fines ClassTYPE set, that captures the inheritance among
malformed models. To avoid it, we need to introduce domain        meta-concepts of WebGME. Inheritance among models
constraints - so the user can evade flaws like having states      and model elements are kept in the base pointer defini-
with the same name or not having an initial state at all.         tion. Finally, it specifies some helper constructs GMENode,
From tool design point of view, Formula has its clear advan-      GMEContainment and GMEInheritance to represent
tages by allowing consistency check, model synthesis, and         all nodes, their containment relation and inheritance relation.
well-formedness checking. The seamless use of Formula’s           The user defined constraints are then added without modifi-
constraint language is enabled by the tight integration of the    cation. This step finalizes the Formula domain. Finally the
two tools and will be described in Section 6.                     procedure traverses the whole containment hierarchy in the
    It is important to note that we leave out from this           WebGME project. For every node, it gathers the necessary
values with the help of the Core API, and translate them         noSourceTr ::= new(t:TransitionTYPE).
into instances in Formula.                                       noSourceTr(t) :- t is TransitionTYPE,k = t.parent,
                                                                  k is FSMDiagramTYPE, t.pointers.src = NULL.
    The resulting formula file is then processed with the help   noDestinationTr ::= new(t:TransitionTYPE).
of the Formula engine to get the constraint evaluations and      noDestinationTr(t) :- t is TransitionTYPE,k = t.parent,
                                                                  k is FSMDiagramTYPE, t.pointers.dst = NULL.
syntax check. Being automated, the result is available after     danglingTr ::= new(t:TransitionTYPE).
every change, so the user will be notified at the place of       danglingTr(t) :- noSourceTr(t) ; noDestinationTr(t).
error.                                                           HasDangling :- t is TransitionTYPE, danglingTr(t).
                                                                 NoDangling :- no HasDangling.
                                                                 NotExactlyOneInitState :- p is FSMDiagramTYPE,
6. Constraints                                                    t is FSMDiagramTYPE, p.pointers.base = t,
                                                                  count({s | s is Initial, s.parent = p}) != 1.
                                                                 ExactlyOneInitState :- no NotExactlyOneInitState.
    The constraints play important role in specifying the        NotAtLeastOneEndState :- p is FSMDiagram,
                                                                                          p.parent = NULL,
structural semantics of modeling languages. They restrict         k = count({s | s is End, s.parent = p}), k = 0.
structural characteristics, properties and relations in models   AtLeastOneEndState :- no NotAtLeastOneEndState.
                                                                 ExistsDuplicateName :- s1 is StateBaseTYPE,
such that all instances of a modeling domain are seman-           s2 is StateBaseTYPE,
tically well-formed. However, the built-in constraints in         s1 != s2, s1.parent = s2.parent,
WebGME’s meta-modeling language are quite limited and             s1.attributes.name = s2.attributes.name.
                                                                 UniqueName :- no ExistsDuplicateName.
do not support the specification and enforcement of complex      reachable ::= new(x: StateBaseTYPE, y: StateBaseTYPE).
constraints. The only available solution is the traversal of     reachable(x,y) :- x is StateBaseTYPE, y is StateBaseTYPE,
                                                                  t is TransitionTYPE, x.parent = y.parent,
models using JavaScript plugin and check if they satisfy          x.parent = t.parent,
the constraints. This method is error-prone, do not provide       t.pointers.src = x, t.pointers.dst = y.
declarative representation for the constraints to reason about   reachable(x,y) :- reachable(y,x).
                                                                 reachable(x,z) :- reachable(x,y), reachable(y,z).
their properties (e.g. consistency) and make the use of ad-      DisjointDiagram :- f is FSMDiagramTYPE,
vanced service such as model synthesis impossible. Integra-                         x is StateBaseTYPE,
                                                                  y is StateBaseTYPE, x.parent = f, y.parent = f,
tion of WebGME with Formula eliminates these drawbacks.           x != y, no reachable(x,y).
                                                                 NoDisjointDiagram :- no DisjointDiagram.
6.1. Constraint Example for FSM Domain
                                                                           Figure 4: Formula Constraint Example
    In our examples shown in Figure 4, we collected a
few important constraints regarding the FSM domain. These
well-formedness rules are complex and cannot be expressed        be cumbersome to specify large complex set of constraints
with the graphical suite of meta-modeling of WebGME.             with visual blocks. Formula stands in the middle of these
    For example, it is required in any FSM, that all transi-     two categories of constraint specification methods by using
tions should have valid states as endpoints. The pointer con-    declarative constraint specification style, but also providing
cept of WebGME doesn’t specify strict requirement regard-        a reasoning engine to automatically derive the result by
ing the target so it can be NULL - as in many applications       repeatedly applying rules to a set of initial constants.
that would be perfectly fine. To eliminate this gap, we define
the noSourceTr(t) and noDestinationTr(t) rules
for every transition. Then we combine them to get the
danglingTr(t) rule which can be used to finally get              6.3. Constraint Editor in WebGME Visualizer
global NoDangling constraint. Overall, many complicated
constraints can be easily written in logic programming style
Formula Language and evaluated in Formula engine.                    In WebGME environment, a visualizer for code editing
                                                                 is implemented for users to write constraints in Formula
6.2. Benefits of Using Formula Constraints in We-                syntax. The embedded constraint editor is also used to
bGME                                                             render evaluation results directly in the code by changing
                                                                 the background color of the head of the constraint based on
    Similar works can be found that enable adding visual         the result as shown in Figure 5.
or textual constraints to general modeling. For example,             Furthermore, the editor also provides syntax highlight-
the Object Constraint Language (OCL) [15], Semantics Of          ing and syntax check to help users come up with correct
Business Vocabulary And Rules (SBVR) and Extensible              constraints. Whenever there is a syntax error in the text, an
Visual Constraint Language (EVCL) [16] is widely used            exclamation mark - left of the faulty line - will be shown and
in the UML context. Constraint Languages like OCL have           by hovering over it the user can see the source of the error.
the expressiveness to describe complex constraints but they      Also, the user can turn on the Formula view, that will result
lack model transformation and model completion features          in a split view shown in Figure 5, where the upper portion
that are integral to our needs. Other tools like EVCL [16]       with white background shows the Formula translation of
generate actual JavaScript code to check visually defined        the Language domain to help the user as those definitions
constraints. Consequently, it’s not flexible enough and can      should make the foundation of the constraints.
                                                                            [2]   G. Simko, T. Levendovszky, S. Neema, E. K. Jackson, T. bapty, P. Joe,
                                                                                  and J. Sztipanovits, “Foundation for model integration: Semantic
                                                                                  backplane,” in Proceedings of the ASME 2012 IDETC/CIE 2012.
                                                                                  ASME, 2012, pp. 1–8.
                                                                            [3]   J. Sztipanovits, T. Bapty, S. Neema, L. Howard, and E. Jackson,
                                                                                  OpenMETA: A Model- and Component-Based Design Tool Chain
                                                                                  for Cyber Physical Systems.         Berlin, Heidelberg: Springer
                                                                                  Berlin Heidelberg, 2014, pp. 235–248. [Online]. Available:
                                                                                  https://doi.org/10.1007/978-3-642-54848-2 16
                                                                            [4]   M. Maróti, T. Kecskés, R. Kereskényi, B. Broll, P. Völgyesi,
                                                                                  L. Jurácz, T. Levendovszky, and Á. Lédeczi, “Next generation (meta)
                 Figure 5: Formula Code Editor                                    modeling: Web-and cloud-based collaborative tool infrastructure.” in
                                                                                  MPM@ MoDELS, 2014, pp. 41–60.
                                                                            [5]   E. Jackson and J. Sztipanovits, “Formalizing the structural semantics
                                                                                  of domain-specific modeling languages,” Software & Systems Mod-
7. Conclusion and Future Work                                                     eling, vol. 8, no. 4, pp. 451–478, Sep 2009.
                                                                            [6]   E.    Jackson,     W.   Schulte,   and     N.    Bjorner,    “Open-
    This paper discusses the integration of WebGME, a                             world logic programs: A new foundation for formal
meta-programmable modeling tool with Formula, a formal                            specifications,” Tech. Rep., May 2013. [Online]. Avail-
framework and tool for specifying domain specific modeling                        able:     https://www.microsoft.com/en-us/research/publication/open-
                                                                                  world-logic-programs-a-new-foundation-for-formal-specifications/
languages. The purpose of the integration has been the
construction of an advanced modeling tool that provides                     [7]   L. De Moura and N. Bjørner, “Satisfiability modulo
                                                                                  theories: Introduction and applications,” Commun. ACM,
extensive model engineering services, such as graphical                           vol. 54, no. 9, pp. 69–77, Sep. 2011. [Online]. Available:
modeling interface, scalable model repository, web-based                          http://doi.acm.org/10.1145/1995376.1995394
implementation architecture and concurrent modeling as                      [8]   E. K. Jackson, “A module system for domain-specific
well as rigorous formal foundations and tool for specifying                       languages,” CoRR, vol. abs/1405.4041, 2014. [Online]. Available:
modeling language semantics, model transformation seman-                          http://arxiv.org/abs/1405.4041
tics, consistency checking, and model synthesis. Seamless                   [9]   A. Ledeczi, M. Maroti, A. Bakay, G. Karsai, J. Garrett, C. Thomason,
integration of these services are enablers for the safe use of                    G. Nordstrom, J. Sprinkle, and P. Volgyesi, “The generic modeling en-
domain specific modeling language (DSML) technologies                             vironment,” in Workshop on Intelligent Signal Processing, Budapest,
                                                                                  Hungary, vol. 17, 2001, p. 1.
in application domains, where heterogeneous and changing
modeling domains need to be integrated and evolved.                         [10] E. K. Jackson and W. Schulte, “Formula 2.0: A language for formal
                                                                                 specifications,” in Unifying Theories of Programming and Formal
    As described in the paper, the current level of integration                  Engineering Methods. Springer, 2013, pp. 156–206.
focused on automated and fully synchronized generation                      [11] E. K. Jackson, T. Levendovszky, and D. Balasubramanian, “Reason-
of Formula representation from WebGME models. In the                             ing about metamodeling with formal specifications and automatic
next step we will address the opposite direction: the auto-                      proofs,” in International Conference on Model Driven Engineering
generation of WebGME plugins from Formula specifications                         Languages and Systems. Springer, 2011, pp. 653–667.
for constraint checking and model transformation. The pri-                  [12] E. K. Jackson, W. Schulte, and N. Bjørner, “Detecting specification
mary goal is to preserve the advantages of the Formula-                          errors in declarative languages with constraints,” in Model Driven
based declarative specification of model transformations,                        Engineering Languages and Systems - 15th International Conference,
                                                                                 MODELS 2012, Innsbruck, Austria, September 30-October 5, 2012.
such as conciseness, semantic precision and preservation of                      Proceedings, 2012, pp. 399–414.
domain invariants after the transformation - but without los-
                                                                            [13] E. K. Jackson and J. Sztipanovits, “Constructive techniques for meta-
ing the efficiency of an imperative language implementation,                     and model-level reasoning,” in MoDELS, vol. 7. Springer, 2007, pp.
which is particularly important for large models.                                405–419.
                                                                            [14] L. de Moura and N. Bjørner, Z3: An Efficient SMT Solver. Berlin,
                                                                                 Heidelberg: Springer Berlin Heidelberg, 2008, pp. 337–340.
References
                                                                            [15] M. Richters and M. Gogolla, “On formalizing the uml object con-
                                                                                 straint language ocl,” in International Conference on Conceptual
[1]   J. Sztipanovits, T. Bapty, S. Neema, X. Koutsoukos, and E. Jackson,        Modeling. Springer, 1998, pp. 449–464.
      “Design tool chain for cyber-physical systems: Lessons learned,” in   [16] B. Broll and Á. Lédeczi, “Extensible visual constraint language,” in
      Proceedings of DAC15. IEEE, 2015, pp. 1–8.                                 Proceedings of the Workshop on Domain-Specific Modeling. ACM,
                                                                                 2015, pp. 63–70.