OMG Model-Driven Architecture: Principles and Frameworks
OMG Model-Driven Architecture (MDA)
The Object Management Group (OMG) has defined a comprehensive proposal for applying Model-Driven Engineering (MDE) practices to system development: MDA (Model-Driven Architecture).
Four Principles of MDA
- Models must be expressed in a well-defined notation to enable effective communication and understanding.
- System specifications must be organized around a set of models and associated transformations (mappings and relations between multi-layered models).
- Models must be compliant with metamodels.
- Increase acceptance, broad adoption, and tool competition for MDE.
Core Model Layers
- Computation Independent Model (CIM): Describes requirements and needs at a very abstract level, without any reference to implementation aspects (e.g., description of user requirements or business objectives).
- Platform Independent Model (PIM): Defines the behavior of the systems in terms of stored data and performed algorithms, without any technical or technological details.
- Platform-Specific Model (PSM): Defines all the technological aspects in detail.
Transformations / mappings: CIM → PIM → PSM
Principles for Domain-Specific Languages
- The language must provide good abstractions to the developer/modeler, must be intuitive, and make life easier, not harder.
- The language must not depend on one-man expertise for its adoption and usage; its definition must be shared and agreed upon.
- The language must evolve and be kept updated based on user and context needs, otherwise it is doomed to die.
- The language must be supported by tools and methods.
- The language should be open for extensions and closed for modifications (open-closed principle).
Formalisms to Specify Languages (Metalanguages)
The Four-Layer Metamodel Structure
M3 – Meta-metamodel (Language for Metamodels): The top layer is the foundation, defining the language for creating metamodels. The most common example is the Meta-Object Facility (MOF).
