Traian-Florin Șerbănuță
2025
The UML meta‑model defines:
MDA is a software development approach defined by the Object Management Group (OMG)
Focuses on creating and transforming models
rather than writing code directly
Separates business logic from platform-specific implementation
Supports automation:
models → transformations → generated code
Computation-Independent Model
Platform-Independent Model
Platform-Specific Model
Unified Modeling Language
Meta-Object Facility
Query/View/Transformation
Object Constraint Language
XML Metadata Interchange
UML is defined using a 4‑layer meta‑model architecture:
| Layer | Meaning | Example |
|---|---|---|
| M3 | Meta‑meta‑model | MOF defining UML’s structure |
| M2 | Meta‑model | UML specification (classes, states, components…) |
| M1 | Model | Your diagrams (class diagrams, state diagrams…) |
| M0 | Runtime | Real objects in the running system |
MOF is an Object Management Group (OMG) standard
Defines how meta-models are built
UML, SysML, BPMN meta-models are all built using MOF
Enables interoperability between modeling tools
Meta-classes used to define modeling concepts (e.g., UML Class)
Define attributes and relationships in the meta-model
Group meta-model elements
Link meta-classes together
Define UML extensions for domain-specific modeling.
Profiles keep UML standard-compliant
Tool‑friendly
Tailored for specific domains
(IoT, automotive, medical, cloud, finance)
Examples:
Create a UML Profile Diagram that extends UML to better describe security characteristics of web-service components.
UML is defined by a meta‑model (M2 layer) using MOF (M3 layer)
Your diagrams are models (M1), representing real objects (M0)
Profiles customize UML without altering the meta‑model
Stereotypes add domain semantics and constraints
Profiles are essential for domain‑specific modeling (e.g., SysML)