As I understand it, model-driven development (MDD) allows automation whereby programs/models are automatically generated from their corresponding models via the application of transformations.
All I know about transformations is that they are some way of storing a developer's platform-specific expertise.
But what exactly is a transformation?
A tranformation in model-driven development is the output we get when processing a model. This output can be another model, or source code.
In the MDA (Model-Driven Architecture) approach, we can transform a PIM (Platform Independent Model) into a PSM (Platform Specific Model) through a transformation process. Then, we can transform the PSM into source code, again via a subsequent transformation.
Some other approaches like ABSE transform a model directly into source code. Here, an ABSE model directly generates the final source code because its templates work as mini-programs (in a cooperative-type generator): no further transformations are necessary. Like most other MDD approaches, ABSE requires tooling support. In this case, it's AtomWeaver.