Meta l metacase tools & possibilities

Post on 09-May-2015

266 views 0 download

Transcript of Meta l metacase tools & possibilities

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