Reverse transformations

When you create a transformation, you can specify a corresponding reverse transformation. When you create a transformation configuration, you can enable the corresponding reverse transformation, which enables you to run either transformation using the same configuration values. You can specify only one reverse transformation for a given transformation.

Reverse transformations enable you to recover changes to the source or target model. This process is useful when the source and target models are developed concurrently. For example, an architect can create a UML model and transform the model into a different level of abstraction, or into source code. Another architect or developer can make changes to the generated model or generated code, and then the architect can run the reverse transformation to recover the changes. The reverse transformation determines the differences between the generated model or code and the source model, and the architect can select which changes to apply to the source model.

To recover changes to a source or target model, you should create a single transformation configuration and enable the reverse transformation instead of creating configurations for each transformation. By creating one configuration and enabling the reverse transformation, all the information about the applicable source and target models is contained in one configuration; validation rules for both transformations are applied to the configuration to ensure that the generated model or code is as accurate as possible. Running transformations that have separate configurations can generate unexpected results.

To simplify working with the transformation configuration file, save the configuration file in the project that you specify as the source of the transformation.

To avoid possible problems, do not change the source or target in the transformation configuration file. To specify different sources or targets for the transformation, create a new transformation configuration.