Metamodels for low-code and no-code platforms
By Sofya Donskaya (sadonskaya@edu.hse.ru)
Introduction
Nowadays, modeling of a software or a system is a vital part of its development. It provides a better understanding of how the system is supposed to work by showing different perspectives also known as multiple views. [1] A good example of model usage would be a 4+1 view model which represents principles of the system’s work in several static and dynamic planes such as logical, process, development, physical views, and scenarios. [2] Such approach embodies fundamental concepts of model driven development (MDD) that allows to use models to specify what functions and architecture system needs to acquire. The supporting infrastructure of MDD is the four-layer infrastructure consisting of user data, user concepts, UML concepts and MOF, that stand for unified modeling language and meta-object facility accordingly. [3] MOF is an Object Management Group standard for model-driven engineering, which abstract syntax is defined as a class diagram, and UML is one of the most common used metamodels based on the MOF. But what do metamodels and metamodeling mean? Metamodel is defined as a model of a well-defined language or a model of the models. [4] And metamodeling is the practice of using such model to describe another model as an instance. [5] Metamodeling defines the structure, semantics’ description, and constraints for a family of models. It could be applied in the development process of different types of systems including contemporary low-code and no-code (LC/NC) platforms. Such platforms allow anyone to build software through graphical user interfaces and declarative programming. LC/NC development platforms provide tools for designing applications or systems, together with their required inputs, outputs and business logic. [6] And as well as for other software applications, development of LC/NC platforms is supposed to have a qualitative foundation of modeling and metamodeling. That is why this essay would rise a topic of metamodels for low-code and no-code platforms.
The LC/NC popularity
Most of industrial projects in IT rely on analyzing and designing the system by using models, that could decrease a level of complexity, and concepts, which are relative to the domain. However, despite all benefits of such model-oriented approach, the more complex system is, the more difficult it is to create a mechanism that would allow developers to implement all the business’s needs and transform a metamodel of models’ management and exchange to supported programming technologies. That is why, the popularity of low-code and no-code platforms has gradually grown recently. Development of such platforms highly relies on the automation, analysis, and abstraction possibilities supported by the literate usage and adaptation of modeling and metamodeling. [7] In model-driven low-code and no-code applications the model itself is executable in the runtime and there is no need for code realization. [8] In this case a metamodel presents models of prebuilt components, which needed to be invoked in the time of their need.
Metamodels for LC/NC platforms
Going more into details with help of the domain-specific modeling language for implementation of low-code and no-code platforms form-based applications, a metamodel would present Application consisting of a number of Entity and Form elements, where each Entity can be composed of Properties where every Field is assigned to at most one Property. For implementation Entity and Property elements are used for creating a database schema, back-end CRUD code and web services. Moreover, Form and Field elements realize the front-end creation. [9] Generally, the process of an execution engine handling large models is really time- and memory-consuming. One of the solutions to this problem is presented in the following sequence: firstly, a model management program is delivered as input to a static analyzer, which can extract relevant information with help of an abstract syntax graph for execution planning and delivery of an effective metamodel for each model involved in the program (with understanding which parts of the models are needed in different time slots and how long the information is supposed to be held in the memory) as output; secondly, the effective metamodel and the corresponding model are delivered to the execution engine as input for further execution. [9] Simultaneously, in this paradigm the main data metamodel for the whole platform is mapped to view-specific metamodels that correspond to a design-time view, which conforms to the static analysis of the data model before the deployment, and to a run-time view, which conforms to the run-time analysis of the data model after its deployment, so that only necessary data related to a specific view is shown. [10]
A BPMN metamodel for LC/NC platforms
Besides that, it is important to remember that the popularity of low-code and no-code platforms is the highest in business environment, where the automation of business processes is crucial. Due to this fact such platforms tend to use such technologies as, for example, BPM Suite to realize the processing approach. OMG Business Process Model and Notation (BPMN) is a standard for modeling processes due to its advantages of a graphical language, simplicity, standardization, and execution processes’ support. An example of this approach’s application would be BPMN 2.0. that has a metamodel for activities similar to the UML metamodel for activity diagrams with the following classes: Activity, Diagram, Lane, Pool, Process, Subprocess and Task, where the first one is the main class of such metamodel view, which could be a single Task or a Subprocess (which is also a business Process). Processes are composed of a set of Activities and modeled in a Pool, where Activities locate in a Lane. Overall, Diagram consists of Pools and Lanes. In order to develop time rules within business process management object constraint language (OCL) is used, and its expressions are constraints over classes of the corresponding BPMN metamodel. [11] Such metamodel together with OCL constraints provide low-code and no-code platforms with an opportunity to fulfil business’s needs.
Conclusion
Taking everything into consideration, it could be concluded that low-code and no-code platforms are a new level of software system serving the users’ need and the best example of the metamodel and model necessity since they are core components of such platforms development. There are different approaches to metamodeling for low-code and no-code platform, but all of them are implemented according to MDD principles which simplify complexity with help of abstraction and automation of processes. Finally, within this concept the models are executable in runtime instead of being built into code that makes a great impact on time consumption and quality of the product.
References
- Hassan Gomaa - Software Modeling and Design UML, Use Cases, Patterns, and Software Architectures , pp. 69 - 70 - George Mason University, Virginia.
- Philippe Kruchten - Architectural Blueprints—The “4+1” View, Model of Software Architecture, pp. 42-50 - IEEE Software 12 (6).
- Colin Atkinson, Thomas Kühne - Model-Driven Development: A Metamodeling Foundation - University of Mannheim, Darmstadt University of Technology.
- Alberto Sangiovanni Vincentelli, Guang Yang, Sandeep Kumar Shukla, Deepak Mathaikutty, Janos Sztipanovits - Metamodeling: An Emerging Representation Paradigm for System-Level Design, pp. 54-69 - IEEE Design and Test of Computers 26(3).
- Metamodeling. URL: https://www.sciencedirect.com/topics/computer-science/metamodeling
- Greg Smith, Michael Papadopoulos, Joshua Sanz, Michael Grech, Heather Norris - Unleashing innovation using low code/no code
- Apurvanand Sahay, Arsene Indamutsa, Davide Di Ruscio, Alfonso Pierantonio - Supporting the understanding and comparison of low-code development platforms - Conference: 2020 46th Euromicro Conference on Software Engineering and Advanced Applications (SEAA)
- Johan den Haan - Low-Code Principle #1: Model-Driven Development, The Most Important Concept in Low-Code. URL: https://www.mendix.com/blog/low-code-principle-1-model-driven-development/
- Sorour Jahanbin, Dimitris Kolovos, Simos Gerasimou - Intelligent run-time partitioning of low-code system models - ACM/IEEE 23rd International Conference on Model Driven Engineering Languages and Systems, Oct 2020, Virtual Event, Canada. pp.1-5.
- Apurvanand Sahay, Davide Di Ruscio, Alfonso Pierantonio - Understanding the role of model transformation compositions in low-code development platforms - Conference: MODELS 2020 LowCode WorkshopAt: Virtual
- C.Arevaloa, M.J.Escalona, I.Ramos, M.Domínguez-Muñoz - A metamodel to integrate business processes time perspective in BPMN 2.0 - Information and Software Technology, Volume 77, Pages 17-33