MoDELS ’08: Domain-Specific Modeling
I’ve of course attended the session on Domain-Specific Modeling @ MoDELS ’08. Three really interesting (and different) presentations of papers were given. The first one about a Domain-Specific Language (DSL) for workflows, the second one was about a graphical DSL for train signaling, and last but not least, a more infrastructural paper was presented focussing on the problems around multi-modeling.
WebWorkFlow
The WebWorkFlow DSL was presented by Zef Hemel from the Delft University of Technology. This Object-Oriented Workflow Modeling Language for Web Applications is an extension of WebDSL. Why another workflow language besides BPEL, YAWL or Petri Nets? According to Zef these languages have the following drawbacks:
- They do not describe full applications.
- They are separated languages, and thus not nicely integrated with other languages needed to model a full application.
- They ignore the user interface aspects.
- It’s all or nothing.
The 3 main design principles of WebWorkflow are:
- Linguistic integration.
- Abstraction layers (from concise to more verbose: process expressions, procedural workflow, WebDSL).
- Full application generation.
WebDSL already contains a data model, UI and access control module, which are all specified using textual DSLs. On top of that the WebWorkFlow module has been build.
Zef demonstrated how to define a workflow using the WebWorkFlow language. I’m not going into details, I think the documentation of WebDSL will be updated soon.
WebWorkFlow supports quite a lot of the workflow patterns defined in literature.
TCL: Train Control Language
Andreas Svendsen did show a nice application of Domain-Specific Languages. He, his collegues, and some domain experts did define a graphical language for train controlling. The language includes line segments, signals, stillers, switches, track circuits, etc. and is defined using an EMF meta model. The graphical editor was constructed using GMF. Using MOFscript source code for PLC’s is generated.
Andreas states the following experiences:
- It is import to involve domain experts in the process and to exchange domain knowlegde.
- It is quite a challenge to transform models into an already existing framework.
- Some manual code updates were needed in specific situations.
- They still make use of the V-model, because the system has safety critical constraints.
In their future work their going to focus on variability modeling for creating variations on values and structure. He refers to the paper Adding Standardized Variability to Domain Specific Language I didn’t have time to read this paper, so you have to do it with the link 😉
NAOMI: An experimental platform for Multi-Modeling
Edward Jones from Lockheed Martin Advanced Technology Labratories did show NAOMI, a platform for Multi-Modeling. Multi-Modeling is about having different DSLs for different system aspects. Edward identifies the following key challenges in multi-modeling:
- Multi-model interdependencies (you’ll need change propagation (see point 3 of the linked article)).
- Multi-model consistency (how to identify inconsistencies and how to fix them? How to allow independent simultanous model changes with distributed teams?).
- Semantic precision of inter-model data exchange (do DSMLs need to share the same meta model?)
Edward demonstrated NAOMI, which in principle provides an infrastructure for managing multiple models with interfaces among them. Some addressed challenges:
- Consistency management (using 4 types of consistency: attribute, constraint, model attributes and project integrity).
- Change propagation (orchestrated and distributed).
- Version control system (multi-model repository management, multi-model time machine, etc.).
- Multi-model visualization (dependency graphs, etc.).
I did like his approach in explicitly focusing on the interfaces between DSLs and solving the multi-model issues. I also liked his example, showing the possibilities of multi-model management. He did show how a project budget model (in Excel) uses information from technical models as input, all managed by NAOMI. Of course the real advantage is in other scenario’s, but it was just a funny example which I didn’t expect.
They’ve planned to make NAOMI open source… I’m waiting…