Transformation engine itself is available in MagicDraw editions from Standard and up. However, only MagicDraw Architect and Enterprise editions bring any particular transformations. So for MagicDraw Standard and Professional edition users, transformations are not available.
Plugins can bring additional transformations regardless of MagicDraw edition. For example, users, who have the Cameo Data Modeler plugin, can use the transformation engine to run ER to SQL(Generic/ Oracle) transformations, even if they do not have the MagicDraw Architect/Enterprise editions.
The Model Transformation Wizard enables running one of the predefined transformations. When using this wizard to run a chosen transformation, you have to perform the following steps:
Choose a transformation type.
Specify both the transformation source model (or a part of it) and destination package.
Select a type map.
Set custom transformation properties.
Each transformation converts the chosen model part into another model according to the rules of this transformation. Transformations are usually used for converting models between different modeling domains, e.g., UML and SQL.
All transformations follow a similar approach. They take a part of a model as the transformation source and copy it to the destination model, establishing traces between the transformation source and target elements. Then each transformation performs the specific model reorganizations, which are necessary for each transformation type according to the transformation options specified by the user in the transformation wizard. Transformation can also be performed in-place, i.e., the source model is not copied to the destination model, but transformation works directly on it instead.
Transformations also perform the so-called type remapping. During the transformation between the different modeling domains, such as UML and SQL, it is necessary to go through the data types used in the source model and change the types from the source domain into the equivalent types in the target domain, for example, changing String type usages in the UML model into the varchar type usages in the SQL model.