Glossary · Automation software engineering and architecture
Model-driven development
Also known as: Model-driven engineering, MDD, MDE
German: Modellgetriebene Entwicklung
In software engineering, model-driven development is an approach in which formal models are the primary development artifacts and code, configuration or documentation are generated from them through defined transformations.
- Software engineering
In one sentence
Model-driven development treats formal models as primary artifacts and generates code, configuration or documentation from them.
Example
A machine builder describes each machine module in a domain model and generates the PLC data structures, HMI screens and I/O list from it.
How it applies
- Engineering: Changes are made in the model and regenerated, never in the generated output, or the next generation run overwrites them. A Domain-specific language (DSL) often defines the modeling vocabulary.
- Maintenance: The transformations and generators are software themselves and need version control, tests and a qualified toolchain when used for safety-related output.
- Documentation: Model-driven approaches can generate parts of the technical documentation, such as parameter lists, signal tables or interface descriptions, from the same source. This keeps them consistent but requires editorial review of the generated text.
Model-driven vs. model-based development
Model-based development uses models alongside code; model-driven development requires that code and other artifacts are derived from models by transformation.