Difference between revisions of "MetaModelling"
From Suhrid.net Wiki
Jump to navigationJump to searchLine 95: | Line 95: | ||
== OMG Metamodelling Stack == | == OMG Metamodelling Stack == | ||
− | 4) M3 - Meta-Meta Model - MOF | + | * 4) M3 - Meta-Meta Model - MOF |
− | 3) M2 - Meta Model - UML MetaModels and other metamodels | + | * 3) M2 - Meta Model - UML MetaModels and other metamodels |
− | 2) M1 - Model - UML Model | + | * 2) M1 - Model - UML Model |
− | 1) M0 - Real world - A particular use of a UML model. | + | * 1) M0 - Real world - A particular use of a UML model. |
[[Category:OODE]] | [[Category:OODE]] |
Revision as of 13:16, 6 January 2012
Contents
MDA
- Model driven architecture effectively defines a philosophy and loose process for developing systems.
- It is model-centric, everything is a model: system, requirements, platform, the transformations that are used to move from one model to another.
- System models are separated into two parts:
- Platform independent.
- Platform dependent.
- Mappings and transformations are needed to include platform specific details - they should be modelled to.
MDA Models
PIM
- Platform Independent Model.
- Formal specifications of a system (business and service model) that abstracts away technical detail.
- e.g. a Billing System in UML.
- "Model once, generate everywhere."
PSM
- Platform Specific Model.
- Business and Service Model expressed in terms of the specification model of the platform.
- e.g. a Billing System expressed in UML Profile for CORBA.
Platform Model
- Model of platform component constructs e.g. of Eiffel, C#, EJB etc.
MDA Technologies
MOF
- All languages used in MDA will be based on MOF.
QVT
- Query-View-Transformation: a standard for modelling transformations between languages.
- Expresses relationships between model elements and constraints on when the transformations can be fired.
XMI
- Tool interchange.
Metamodel
- A metamodel is used to define the characteristics of a valid model.
- A model conforms to its metamodel.
- A model is an instance of its metamodel.
- e.g in UML, a Class is an instanceof Classifier.
Uses
- To define the syntax and semantics of a language.
- UML is a language. So the document that defines UML is the UML Metamodel.
- e.g. a Class IS-A Classifier, an Association IS-A Relationship.
- To explain the language.
- To compare languages rigorously.
- To specify requirements for a tool for the language.
- To enable interchange between tools.
Tools to build Metamodels
UML/MOF
- Advantages: Promotes understandability, deals with reasonably large structures, CASE tools exist.
- Disadvantages: Meta circularity, semantic checking.
Formal Specification Language
- Advantages: Avoids meta circularity, proof system for semantic checking : possible to construct proofs of consistency/soundness.
- Disadvantages: Difficult to understand, requires expertise.
Executable Language
- e.g. Ocaml, Eiffel, JML.
- Advantages: understandable, works for large and small model, pre-existing tools for compilation, metamodels can be tested and simulated easily.
- Disadvantages: Risk of losing abstraction level, transformation from modeling language to implementation needs to be transparent, misconception that programs and model must be in different languages.
Concrete Syntax
- Textual (code) or Visual.
- Text good for complex expressions. Beyond a certain size, difficult to comprehend and manage.
- Visual good for expressing large amounts of detail in intuitive form.However works only till a certain level of detail.
Abstract Syntax
- Describes a vocabulary of concepts in a language and how they may be combined to create models.
- Concerned strictly with form/structure. Omits presentation, semantics.
- e.g. State Machines.
- Key concepts: states, transitions, events.
- A State Machine Language must be able to describe these concepts.
- We can then model form and structure, transition associated with 2 states etc.
- However nothing about presentation or semantics.
OMG Metamodelling Stack
- 4) M3 - Meta-Meta Model - MOF
- 3) M2 - Meta Model - UML MetaModels and other metamodels
- 2) M1 - Model - UML Model
- 1) M0 - Real world - A particular use of a UML model.