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.
Some issues:
- 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.
3 Comments Added
Join DiscussionThanks for mentioning our work. If you’re interested in multimodeling, you might want to check out SmartEMF – http://www.itu.dk/people/hessellund/smartemf/
Cheers,
Anders
I am curious, what was the problem that the first presentation (about Metamodel Components and Composition) tried to solve. Johan, can you comment on it?
Cheers,
Andriy
Hi Andriy,
I’ll just quote from the paper they presented:
"The Meta Object Facility (MOF) is one of the most frequently used languages for the definition of a DSL’s abstract syntax. However, its lack of sophisticated modularization concepts in comparison to GPLs such as Ada or component-oriented ADLs makes it hard to maintain a large number of complex metamodels. MOF 2.0 packages can be used to a certain extent to define, refine, and compose language descriptions, but do not offer appropriate support for information hiding as well as for the specification of parametrizable metamodeling components."
You can find the paper here: http://www.springerlink.com/content/l7754382l6r2467x/
Regards,
Johan