# model-driven engineering

> software development methodology that focus on use of high-level abstract models to represent a system which is automatically transformed into executable code

**Wikidata**: [Q1941909](https://www.wikidata.org/wiki/Q1941909)  
**Wikipedia**: [English](https://en.wikipedia.org/wiki/Model-driven_engineering)  
**Source**: https://4ort.xyz/entity/model-driven-engineering

## Summary
Model-driven engineering (MDE) is a software development methodology that uses high-level, abstract models to represent a system and automatically transforms those models into executable code. It is an academic discipline and branch of software engineering that emphasizes modeling, meta-modeling, and model transformation to separate functionality from platform-specific technology.

## Key Facts
- Model-driven engineering is defined as a software development methodology that focuses on using high-level abstract models which are automatically transformed into executable code.
- It is an instance of academic discipline, branch of science, methodology, and field of study.
- Model-driven engineering is a subclass of systems engineering and software engineering.
- Model-driven architecture (MDA) is a related parent concept that abstracts away platform-specific details so developers can focus on behavior before implementation.
- MDE is the study of meta-modeling and model transformation.
- Common aliases include model-driven software development, MDSD, MDE, model-driven development, and model-Driven Engineering (also listed in multiple languages).
- Practitioners include software engineers and computer scientists.
- Wikimedia Commons category: Model-driven engineering; sitelink_count: 14.
- Identifiers: Freebase ID /m/0cgh84; Microsoft Academic ID (discontinued) 2781406519.

## FAQs
### Q: What is model-driven engineering (MDE)?
A: MDE is a software development methodology that represents systems with high-level abstract models and automatically transforms those models into executable code. It emphasizes modeling, meta-modeling, and model transformation.

### Q: How does MDE relate to model-driven architecture (MDA)?
A: MDA is a related software design approach that uses models to abstract away platform-specific details so developers can focus on behavior before implementation. MDE is aligned with this separation of functionality and technology.

### Q: Who uses model-driven engineering?
A: Model-driven engineering is practiced by software engineers and computer scientists.

### Q: What core topics does MDE study?
A: MDE is the study of meta-modeling and model transformation.

## Why It Matters
Model-driven engineering matters because it reframes software development around high-level models rather than low-level code. By representing system behavior and structure as abstract models, MDE enables a systematic separation between functionality and platform-specific concerns. This separation is central to model-driven architecture, which allows developers to focus on system behavior first and defer implementation details tied to particular technologies. As an academic discipline and methodology within software and systems engineering, MDE concentrates research and practice on meta-modeling and automated model transformation. Those focus areas provide a theoretical and practical basis for toolchains that convert models into executable artifacts. For organizations and researchers concerned with maintainability, repeatability, and model-based design, MDE supplies a structured approach that integrates modeling into the software lifecycle and ties architecture-centric methods (such as Arcadia) to automated engineering practices.

## Notable For
- Emphasizing automatic transformations from abstract models to executable code.
- Focusing the study of meta-modeling and model transformation as core activities.
- Serving as an academic discipline and branch of software engineering and systems engineering.
- Being closely associated with model-driven architecture, which separates functionality from platform technology.
- Influencing architecture-centric, model-driven methodologies such as Arcadia.

## Body

### Definition
- Model-driven engineering (MDE) is a software development methodology.
- It focuses on the use of high-level abstract models to represent systems.
- Models are automatically transformed into executable code.
- MDE is described as an academic discipline and a branch of science.

### Relationship to Software Engineering and Systems Engineering
- MDE is a subclass of systems engineering.
- MDE is a subclass of software engineering.
- It is part of the broader academic discipline of software engineering.

### Relationship to Model-driven Architecture (MDA)
- Model-driven architecture is a related class/approach.
- MDA uses models to abstract away platform-specific details.
- MDA emphasizes separating functionality from technology so developers focus on behavior before implementation.
- MDE aligns with this separation by using modeling and automated transformation.

### Core Concepts
- Meta-modeling: MDE is the study of meta-modeling as a foundation for defining modeling languages.
- Model transformation: MDE studies automated transformations that convert models into other models or executable code.
- Modeling-first approach: MDE places models at the center of the development process.

### Practitioners and Related Methods
- Practitioners: software engineers and computer scientists.
- Related methods and frameworks: Arcadia is an architecture-centric and model-driven systems and software engineering methodology built on these principles.
- Notable related people: Andreas Rausch (Ph.D., Technische Universität München, 2001) and Gabor Karsai (born 1959), Hungarian–American computer scientist.

### Identifiers, Aliases, and Resources
- Aliases include model-driven software development, MDSD, MDE, model-driven development, Ingenieria dirigida por modelos, and equivalents in several languages.
- Wikimedia Commons category: Model-driven engineering.
- Freebase ID: /m/0cgh84.
- Microsoft Academic ID (discontinued): 2781406519.
- Wikipedia title: Model-driven engineering.
- Sitelink count across Wikimedia projects: 14.

### Images and Media
- Representative images are available on Wikimedia Commons (examples include French- and German-captioned images of model transformations and metamodel/model/original diagrams).

## Schema Markup
```json
{
  "@context": "https://schema.org",
  "@type": "Thing",
  "name": "Model-driven engineering",
  "description": "Software development methodology that focuses on using high-level abstract models to represent a system which is automatically transformed into executable code.",
  "url": "https://en.wikipedia.org/wiki/Model-driven_engineering",
  "sameAs": [
    "https://en.wikipedia.org/wiki/Model-driven_engineering",
    "https://commons.wikimedia.org/wiki/Category:Model-driven_engineering"
  ],
  "additionalType": "academic discipline"
}

## References

1. Freebase Data Dumps. 2013
2. [OpenAlex](https://docs.openalex.org/download-snapshot/snapshot-data-format)