Model Driven Engineering
Model Driven Engineering (MDE, a.k.a. Model Driven Development, MDD, or Model Driven Architecture, MDA) is a software design approach for the development of software systems. It aims to raise the level of abstraction in program specification and increase automation in program development. The idea promoted by MDE is to use models at different levels of abstraction for developing systems, thereby raising the level of abstraction in program specification. An increase of automation in program development is reached by using executable model transformations. Higher-level models are transformed into lower level models until the model can be made executable using either code generation or model interpretation.
Within HL7, the Domain Specific Language (DSL) used by domain experts to express domain knowledge is the D-MIM/R-MIM (a visual DSL). The visual representation can be transformed into MIF, an XML based DSL. MIF (as a DSL) can be made executable through code generation. Most RIMBAA implementations are examples of a MDE effort.
- HL7 SAIF uses OMG terminology and refers to MDE as MDA. See Model-Driven Architecture (MDA)-SAIF for the SAIF glossary definition of MDA.
- See blogpost explaining MDE terms, MDE in Wikipedia, MDA IBM whitepapers
- See also [1] (which comments on [2]) for a series of best practices when it comes to DSLs and MDD.