A novel approach to modeling

A novel approach to modeling
Zvezdan Protić, Tom Verhoeff, Mark van den Brand
Preliminaries


MDSE
Models


Metamodels


A model is an abstraction of System Under Study (SUS) that
can be used for reasoning about that SUS
Syntactic carrier of models
Metametamodels
Popular Metametamodels having “layered”
architecture



MOF (UML)
Ecore (Eclipse)
GME (Generic Modeling Environment) metametamodel
PAGE 3
Some reasons for a new approach

In traditional modeling approaches a metametamodel is an instance of itself
 Thus, conceptually, an <<instance-of>> relation can have two
interpretations

But those interpretations are not clearly stated for traditional metametamodels

“A metamodel is simply the model of a model, and if that model is itself a metamodel, then the metamodel
is in fact a meta-metamodel.[4] Got it? If not, don't worry about it, as it's really just an academic issue
anyway.”


EMF Eclipse Modeling Framework (2nd Edition)
The relationship instantiation problem
 E.g. in MOF the instance of an <<association>> is a <<link>>

But link does not contain attributes of association, e.g. cardinalities, unless it inherits
from <<association>>, thus an instance of a link cannot be used as a link again
<<instance-of>> problem of the layered
architecture
PAGE 5
Our MetaMetaModel
PAGE 6
Example Metamodel
0..1
From
Label:String 0..1
To
State
PAGE 7
Transition
Example model
(with relations to its metamodel)
SM1
A
PAGE 8
B
Similarities to UML 2.4
Implementing a layered architecture in our
approach
MetaMetaModel
instance-of
instance-of
MetaModel
Model
conforms-to
instance-of
instance-of
instance-of
Transform (interpret)
instance-of
MetaModel2
Model2
conforms-to
Transform (interpret)
MetaModel3
Model3
conforms-to
PAGE 10
Why is our approach a plausible approach?

Ethan K. Jackson, and Janos Sztipanovits: Formalizing the Structural Semantics of Domain-specific
Modeling Languages, Journal of Software and System Modeling, 2009

An algebraic approach to defining the syntax and structural semantics of domain specific modeling languages
(DSML)

A DSLM is a pair of a domain and interpretations.
 A domain is specified similar to a language as a tuple of: concepts that can be used to build models (Y), a set
of all realizations of models (RY), and a set of constraints over RY
 Concepts, are described by using term algebras
 Constraints are described by using formulas of a logic
 Terms can be transformed into formulas
 The validity of a model is checked by making a deductive closure of an union of constraint formulas and
term formulas
 An interpretation is a transformation from a domain to a domain
 Formally, an interpretation is a triple of source domain signature, a target domain signature, and the set
of formulas in the same logic as the one used to specify constraints

A metametamodel is just another domain, that has, as concepts, all the concepts that can be used in other domains



This means it is very easy to change the metametamodel
A metamodel is a model of a metametamodel, such that there is an interpretation that can generate a
domain based on that metamodel
A metametamodel is meta-circular if it has a realization that when interpreted into a domain, can be
interpreted back into the metametamodel domain
Applications


Model comparison
Metamodel and Model co-evolution
Metamodel-independent model comparison



A model comparison is the process of determining
differences between two models
Model differences are represented by a another
(differences) model that conforms to a differences
metamodel
The model repositories are bound to have large number
of metamodels that models conform to

Metamodel-dependent model comparison may not suffice
Our approach to model comparison:
metamodel of model differences
Metamodel independent metamodel and
model co-evolution
MM1_v1
MM1_v2
evolution
conforms-to
conforms-to
M1
co-evolution
M1_v2
A common approach to co-evolution
Why we propose SOT-s


An example operation: Make Reference Composite
What are some possible solutions:




Copy all referenced entities into the new containers?
Move all referenced entities into the new containers?
Assign all entities of the referenced type to containers of the referees?
Or let the user decide which entities should stay in old containers, and which
entities should move ?
Metamodel for metamodels
PAGE 18
An example metamodel in “natural”
and “transformed” representation
PAGE 19
Advantages of our approach

All the atomic differences between metamodels are
known


Thus, we can create one transformation that co-evolves
models
By using SOT, the users that are co-evolving models can
easily adapt the transformation to a particular situation
Comments, Questions, Suggestions ?