TU Wien logo BIG group logo

xMOF

xMOF (eXecutable MOF) is a metamodeling language integrating fUML with MOF which enables the specification of the behavioral semantics of domain-specific modeling languages (DSML).
With xMOF the behavioral semantics of a DSML is specified by introducing operations in the DSML’s metamodel and by providing an implementation of these operations using the fUML action language. These implementations define the behavior of the DSML. The usage of fUML for specifying the behavioral semantics enables the execution of models conforming to the DSML by leveraging the fUML virtual machine.

Methodology

For developing executable DSMLs using xMOF we elaborated a methodology fostering the separation of the specification of the abstract syntax, the behavioral semantics, and additional data that is needed for the execution of domain-specific models.
We also developed an EMF-based implementation of this methodology which enables the definition of executable DSMLs using xMOF as well as the execution of domain-specific models according to the semantics specification of the DSML.

Figure 1 depicts our tool-supported methodology. In the fi rst step language design the DSML is developed by specifying its abstract syntax by means of an Ecore-based metamodel as well as its behavioral semantics using fUML resulting in an xMOF-based configuration of the DSML. In the model creation step, a model of the before developed DSML is created. In order to enable the execution of the created model, the semantics speci fication of the DSML has to be instantiated for this specifi c model resulting in an xMOF-based model of the domain-specific model. This is done in the model execution preparation step. For providing the result of the model execution to the modeler, we make use of the EMF Profi les mechanism. Thus, a runtime profi le has to be generated once for a semantics specifi cation in the execution infrastructure generation step. In the last step model execution, the domain-specific model is fi nally executed according to the semantics specifi cation leveraging the fUML virtual machine and runtime information about the model execution is provided as feedback to the modeler in the form of an application of the generated runtime profile on the executed domain-specific model.

xMOF methodology
Figure 1: xMOF methodology

Tool Demo

The following screencasts demonstrate the xMOF tool support implemented for Eclipse.

Language Design and Execution Infrastructure Generation
This screencast demonstrates the following tasks.

  1. Generation of xMOF-based configuration from Ecore-based metamodel
  2. Specification of the semantics in xMOF-based configuration
  3. Generation of runtime profile from xMOF-based configuration

Model Creation and Model Execution Preparation
This screencast shows the following tasks.

  1. Creation of a domain-specific model
  2. Instantiation of the xMOF initialization classes for defining additional input for the execution of the domain-specific model

Model Execution
This screencast shows the following tasks.

  1. Execution of a domain-specific model
  2. Loading of the stereotype application providing the result of the model execution

Resources

Case Studies

We carried out case studies were we used xMOF for developing three executable DSML and executed models conforming to these DSMLs. The following DSMLs were considered in the case studies.

Publications

  • [DOI] T. Mayerhofer, P. Langer, M. Wimmer, and G. Kappel, “xMOF: Executable DSMLs Based on fUML,” in Proceedings of the 6th international conference on software language engineering (sle’13), 2013, p. 56–75.
    [Bibtex]
    @inproceedings{sle2013,
    year =  {2013},
    isbn =  {978-3-319-02653-4},
    booktitle  =  {Proceedings of the 6th International Conference on Software Language Engineering (SLE'13)},
    volume =  {8225},
    series =  {Lecture Notes in Computer Science},
    doi =  {10.1007/978-3-319-02654-1_4},
    title =  {{xMOF: Executable DSMLs Based on fUML}},
    url =  {http://dx.doi.org/10.1007/978-3-319-02654-1_4},
    publisher  =  {Springer},
    author =  {Mayerhofer, Tanja and Langer, Philip and Wimmer, Manuel and Kappel, Gerti},
    pages =  {56--75}
    }
  • T. Mayerhofer, “Using fUML as Semantics Specification Language in Model Driven Engineering,” in Joint proceedings of models’13 invited talks, demonstration session, poster session, and ACM student research competition co-located with the 16th international conference on model driven engineering languages and systems (models’13), 2013, p. 87–93.
    [Bibtex]
    @inproceedings{modelsACMSRC2013,
    author = {Tanja Mayerhofer},
    title = {{Using fUML as Semantics Specification Language in Model Driven Engineering}},
    booktitle = {Joint Proceedings of MODELS'13 Invited Talks, Demonstration Session,
    Poster Session, and {ACM} Student Research Competition co-located
    with the 16th International Conference on Model Driven Engineering
    Languages and Systems (MODELS'13)},
    pages = {87--93},
    year = {2013},
    series = {{CEUR} Workshop Proceedings},
    volume = {1115},
    publisher = {CEUR-WS.org},
    keywords = {workshop},
    url = {http://ceur-ws.org/Vol-1115/src2.pdf},
    }
  • T. Mayerhofer, P. Langer, and M. Wimmer, “xMOF: A Semantics Specification Language for Metamodeling,” in Joint proceedings of invited talks, demonstration session, poster session, and acm student research competition co-located with the 16th international conference on model driven engineering languages and systems (models’13), 2013, p. 46–50.
    [Bibtex]
    @inproceedings{modelsdemo2013,
    author = {Mayerhofer, Tanja and Langer, Philip and Wimmer, Manuel},
    title = {{xMOF: A Semantics Specification Language for Metamodeling}},
    booktitle = {Joint Proceedings of Invited Talks, Demonstration Session, Poster Session, and ACM Student Research Competition co-located with the 16th International Conference on Model Driven Engineering Languages and Systems (MODELS'13)},
    year = {2013},
    pages = {46--50},
    publisher = {CEUR-WS.org},
    volume = {1115},
    url = {http://ceur-ws.org/Vol-1115/demo9.pdf},
    series = {{CEUR} Workshop Proceedings},
    keywords = {workshop}
    }
  • [DOI] T. Mayerhofer, P. Langer, and G. Kappel, “A Runtime Model for fUML,” in Proceedings of the 7th workshop on models at runtime (mrt) co-located with the 15th international conference on model driven engineering languages and systems (models’12), 2012, p. 53–58.
    [Bibtex]
    @inproceedings{mrt2012,
    author = {Mayerhofer, Tanja and Langer, Philip and Kappel, Gerti},
    title = {{A Runtime Model for fUML}},
    booktitle = {Proceedings of the 7th Workshop on Models at RunTime (MRT) co-located with the 15th International Conference on Model Driven Engineering Languages and Systems (MODELS'12)},
    year = {2012},
    pages = {53--58},
    publisher = {ACM},
    keywords  = {workshop},
    doi = {10.1145/2422518.2422527},
    }
  • [DOI] T. Mayerhofer, P. Langer, and M. Wimmer, “Towards xMOF: Executable DSMLs Based on fUML,” in Proceedings of the 12th workshop on domain-specific modeling (dsm) co-located with the 3rd conference on systems, programming, languages and applications: software for humanity (splash’12), 2012, p. 1–6.
    [Bibtex]
    @inproceedings{dsm2012,
    author = {Mayerhofer, Tanja and Langer, Philip and Wimmer, Manuel},
    title = {Towards {xMOF}: {E}xecutable {DSMLs} {B}ased on {fUML}},
    booktitle = {Proceedings of the 12th Workshop on Domain-Specific Modeling (DSM) co-located with the 3rd Conference on Systems, Programming, Languages and Applications: Software for Humanity (SPLASH'12)},
    year = {2012},
    pages = {1--6},
    publisher = {ACM},
    keywords = {workshop},
    doi={10.1007/978-3-319-02654-1_4},
    }