Dynamic Multi-Layer Algebra (DMLA)

Nowadays, there is a great need for solutions capable of flexibly handling the uncertainty of the initial development phases and the constantly changing requirements, but at the same time providing a accurate, reliable, and efficient methodology to produce products. Designing at a high abstraction level can grant the flexibility needed, while classic coding/implementation methods are efficient at covering the small details. In practical cases, however, it is difficult to separate the two. Our mission is to create a new development methodology than can address this challenge. Dynamic modeling allows us to use the most appropriate abstraction level for each component without losing the ability to handle them as a whole unit. In practice this means that it is possible to connect highly detailed, implementation fragments and foggy, sketchy, initial visions of conceptual ideas. Refinement of the levels of abstraction of components can be applied separately. During refinement, the approach automatically enforces validation rules already set both at the level of components and the overall system. An important advantage of the approach is that design decisions are not represented by branches at the source management system, but as living parts of the system. We can always return to a decision point and continue down another path from there. Another advantage of the approach is that is can efficiently cover the communication of two or more systems by providing a common semantic model over them. Specialties of the systems can be modeled as refinement of the common abstract base and thus transformation rules are easy to implement. The approach is ideal for general-purpose frameworks that run and evolve continuously, without restart.

From a technical point of view, the approach consists of a language (D#), an interpreter based on GraalVM and Truffle and a Language Server Protocol (LSP) implementation. The LSP implementation enables to interact models from Visual Studio Code.

From the theoretical point of view, the approach is based on dynamic multi-layer metamodeling, which is able to describe not only the structure of the models, but their behavior and validation as well. Dynamic refers to the fact that behavior, mechanisms, and validation are all modeled. This also allows to create operations capable of changing (e.g. refactor) the implementation of others. DMLA consists of two major parts: The first part (the Core) defines the modeling structure, namely an abstract state machine and a set of connected functions that specify the transition logic between the states. The second part (the Bootstrap) is an initial set of modeling constructs, built-in model elements (e.g. built-in types) that are necessary to adapt the abstract modeling structure to practical applications. The Bootstrap also contains the formal definition of the precise instantiation mechanism via reified validation constructs. The two parts have been intentionally kept separate since the algebraic part is structurally self-contained and isolated from the peculiarities of the different Bootstraps. Hence, any particular Bootstrap genuinely seeds the concrete meta-modeling capabilities derived from the generic DMLA. This may be considered to be one of its most novel aspects when compared to the unlimited and universal modeling capability other approaches, like the potency notion provides at all meta-levels. In effect, the proper selection of Bootstrap entities fully determines the expressibility of DMLA's modeling capabilities available on lower meta-levels.

Contact: dmla (at) aut.bme.hu

Multi-level modeling playground (MLMP)

 

MLMP is a validating, modular and general multi-level modeling playground built upon DMLA. Using MLMP, one can specify the underlying structure and semantics of multi-level constructs, like the different variants of the potency notion. This makes it possible to experiment with novel multi-level ideas without having to build the underlying tool chain. Notion specification is governed by our high level, textual domain-specific language, the Multi-Level Specification Language (MLSL). MLMP also supports the creation of domain models on which existing construct specifications can be tested and evaluated in practice.

The specification of several multi-level constructs along with the brief syntax definition of MLSL can be found at: https://github.com/bmeaut/MLMP 

Presentations

 


Bootstraps and examples:

  

Papers 

  1. Z. Theisz and G. Mezei, "Towards a novel meta-modeling approach for dynamic multi-level instantiation" in Automation and Applied Computer Science Workshop, Budapest, Hungary, 2015. (aacs2015_TheiszMezei)
  2. Z. Theisz and G. Mezei, "An Algebraic Instantiation Technique Illustrated by Multilevel Design Patterns" in MULTI@MoDELS, Ottawa, Canada, 2015. (http://ceur-ws.org/Vol-1505/p6.pdf)
  3. Z. Theisz and G. Mezei, "Multi-level Dynamic Instantiation for Resolving Node-edge Dichotomy" in Proceedings of the 4th International Conference on Model-Driven Engineering and Software Development, Rome, Italy, 2016. 
  4. D. Urbán, Z. Theisz and G. Mezei, "Formalism for Static Aspects of Dynamic Metamodeling" Periodica Polytechnica Electrical Engineering and Computer Science, vol. 61, no. 1, pp. 34-47, 2017. (https://pp.bme.hu/eecs/article/view/9547)
  5. D. Urban, Z. Theisz and G. Mezei, "Self-describing Operations for Multi-level Meta-modeling", MODELSWARD 2018, Madeira, Portugal (http://www.scitepress.org/Papers/2018/66561/66561.pdf)
  6. G. Mezei, Z. Theisz, D. Urbán, S. Bácsi: The bicycle challenge in DMLA, where validation means correct modeling. MODELS Workshops 2018: 643-652 (http://ceur-ws.org/Vol-2245/multi_paper_2.pdf)
  7. G. Mezei, Z. Theisz, D. Urbán, S. Bácsi, F. A. Somogyi, D. Palatinszky: "A bootstrap for self-describing, self-validating multi-layer metamodeling" in Automation and Applied Computer Science Workshop, Budapest, Hungary, 2019. (AACS19_paper_4.pdf)
  8. Z. Theisz, S. Bácsi, G. Mezei, F. A. Somogyi, D. Palatinszky: "By multi-layer to multi-level modeling" in Multi@Models, München, Germany, 2019. (Multi2019_TNumber)
  9. F. A. Somogyi, G. Mezei, D. Urbán, Z. Theiss, S. Bácsi and D. Palatinszky, "Multi-level Modeling with DMLA - A Contribution to the MULTI Process Challenge," 2019 ACM/IEEE 22nd International Conference on Model Driven Engineering Languages and Systems Companion (MODELS-C), Munich, Germany, 2019, pp. 119-127, doi: 10.1109/MODELS-C.2019.00022
  10. G. Mezei, F. A. Somogyi, Z. Theisz, D. Urbán and S. Bácsi: "Towards Mainstream Multi-level Meta-modeling", Proceedings of the 7th International Conference on Model-Driven Engineering and Software Development (MODELSWARD 2019), Setúbal, Portugália: SciTePress, (2019) pp. 481-488., doi: 10.5220/0007580404810488
  11. G. Mezei, F. A. Somogyi, Z. Theisz, D. Palatinszky and S. Bácsi: “Towards Flexible, Rigorous Refinement in Metamodeling.” 2019 ACM/IEEE 22nd International Conference on Model Driven Engineering Languages and Systems Companion (MODELS-C) (2019): 455-459., doi: 10.1109/MODELS-C.2019.0007
  12. F. A. Somogyi, G. Mezei, D. Urbán, Z. Theisz and S. Bácsi , "Challenges in the field of multi-level modeling" in Automation and Applied Computer Science Workshop, Budapest, Hungary, 2019., pp. 48-59
  13. F. A. Somogyi, G. Mezei, Z. Theisz, S. Bácsi and D. Palatinszky, "Multi-level Modeling without Classical Modeling Facilities", Proceedings of the 8th International Conference on Model-Driven Engineering and Software Development - Volume 1: MODELSWARD 2020, pp. 393-400, 2020 , Valletta, Malta, doi: 10.5220/0008973503930400
  14. G. Mezei, M. Hidvégi and N. Somogyi , "DMLA 3.0: Towards an Industrial Multi-Layer Modeling Framework", in Automation and Applied Computer Science Workshop, Budapest, Hungary, 2021., (AACS2021_DMLA3)