Metamodel-driven development environments (UML, models, metamodels) Kilián Imre H-7683 Gyűrűfű Cseresznyéskert (20-6655951 ritkán használható) kilian@gamma.ttk.pte.hu
Rational Unified Process (RUP) - Model Driven Architecture (MDA) Code generation Req’t analysis Analysis Design Domain model Analysis model (Entities) Design model Runnable program RUP MDA Platform Independent Model (PIM) Platform Specific Model (PSM)
The 4 level metamodel stack of UML Application data Layer of world/data, the instance of the model Domain (software) model Model layer, the model of the World Model of modelling formalism (eg. UML) Metamodel, the model of model The model of the model of modelling formalism Meta-metamodell, the model of metamodel
Data layer, model layer Family Forname Position Renumeration Kovács Benő Director 40 000 Gipsz Jakab Professor 20 000 Para Zita Manager 10 000 Kala Pál Janitor 8 000
What if the data is a program / a model? Eg. CASE tools, compilers metamodeling Metamodels for: UML RDBMS While (C subset) Tools for a fixed metamodel hard coding the metamodel (eg. UML modeling tools) for transformation between fixed metamodels hard coding of both metamodels hard coding of transformation rules (eg. C compiler) Tools for variable metamodel loadable, configurable metamodels (eg. ECLIPSE) Intelligent information migration loadable metamodels and transformation rules HARD CODING of the META-METAMODEL the actual metamodel is an instance of the META-METAMODEL
(Part of an inaccurate) UML metamodel
While metamodel ‘Composite’ GoF pattern
Meta-metamodel Eg. the UML metamodel as an instance of meta2model above: START NAME END MIN MAX Feature owner Classifiable 1 1 Classifiable feature Feature 1 * Classifiable participant AssociationEnd 0 * AssociationEnd type Classifiable 1 1 Association connection AssociationEnd 2 * AssociationEnd owner Association 1 1 Parameter owner Operation 1 1 Operation parameter Parameter 0 *
CASE framework for customizable metamodel (Eclipse) Meta-metamodel Framework (EMF) Meta-metamodel Metamodel1 Metamodel2 Metamodel3
Eclipse Eclipse Metamodel Framework (EMF): for metamodell creation Eclipse Visual Editor