MoDELS ’08: Metamodeling and Modularity
In the metamodeling an modularity session I’ve visited two presentations. The first one about Metamodel Components and Composition. The second one about Interfaces and Metainterfaces for Models and Metamodels.
Metamodel Components and Composition
The essence of the first presentation was the creation of interfaces between MOF metamodels. Using this technique metamodel components can be created using elements of each others. This enables the use of metamodel-driven development on a much larger scale.
- How to handle transformations? If components have their own transformations, the transformations of the combined components can be significantly different.
- Semantics are important, structural composition only isn’t enough.
Interfaces and Metainterfaces for Models and Metamodels
At the first day of MoDELS ’08 the subject of multi-modeling was already touched. This presentation was also focused on this subject, but from a whole different angle. The research group analyzed two software projects, one of them was Apache Open for Business (OFBiz) which consist of 17 different XML based DSLs. They came up with the following observations:
- Extensive use of soft references (links between elements of different DSLs).
- Developers report:
- Inconsistency among XML nodes.
- Hard to evolve without errors.
- No proper tool support.
The researchers came up with the idea to define explicit interfaces between the XML DSLs. They did mine the existing systems to automatically detect the soft references. Based on that information they automatically generated the interfaces between the DSLs. The interfaces are defined using XPath expressions.
The advantage of this approach is that interfaces can be detected in an automatic way. Once detected the interfaces are explicit and can be used in evolving the system.