Design Patterns for Model Transformations

Design patterns for software development were introduced by Gamma et al. Subsequently, many hundreds of patterns have been identified, including patterns for specialized forms of development such as enterprise information systems. In this paper, we consider further patterns, based on a large number of case studies which we have carried out or analyzed.

These patterns are inter-related and can be used together to support the development of transformations from high-level specifications as sets of constraints, to executable implementations in Java. They have been incorporated into our transformation environment, UML-RSDS. Model transformations are a central element of model-driven software development. This article defines design patterns for the specification and implementation of model transformations. These patterns are commonly recurring structures and mechanisms which we have identified in many specific transformations. In this paper we show how they can be used together to support an overall development process for model transformations from high-level specifications to executable Java implementations.