meta l metacase tools & possibilities
Post on 09-May-2015
266 Views
Preview:
TRANSCRIPT
MetaL MetaCASE Tools & Possibilities
Fahad Rafique Golra
11/04/2023 Département Informatique
Département Informatique Fahad R. Golrapage 2
Table of Contents
1. MetaL1
2. MetaL2
3. Examples
4. Benefits
5. Discussion
page 3
MetaL Language
Two distinct layers
• MetaL 1 (minimal kernel language)• MetaL 2 (formal foundation)
Département Informatique Fahad R. Golra
MetaL 1 Repository
Everything in the repository is a dataobject (D: set of all dataobjects)
Facets of Dataobject• Object (O: set of all objects) • Properties (P: set of all properties)
« facet of » defines the hidden dataobject
A dataobject can be a property, an object or both
Département Informatique Fahad R. Golrapage 4
:domain P O:range P O
:fo O P D
Properties & Objects
op has both a property and an object facet
Département Informatique Fahad R. Golrapage 5
1 2 3, , ,o o o op O
,op q P
Dataobject Types
The objet type, OT is a subset of O
The property type, PT is a subset of P Instance-type relationship is modeled as
A property has exactly one property type Every object has atleast one object type
Département Informatique Fahad R. Golrapage 6
p Ttype P P o Ttype O O ,
defo
ox y type x y
,p def
px y type x y
Types
The domain (resp. range) of a property must be an instance of the domain (resp. range) of its property type.
and
Département Informatique Fahad R. Golrapage 7
( ) ( )o
domain p domain pt
( ) ( )o
range p range pt
Object values
Object values are specialized objects that hold value
If then where T denotes any type N,B, …
The object value sets are disjoint and are all included in O.
Département Informatique Fahad R. Golrapage 8
: B Sval O O O O O B S
Tx O ( )val x T
Inheritance & Name
isa relationship
Object types inherit properties from their supertypes
Object and property types have unique names
Département Informatique Fahad R. Golrapage 9
T Tisa O O
*( , ) ( , )o otype o t t isa t type o t
, : ( ) ( )Tx y O name x name y x y
1 2 1 2, : ( ) ( )Tp p P name p name p * *
1 2 1 2( ( )) ( ( ))Fam domain p Fam domain p p p
MetaL1 Specification
Root object type () and property type ()
() is an instance of root object type and supertype of the elementary types
For example:
Département Informatique Fahad R. Golrapage 10
( , )N T N NT O O isa T
( , ) ( , )o N o N Ntype T type T T
( ) 0 ( ) intN Nval T name T
Elementry Types
Each object value is typed by exactly two types
Département Informatique Fahad R. Golrapage 11
: ( , ) ( , ) 2o N o N oO type o T type o
Example
To model: Albert and Bernard are two persons who have the same age, they are 45 years old.
Département Informatique Fahad R. Golrapage 12
Integrity
If some object is deleted
- If is a property whose for some and if then must also be
deleted.
- If is a property whose for some and if then must also be
deleted.
If some property is deleted
- If , then must be deleted
- If , then must be deleted
Département Informatique Fahad R. Golrapage 13
o O
p P
p P
p P
( ) ( , )p tdomain p o type p p true
( ) ( , )p trange p o type p p true
t Tp P
t Tp P
( )range p
( )domain p
( )tdr kind p
( )trd kind p
( )tpd kind p
( )tpr kind p
( )domain p
( )range p
MetaL 2 Metametamodel
CommonMetaObject
- Default supertype of all other metaclasses CommonMetaModel
- Default supertype of all constructs denoting metamodels
- Inherits from CommonMetaObject MetaObject
- Key metaclass as main concept
- Generalizes MetaRole, MetaProperty, MetaModel
- Has a unique name
Département Informatique Fahad R. Golrapage 14
MetaL 2 Metametamodel
MetaProperty
- Adds slots to metaobjects
- Inherits from MetaObject
- Domain of cardP property which limits the number of concrete properties
- Cardinality -1 is considered infinite, otherwise ≥ 1
- Must have exactly one cardinality and one type
- Cardinality is the range of exactly one metaproperty
Département Informatique Fahad R. Golrapage 15
MetaL 2 Metametamodel
MetaRole
- Both object type and property type
- As object type, subtype of MetaObject
- As property type, has MetaObject object type as domain and range
- Domain of cardR property, where cardR denotes one-to-one(0), one-to-many(1), many-to-one(4), many-to-many(5), manys-to-manys(10).
- Cardinality is the range of exactly one metarole
Département Informatique Fahad R. Golrapage 16
MetaL 2 Metametamodel
MetaModel
- Aggregate concept defined by a set of metaobjects
- Inherits from CommonMetaModel
- PartWhole metaRole has CommonMetaObject as domain and CommonMetaModel as range.
- PartWhole is domain of – nickname:optional, unicity of name inside a metamodel– canNotBeShared: allows sharing in metamodels– isNotDependentOn: dependency of object on metamodel– isHidden: hiding technical details
Département Informatique Fahad R. Golrapage 17
Example
PartWhole
- metametamodel – metaclass
- statechart – state
- coffemachine - IDLE
Département Informatique Fahad R. Golrapage 18
MetaL 2 Metametamodel
Inheritence
- MetaObjects can inherit from other MetaObjects
- Multiple inheritance is allowed
- Cycles are forbidden in the generalization graph
- Inheritance between metamodels is allowed
Département Informatique Fahad R. Golrapage 19
( , )oMM type MetaModel
MetaL 2 Metametamodel
Département Informatique Fahad R. Golrapage 20
MetaL 2 Concrete Layer
ConcreteObjects
- Instance of metaobject which is instance of MetaObject
- Can belong to several concrete models
- Can not live outside the definition of atleast one concrete model
Concrete Property
- Valued slot attached to concrete object
- Can be shared by multiple concrete objects
- As its a metaobject so it can own properties, roles etc
Département Informatique Fahad R. Golrapage 21
MetaL 2 Concrete Layer
Concrete Roles
- Has property and object facets
- Links two objects and can be a domain/range of property
- Respects cardinality
Concrete Models
- Instance of metamodel which is an instance of MetaModel
- Composed of concrete objects that are instance of metaobjects in metamodel definition.
Département Informatique Fahad R. Golrapage 22
Example Coffee Machine (state chart)
Département Informatique Fahad R. Golrapage 23
Instance of/Conforms to« state name » a property or an object
RedundancyProperties can have properties then MetaRolesare redundant
General Benefits
- Meta(models) can overlap
- Sharing between (meta)models is fine-grained: (meta)objects, (meta)models, …
- Multiple instantiation
- Free from instance/type delimitation in modeling layers
- Granularity: meta(models) are meta(objects)
- Metamodel refinement: As metamodels can be extended further and refined.
Département Informatique Fahad R. Golrapage 24
Example
Département Informatique Fahad R. Golrapage 25
Points for discussion
• Having shared objects can help transformations, as some part of the (meta)model remains constant in transformation
• Maintaining metamodel families by transformations without referential redundancies
• As other terminal languages can be defined on top MetaL1, so a complete family of of DSLs can exist e.g. for Component Oriented Programming.
Département Informatique Fahad R. Golrapage 26
References
1. V. Englebert. MetaL1: a formal specification. Technical Report, University of Namur – PRECISE Research Centre, Belgique, May 2010.
2. V. Englebert. MetaL2: a formal specification. Technical Report, University of Namur – PRECISE Research Centre, Belgique, May 2010.
3. V. Englebert, P. Heymans, “Towards More Extensive MetaCASE Tools”, In: Proceedings of CAiSE 2007, Springer-Verlag Berlin Heidelberg, pp 454–468, 2007.
Département Informatique Fahad R. Golrapage 27
top related