Reverse transformations: UML to Java™

When you create a Java-to-UML transformation configuration and enable the Reconciled Modeling design contract management protocol (DCMP), the UML-to-Java, or reverse, transformation is automatically enabled. Reverse transformations enable you to reconcile changes in an iterative development process.

You can use reverse transformations to recover changes to the model or recover changes to source code. This process is useful when the model and code are developed concurrently. For example, an architect can create a UML model and transform the model into source code. Developers can make changes to the generated code, and the architect can run the reverse transformation to recover the changes to the code. The transformation determines the differences between the source code and the UML model, and the architect can select which source code changes to apply to the model.

To recover changes to a model or recover changes to code, you should create a single transformation configuration and enable the Reconciled Modeling DCMP, instead of creating configurations for each transformation. If you follow this process, all the information about the applicable UML model and code 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 Java-to-UML transformation. For example, if you specify a code project as the source of the transformation, save the configuration file in the same project as the code.

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.