Model to Model transformation (M2M) technology forms an integral part of model based software development. This dissertation focuses on the graphical rule based transformation language, known as M 2 TOS (German: Modell zu Modell Transformationssprache) although the approach could be applied to other transformation languages as well.
A typical transformation development process begins with the specification of requirements of the concepts to be transformed from the source to the target domains. Once the requirements have been specified, the transformation rules are created for each requirement, which are then executed by the transformer. The number of transformation rules has increased tremendously over the years. A typical transformation may contain anywhere between hundred and eight hundred rules. This is due to the fact the requirement only specifies which artefacts need to be transformed from the source to the target domains but not the other complexities such as 1) what are the variants for a given requirement? 2) Where should the elements be placed in terms of their composite hierarchy in the target model? All this is taken care of in the rules resulting in a design gap between the requirements and the rules. This is because the requirements are too abstract and the rules are too specific. There is no layer in between that abstracts the information contained in the various rules and presents it in a concise manner. In order to close the design gap mentioned earlier, a new modelling layer known as the concept layer has been developed that maps the source and the target concepts without going into implementation details. Every concept also links the requirements to the rules that implement them thus providing complete traceability among the various layers.
A large number of rules have pattern structures that repeat themselves. Hence there exists a lot of redundancy in the rules. Manual change propagation across these rules is highly error prone and increases design time. Therefore in this work a pattern reuse mechanism has been developed that allows graph pattern structures to be reused. They are managed copies where the reused patterns are in sync with each other i.e. changes made to one pattern are automatically propagated to all its reuses.
Model transformations are also susceptible to errors. As part of this work, a model based debugging framework based on the trace information collected during a transformation run, has been developed.