Design Patterns for Model Transformations

Model transformations are a central element of model-driven software development. This paper defines design patterns for the specification and implementation of model transformations. These patterns are commonly recurring struc- tures 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.