Figure 2.
Abstraction Layers
Model-driven development provides a way to transition from a domain model through the application model and then into code.