The Model Workbench
The Model Workbench is a web-based platform for the definition, manipulation, and usage of modelling languages. Owing to the underlying web technologies it can be used on any device (especially PCs, Macs and tablets) that provide a recent browser. The platform offers a plugin mechanism similar to modern IDEs (Eclipse, Visual Studio, IntelliJ IDEA, etc.), i.e. the infrastructure is designed for arbitrary extensions. Since modelling is the focus of the Model Workbench, it also supplies a comprehensive API for processing and persisting (meta) models.
Based on this API, we have currently developed two integrated editors for the Model Workbench: the textual (projectional) Editor (Model Evolution) allows the definition of arbitrary meta model hierarchies and is hence primarily designed for IT and modelling experts. The graphical editor (Model Designer), however, can and should be used by domain specialists who have no in-depth modelling expertise. It enables rapid prototyping of new graphical modelling languages as well as the use of existing ones.
Model Workbench Functionality
Architecture
The Model Workbench follows the principles of a classic client-server architecture. The base of the server component is a model repository implemented on top of the graph database Neo4j. Since many calculations traverse the model graph they leverage from this graph representation extensively. For the generation, manipulation and deletion of model elements so called operators are available. These base operators again can be composed to complex operators gaining effortless all system-specific features like transaction management, undo/redo support and model persistence. At the top of the architecture, the Web clients represent the HTML5-based user interface. They access the server provided operators via a ReST API that is also extensible for specific usage.
Model Design
Model Design means the creation, manipulation and usage of models and meta models by a domain specialist who does not need to be a (meta) modelling expert. The declared goal is developing a system, which supports a holistic modelling workflow for designing and using Domain-Specific Modelling Languages (DSMLs). Models represent the central parts of this workflow.
Defining a DSML is not a trivial task. It requires to "think ahead" the concepts of the particular domain and to specify them in form of meta models. Not before finishing this process, it is possible to build models which instantiate and correlate concepts of the just defined language. Prominent examples for frameworks or systems enabling this kind of DSML development are the Graphical Modelling Framework (GMF), Xtext and MetaEdit+.
Owing to the complexity of the previously described procedure, we implement a new, innovative method for developing DSMLs based on freely built example models. Using the graphical Model Designer (an integrated editor of the Model Workbench), freeform example diagrams can be created (similar to tools like Microsoft Visio or Dia) that represent the base for inducing a graphical DSML in a (semi-)automatic way. This DSML consists of an abstract syntax, a concrete syntax and the mapping between both. Beyond graphical modelling languages, we also support the development of textual DSMLs relying on the same principle. For this purpose, a separate textual Model Designer is offered. Based upon an induced modelling language, new models can be created using the same editor. Thereby, the constraints given by the abstract syntax are always obeyed. We call this kind of modelling "stringent mode". If an existing language should by extended by further constructs or available ones should be modified, it still can be done by switching to the "free mode". Finally, the performed changes can be incrementally incorporated into the underlying DSML by an afresh (semi-)automatic induction.
Model Evolution
The development of a domain-specific modelling language (DSML) is a process driven by the changes in the understanding of the domain and the domain itself. Such changes causes an adaption of existing models describing the domain since they were created in the old language. This adaption again is often done manually which is time-consuming and error-prone.
The language quality is strongly coupled with the conciseness, readability and maintainability of the meta models defining it. That's why design or language patterns (e.g. inheritance) are often used to cope with these aspects. Unfortunately, current modelling systems like EMF do not provide an adequate support for such patterns.
The Model Evolution Framework addresses this challenge and support users with the help of so-called operators in evolving meta models. During the execution of an operator all affected models are adjusted accodlingly to the new modelling language. The main focus of this framework is the introduction of language patterns (e.g. Powertype, Deep Instantiation) in an existing meta model.