CM3
Metamodel-based, domain-specific adjustment of UML tools
Initial situation
The main problem in the field of domain-specific modeling is the missing support through the modeling tool. Even though UML offers possibilities for the extension of the UML profile by domain-specific information (stereotypes and tagged values), the support fom the modeling tools for the use of these extensions is only rudimental. Furthermore, the extensions are not suitable for storing structured information, like an attribute-mapping in the model, for example. The use of the extensions becomes extremely uncomfortable and error-prone, as there is no validation in the UML tool. Errors in the model, which might only become noticed in later project phases, would demand higher efforts for debugging. Apart from time-consuming coachings for new employees, the acceptance of the modeling language will be rather low.
Solution approach

The three pillars of CM3: Tool adaption – integration – validation
Tool adaption
The individual adaption of UML tools with comfortable dialogs for the input of tagged values facilitates the modeling, and helps to avoid errors even before input. Types and value ranges can already be validated during the input with different fields for it (e.g. list boxes, check boxes etc.). These adaptions are not programed via CM3, but automatically generated on the basis of metamodels. In addition, further dialogs for special applications can be generated (like an attribute-mapping for example), maintaining information at a certain place, which can be stored in the model with different model elements. Repeating modeling steps can be automated by “wizards“, where the required information can be requested. The necessary model elements will be generated automatically after the input of values. Due to context-sensitive helps, the domain-specific modeling is easily accessible even for beginners.


Example: Comfortable dialog for the mapping of attributes and the related metamodel part
Integration
The integration of UML modeling tools, development environment and generator accelerates the development and makes interrelationships visible. The effects of modeling can be easily understood, and the generation process becomes transparent for the developer. The generation can be activated by the integration of modeling tool and generator, without leaving the tool. Error messages can be advised in the modeling tool and linked with the model elements.
Validation
The validation recognizes errors in the model already before generation and avoids extensive debugging. Simple validation rules, like the correct use of domain-specific language elements, or the validation of mandatory fields and types, derive automatically from the metamodel. Moreover, complex requirements can be validated. The definition of these requirements is based on Java.
CM3 - Validating your models