MetaModelling

From Suhrid.net Wiki
Jump to navigationJump to search

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.