The notion of model transformation is central to model-driven development.
For writing bidirectional model transformations, which maintain consistency between two or more models, a specialist bidirectional model transformation language is particularly important, because it can help avoid the duplication that would result from writing each direction of the transformation separately.
The OMG has standardised a family of model transformation languages called QVT, but the field is still immature.
[1] There are ongoing debates regarding the benefits of specialised model transformation languages, compared to the use of general-purpose programming languages (GPLs) such as Java.
[2] While GPLs have advantages in terms of more widely-available practitioner knowledge and tool support, the specialised transformation languages do provide more declarative facilities and more powerful specialised features to support model transformations.