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