I’ve attended the session on Domain-Specific Modeling @ MoDELS ‘08. It’s nice to see the latest scientific efforts on this subject. It’s even nicer to see the similarities between these efforts and the features of the Mendix technology.
In short the sessions did emphasize the importance of language integration (e.g. multiple connected DSLs describing a full application) and the management of this integration, so-called multi-model management.
At Mendix we have already been working for more than three years on this topic, which has resulted in a modelling environment supporting multiple DSLs describing different system aspects. Key elements of our multi-model approach are:
- Specific DSLs: little languages, targeted at one system aspect (i.e. data, GUI, processes, business rules, security, etc.) and where possible exposed in such a way that the DSL can be understood by business engineers/analysts.
- DSL interfaces: each DSL can publish (part of) its concepts and can use concepts from other DSLs. For example in the Form DSL (describing the GUI) elements can be linked to elements from the Business Object DSL. Another example is the Microflow DSL which is linked to data elements, business rules and forms.
- Change propagation: changes in one DSL have to be propagated to the DSLs using concepts from the DSL ‘under-change’.
- Consistency checking: because all DSLs are fully integrated in one modelling environment, we can identify inconsistencies and we can either fix them automatically or notify the user.
For more information on our DSLs and the supporting tooling see our technology overview. For some background theory of MDE and DSL check out DSL and MDE, necessary assets for Model-Driven Approaches.