From Suhrid.net WikiJump to navigationJump to search
- 1 MDA
- 2 Metamodel
- 3 MOF
- 4 MDA Processes
- 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 is a new way of writing specifications and developing applications based on a PIM.
- MDA development focuses on the functionality and behaviour of a system.
- Unnecessary to generate the PIM again when new technology arises - unless requirements change.
- MDA allows us to model the functionality and behaviour once. The models are essentially representation of software architecture.
- One of the main aims of the MDA is to separate design from architecture.
- As the concepts and technologies used to realize designs and the concepts and technologies used to realize architectures have changed at their own pace, decoupling them allows system developers to choose from the best and most fitting in both domains.
- Requires expertise
- 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."
- 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.
- Model of platform component constructs e.g. of Eiffel, C#, EJB etc.
- The Meta Object Facility is an OMG standard for model driven engineering.
- All languages used in MDA will be based on MOF.
- 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 is an OMG standard for exchanging metadata via XML.
- Used for tool interchange.
- 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.
- 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
- 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.
- 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.
- 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.
- 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 - e.g MOF
- 3) M2 - Meta Model - e.g UML MetaModels and other metamodels
- 2) M1 - Concrete Model - e.g An UML Model of the system.
- 1) M0 - Real World - The real system itself!
- Meta Object Facility.
- It is a metadata management framework.
- It is a language to define other languages. (to define metamodels).
- The UML MM is defined in MOF.
- Create PIM using UML - capture functionality and behaviour of requirements.
- MDA tool creates Pervasive Services Model. Pervasive services are naming, security, transactions, events.
- Store PIM in Model object facility which acts as a repository for the PIM.
- Create PSM's from PIM using mapping tools.