Diego
Which CTP have you been using. The V1 release, due very soon now, has a completed Dsl Designer which significantly improves the experience of defining a DSL (a single .dsl file to manage, no XML to edit, and tons of validation to catch errors and help you correct them).
As to your specific question, here are a few benefits:
1) Not all model elements are associated with diagram elements - some only appear in the explorer. You do this for elements that carry detail which it doesn't make sense to visualize.
2) Sometimes the same kind of drawing element may be used to visualize more than one kind of element, or an element may be visualized by different drawing elements in different contexts. Making mappings explicit makes this easier to define. The Dsl Designer (which itself is built using DSL Tools) has cases of this.
3) The domain model aspect of a dsl definition fulfills other purposes than supporting the drawing of diagrams. It governs the way in which models are serialized as xml, it defines the API used to access models from e.g. code generation templates, it defines the structure of the explorer. We have found that this can lead to conflicting demands on the structure of the domain model, and providing rich and flexible facilities to define the mapping to diagrams, to explorer nodes and to XML, makes it easier to accomodate all demands.
4) With (2) & (3), there is a danger that the simple and common cases then become harder to define. We've tried to mitigate this through the dsl designer, which makes it relatively easy to create, for example, simple shape mappings, but then still allows you to exploit the richness and flexibility providied. You can also write code to further customize the mappings.
Hope that clarifies.
Stuart |