210 likes | 347 Views
A novel approach to modeling. Zvezdan Protić , Tom Verhoeff, Mark van den Brand. Preliminaries. MDSE Models A model is an abstraction of System Under Study (SUS) that can be used for reasoning about that SUS Metamodels Syntactic carrier of models Metametamodels.
E N D
A novel approach to modeling ZvezdanProtić, Tom Verhoeff, Mark van den Brand
Preliminaries • MDSE • Models • A model is an abstraction of System Under Study (SUS) that can be used for reasoning about that SUS • Metamodels • Syntactic carrier of models • Metametamodels
PopularMetametamodels having “layered” architecture • MOF (UML) • Ecore (Eclipse) • GME (Generic Modeling Environment) metametamodel
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
Example Metamodel 0..1 From Transition State Label:String 0..1 To
Implementing a layered architecture in our approach MetaMetaModel instance-of instance-of MetaModel Model conforms-to instance-of instance-of Transform (interpret) instance-of instance-of Model2 MetaModel2 conforms-to Transform (interpret) MetaModel3 Model3 conforms-to
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 M1_v2 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 ?
An example metamodel in “natural” and “transformed” representation
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