Transformations can be unidirectional, bidirectional or multidirectional. Unidirectional transformations can be executed only from input models conforming to a source metamodel to corresponding output models conforming to a target metamodel in the source-to-target direction. Bidirectional transformations can be specified either as a pair of unidirectional transformations: a forward transformation (source-to-target)and a backward transformation (target-to-source) or using a relational approach, where every transformation relationship simultaneously describes a forward and a backward transformation. Multidirectional can be seen as supporting bi-directional transformations between a set of input and output models, which can facilitate traceability.

Comparison of Model Transformation Tools