Meta l metacase tools & possibilities

27
MetaL MetaCASE Tools & Possibilities Fahad Rafique Golra 03/07/2022 Département Informatique

Transcript of Meta l metacase tools & possibilities

Page 1: Meta l metacase tools & possibilities

MetaL MetaCASE Tools & Possibilities

Fahad Rafique Golra

11/04/2023 Département Informatique

Page 2: Meta l metacase tools & possibilities

Département Informatique Fahad R. Golrapage 2

Table of Contents

1. MetaL1

2. MetaL2

3. Examples

4. Benefits

5. Discussion

Page 3: Meta l metacase tools & possibilities

page 3

MetaL Language

Two distinct layers

• MetaL 1 (minimal kernel language)• MetaL 2 (formal foundation)

Département Informatique Fahad R. Golra

Page 4: Meta l metacase tools & possibilities

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

Page 5: Meta l metacase tools & possibilities

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

Page 6: Meta l metacase tools & possibilities

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

Page 7: Meta l metacase tools & possibilities

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

Page 8: Meta l metacase tools & possibilities

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

Page 9: Meta l metacase tools & possibilities

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

Page 10: Meta l metacase tools & possibilities

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

Page 11: Meta l metacase tools & possibilities

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

Page 12: Meta l metacase tools & possibilities

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

Page 13: Meta l metacase tools & possibilities

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

Page 14: Meta l metacase tools & possibilities

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

Page 15: Meta l metacase tools & possibilities

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

Page 16: Meta l metacase tools & possibilities

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

Page 17: Meta l metacase tools & possibilities

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

Page 18: Meta l metacase tools & possibilities

Example

PartWhole

- metametamodel – metaclass

- statechart – state

- coffemachine - IDLE

Département Informatique Fahad R. Golrapage 18

Page 19: Meta l metacase tools & possibilities

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

Page 20: Meta l metacase tools & possibilities

MetaL 2 Metametamodel

Département Informatique Fahad R. Golrapage 20

Page 21: Meta l metacase tools & possibilities

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

Page 22: Meta l metacase tools & possibilities

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

Page 23: Meta l metacase tools & possibilities

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

Page 24: Meta l metacase tools & possibilities

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

Page 25: Meta l metacase tools & possibilities

Example

Département Informatique Fahad R. Golrapage 25

Page 26: Meta l metacase tools & possibilities

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

Page 27: Meta l metacase tools & possibilities

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