SlideShare a Scribd company logo
1 of 241
Model Evolution and Versioning Alfonso Pierantonio Dipartimento di InformaticaUniversità degli Studi dell’Aquila alfonso.pierantonio@univaq.it
2 Objectives Model-DrivenEngineeringrequires mature and adequatemodel management in ordertoachieveits full potential.  Thiscannotleaveaside the problemofmodeldifferencing. Thislecturewillprovideinsights on the problemofmodeldifferencingoutlining the potentialsofitsapplication.
3 Modeldifferences and evolution Modeldifferences and evolution The ability to detect and represent structural changes in subsequent versions of a (meta) model
4 Modeldifferences and evolution Modeldifferences and evolution There is no way to understand the rationale behind these modifications
5 Modeldifferences and evolution Modeldifferences and evolution
6 Modeldifferences and evolution Modeldifferences and evolution ? Q1: How to detect such evolution ?
7 Modeldifferences and evolution Modeldifferences and evolution ? Q2: How to represent it in sucha way it can be conveyed to model transformations ?
8 Modeldifferences and evolution Modeldifferences and evolution ? Q3: Which kind of applications can be realized by representing the evolution by means of models ?
9 Modeldifferences and evolution A satisfactory representation of differences can enables a wide range of applications Modeldifferences and evolution
10 Modeldifferences and evolution Modeldifferences and evolution Model evolution may require the adaptation of artefacts which are not directly generable from the model  Metamodel evolution requires models, transformations, and tools (eg. GMF editors) to be consistently adapted
11 ,[object Object]
Indeed, the metamodelarchitecture and the formalrelationshipsamongthe layers can fruitfullybeexplotedtothisend
conformance, consistencyrelations amongmodelsAchieving the potential
Achieving the potential 12 Achieving the  great Potential.
13 Achieving the potential Turninginto a nightmare!
Summary Model differences Matching Algorithm Conflict Management Evolution  in the large (model evolution) in the small (metamodel evolution) Conclusions 14
Modeldifferences Model Evolution and Versioning 15
Model Differences Introduction Representation Requirements Model Difference Approaches Edit Script, Coloring Representing Model Differences Difference Metamodel, Difference Models Difference Application Patches Operations with Differences Dual, Sequential and Parallel Composition Conclusions and Future Work
Introduction The problem of model differences is intrinsically complex and requires specialized algorithms and notations Any solution should necessarily present a high degree of separation between three relevant aspects calculation, a procedure, method or algorithm able to compare two distinct models  representation, the outcome of the calculation must be represented in some form visualization, model differences often requires to be visualized in a human-readable notation In currentproposals the distinctionbetween the three aspects are often blurred thus compromising the adoption of generic modelling techniques
Introduction The problem of model differencing can be decomposed in two subsequent phases
Introduction The problem of model differencing can be decomposed in two subsequent phases 1 Calculation
Introduction The problem of model differencing can be decomposed in two subsequent phases 1 2 Calculation Representation
Introduction The outcome used for further applications by means of automated transformations and analysis 1 2 3 Calculation Representation Applications : Transformation & Analysis
Introduction Model Difference Calculation 1
Introduction Model DifferenceRepresentation 2
Introduction Thus, the aim is to find a suitable representation for model differences which is independent from the metamodel the models are conforming to abstracts from the calculation method used for differencing the models, regardless whether it is based on persistent ids or structural similarity the outcome of a differencing operation must be usable in automated transformation or analysis
Representation Requirements
Approaches The representation of model differences can be divided into two main techniques Directed deltas, represent delta documents as the sequence of the operations needed to obtain the new version from the old one eg. edit scripts  Symmetric deltas, show the result as the set of differences between the two compared versions eg. coloring   [Mens 2002]
Approaches – Example  version 1 (M1)
Approaches – Example  version 2 (M2) version 1 (M1)
Approaches – Example  version 2 (M2)  version 1 (M1)
Approaches – Edit Scripts          (eg [Porres et al 2003]) Sequence of actions able to reconstruct the final model starting from the initial one Cons: operational, proprietary format, tool dependent, lengthy, reduced readability
Approaches – Coloring                 (eg [Ohst et al 2003]) Declarative and intuitive Cons: does not hold the following properties Minimalistic Self-contained Transformative Cons: moreover very verbose updates difficult to represent
Approaches – Summary
Difference Metamodel (1/3) Given two models M1 and M2 conforming to a metamodelMM, their difference (M2 – M1) conforms to a metamodelMMD that is derived from MM The approach permits the representation of the following modifications additions: new elements are added to the final model  deletions: some of the existing elements are deleted changes: a new version of the model can consist of some updates of already existing elements
Difference Metamodel (2/3)
Difference Metamodel (3/3) MM MM2MMD MMD
Sample UML models Version 1 Version 2
Sample UML models u Version 1 The abstract class  HTMLDocElemhas been added Version 2
Sample UML models Version 1 The operation dump()  has been moved  to  HTMLDocElem v Version 2
Sample UML models w Version 1 The  HTMLList  class became subclassof  HTMLDocElem Version 2
Fragment of the Difference Model  The abstract class HTMLDocElemhas been added
Fragment of the Difference Model The abstract class HTMLDocElemhas been added The operation dump()has been moved from HTMLDocto  HTMLDocElem
Fragment of the Difference Model The abstract class HTMLDocElemhas been added The operation dump() has been moved from HTMLDoc  to  HTMLDocElem The  HTMLList  class became subclassof  HTMLDocElem
Difference Application Once differences are calculated and represented, they can be applied over models as patches The difference application is intended to  “reconstruct” the final model starting from the initial one “patch” any model conforming to the base metamodel for reproducing the modifications
Difference Application Let   (M2 – M1) =   be a difference model, then patch(M) equals M2   if  M = M1 (reconstructive) M   if  M  M1 =  (idempotent) patch(M  M1)  (M/M1)   if  M  M1   (transformative) where  ,[object Object]
patch: MMD  MM  MM
reconstructive    transformative,[object Object]
Difference Application Rule AddedMC2MC Each AddedMC induces a new MC instance in M2 and the corresponding structural features according to  Rule ChangedMC2MC It updates MC elements in M1 according to the ChangedMCelements in  Rule UnchangedMC2MC  It serves for propagating in M2 the context of M1, ie what is left unchanged by  No rules are required for DeletedMC elements since they are simply ignored by the UnchangedMC2MCrule
Overall Scenario MM2MMD MM patchtransformation MMD2ATL HOT MMD
Overall Scenario MM2MMD MM M2 conformsTo conformsTo M1 patchtransformation MD conformsTo MMD2ATL HOT MMD
Difference Operators Dual Given a difference model, it is useful to automatically define its inverse, ie if (M2 – M1) =  the dual -1is such that  patch-1(M2) = M1  -1
Difference Operators Sequential Composition  two or more subsequent modifications can be grouped in a single difference model given 1 = (M2 – M1) and 2 = (M3 – M2) then the sequential composition  1 ; 2 is defined in such a way that  patch1; 2    = patch2 patch1 Parallel Composition distributed manipulations of the same artifacts can be merged in a model difference as long as they are parallel indipendent
Model Versioning - Patches An interesting scenario discloses when arbitrary models are allowed as input for difference application
Model Versioning - Patches An interesting scenario discloses when arbitrary models are allowed as input for difference application
Model Versioning - Patches An interesting scenario discloses when arbitrary models are allowed as input for difference application ?
Model Versioning - Patches The application of manipulations as patches demands for several properties Self-containedness: The representation of differences should contain enough information to be applied to arbitrary inputs Minimality: The representation should not contain too much information thus locking the application to the initial context Transformability: The application engine should allow several degrees of fuzziness, i.e. it should be able to reproduce a certain modification to appropriate arbitrary entities
Overall Scenario MM2MMD MM M2 conformsTo conformsTo M1 Application Model patchtransformation MD conformsTo MMD2ATL HOT MMD
Overall Scenario MM2MMD MM M2 conformsTo conformsTo M1 Application Model patchtransformation MD conformsTo MMD2ATL HOT MMD
Model Differences Model differences are crucial for general model management and can disclose numerous opportunities Once differences are represented as first-class entities, a number of operations can be defined on them patches, dual, binary compositions, impact evaluation, etc A proof of concept has been implemented on the Eclipse/AMMA platform  (http://www.eclipse.org/m2m/atl/usecases/MMIndApproachtoDiffRep)
What comes next ? One of the problems of generic differencing methods is that matching algorithms are not always accurate since they are agnostic of the metamodel underlying semantics Formalizing semantics is difficult, thus heuristics can provide some ad-hoc improvement As soon we consider parallel composition the problem conflict specification, detection, and resolution Parallel composition may give place to conflicts whenever the differences are not parallel independent Depending on the process stage we may be interested in tuning false positives and negatives
Summary Model differences Matching Algorithm Conflict Management Evolution  in the large (model evolution) in the small (metamodel evolution) Conclusions 60
Model matching Model Evolution and Versioning 61
Outline Introduction Model matching Static Identity-Based Matching Signature-Based Matching Similarity-Based Matching Language-Specific Case study Conclusions
Introduction Differencing mechanisms for supporting the evolution of model-based artifacts are becoming crucial Document comparison algorithms provided by version control systems like CVS, and SVN have been shown to be inadequate Calculating model differences is a difficult task since it relies on model matching which can be reduced to the graph isomorphism problem No efficient (i.e., polynomial-bound) algorithm for graph isomorphism is known and it has been conjectured that no such algorithm can exist 	[Ronald C. Read, Derek G. Corneil. The graph isomorphism disease. Journal of Graph Theory, 1(4):339-363, 2006]
M1 Introduction M2
M1 Introduction M2 Before calculating the differences a matching phase has to be performed to identify the elements which have to be compared
Model matching There are several requirements for model matching approaches including  accuracy level of abstraction tool independence efficiency user effort Existing model matching approaches can be distinguished according to the following classification Static Identity-Based Matching Signature-Based Matching Similarity-Based Matching Custom Language-Specific Matching Algorithms There is no single best solution to model matching
Static Identity-Based Matching It is assumed that each model element has a persistent and non-volatile unique identifier that is assigned to it upon creation A basic approach for matching models is to identify matching model elements based on their corresponding identities Pros ,[object Object]
it is particularly fastCons ,[object Object],[object Object],[object Object],[object Object]
They drastically reduce the search spaceCons ,[object Object],[object Object]
Some model matching approaches
Case study Modified version of M1 Sample UML model M1 the classes School and Student have been moved to a new package administration; the parameter student of the operation register in the class School has been modified by changing its type from String to Student; the attribute surname has been added in the class Student the attribute yearsOld has been renamed to age; the class Person has been added in the new package administration; the package inventory has been added in the package school
Case study > Static identity-based matching  It is able to detect all the modifications without any user effort Even the renaming of the attribute yearsOld can be correctly discovered Fragment of the differences calculated by TOPCASED tool
Case study > Signature-Based Matching It is not is not able to detect all the changes The modifications to the School and Student classes have been detected as deletions and additions of new ones with new structural features Differences calculated by EMFCompare
Case study > Signature-Based Matching It is not is not able to detect all the changes The modifications to the School and Student classes have been detected as deletions and additions of new ones with new structural features Although it is still possible to build the final model starting from the initial, any analysis cannot rely on the missing tracing information Differences calculated by EMFCompare
Case study > Similarity-Based Matching All the differences have been correctly detected but the renaming of the attribute yearsOld Such a modification is detected as a deletion of the yearsOld attribute and an addition of the age one there is not a match between them that can be specified in general with respect to the semantics of UML Differences calculated by SiDiff
Case study > Custom Language-Specific Matching Algorithms All the modifications are detected we explicitly specified a rule that matches two attributes belonging to matching classes even if they don’t have the same name, as long as their types match and they are also the only attributes of this type within their respective classes Differences calculated by ECL
EMF Compare EMF Compare is an EMFT component providing out-of-the-box model comparison and merging capabilities
EMF Compare > Architectural Issues Since its begining the EMF Compare component has been designed so that every part of the process is extensible
EMF Compare > Architectural Issues Since its begining the EMF Compare component has been designed so that every part of the process is extensible How we can easily implement a matching algorithm capable of encompassing designer-defined heuristics (without too much effort) ?
ECL: Epsilon Comparison Language The aim of the Epsilon Comparison Language (ECL) is to enable users to specify comparison algorithms in a rule-based manner  ECL is a hybrid rule-based language which is used in combination with EMF Compare A ECL specification defines a matching algorithm for EMF Compare The specified rules permit to identify pairs of matching elements between two models ECL is part of the Eclipse GMT project: http://www.eclipse.org/gmt/epsilon/doc/ecl/
ECL > Abstractsyntax
ECL > Abstractsyntax A match rule has three parts:  - the guard part; - the compare part;  - the do part;
ECL > Abstractsyntax The guard part is an EOL expression or statement block that further limits the applicability of the rule to an even narrower range of elements than that specified by the left and right Parameters
ECL > Abstractsyntax The compare part is an EOL expression or statement block that is responsible for comparing a pair of elements and deciding if they match or not
ECL > Abstractsyntax The do part is an EOL expression or block that is executed if the compare part returns true to perform any additional actions required
ECL > Abstractsyntax Pre and Post blocks are named blocks of EOL statements which as discussed in the sequel are executed before and after the match-rules have been executed respectively.
ECL > Concrete syntax Concrete syntaxof a MatchRule Concrete syntaxof a Pre and Post block
ECL > Comparison Outcome The result of comparing two models with ECL is a model containing  a trace (MatchTrace) that consists of a number of matches (Match) Each match holds  a reference to the objects from the two models that have been compared (left and right),  a boolean value that indicates if they have been found to be matching or not,  a reference to the rule that has made the decision,  and a Map (info) thatis used to hold any additional information required by the user
ECL > MatchTrace
Example (1)
Example (1) Let us consider a labeled tree Sample Treemetamodel
Example (1) > calculated differences with the generic matching algorithm M1 M2 Tree b and all the containedtreeelements (Tree c, Tree d) havebeenremoved Tree e and all the containedtreeelements (Tree c, Tree d) havebeenadded Note that Tree c and Tree d in M1 and M2 are different trees
Example (1) The rule specifies that for two Tree nodes (l and r) to match, they should have the same label Sample Treemetamodel rule Tree2Tree match l : T1!Treewith r : T2!Tree { compare : l.label = r.label } Sample ECL specification
Example (1) > calculated differences with the customized matching algorithm Tree bhasbeenremoved Tree ehasbeenadded TreechasbeenmovedfromTree b toTreed Treed hasbeenmovedfromTreectoTreee This faithfully reflects the designer intentions, i.e. Tree c and Tree d in M1 and M2 are the same!
Example (2) > calculated differences with the generic matching algorithm <Class> c3 and <Package> org (and itsdescendents) havebeenremoved <Class> c1 and <Class> c3 havebeenadded
Example (2) > customizationof the matchingalgorithm ruleClass match l : Left!Classwith r : Right!Class { compare : l.name = r.name do { l.ownedOperation.doMatch(r.ownedOperation); } } @lazy ruleOperation match l : Left!Operationwithr : Right!Operation { compare { -- First check to see if the names and the owning classes match varbasicMatch := l.name = r.name andl.class.matches(r.class); -- If we have only one operation in each class  -- with that name they match if (basicMatch) { if (l.class.hasOnlyOneOp(l.name) andr.class.hasOnlyOneOp(l.name)) { returntrue;} 	else { 	-- Else we have to check their parameters as well returnl.ownedParameter.matches(r.ownedParameter); }} elsereturnfalse; } do {l.ownedParameter.doMatch(r.ownedParameter);} }
Example(2) > results with the customized matching algorithm <Class> c3 and <Package> org havebeenremoved <Class> c1hasbeenmovedfrom<Package> org to<Model> m2 <Operation> op1() hasbeenadded in <Class> c1  <Class> c2 hasbeenadded
Example(3) > beContent beContent is an model-driven platform for designing and maintaining web applications A beContent model consists mainly of the declarative and coordinated specification of three different concerns: the data view is the description of the relational model of the data, in essence it describes the metadata of the application; the content view describes the data sources and how the content is retrieved and aggregated in pages; and finally the interaction view specifies how to manipulate the information entered in the forms, the validation constraints, and additional information which may affect the interaction between the user and the application.
Example (4) > sample beContentmodel
Example (4) > refinedbeContentmodel
Example (4) > calculated differences with the generic matching algorithm
Example (4) > customizationof the matchingalgorithm ruleCustomEntity match l : Left!CustomEntitywith r : Right!CustomEntity { compare :  l.name.fuzzyMatch(r.name) orl.isSplit(r) … } … operationLeft!CustomEntityisSplit(r : Right!CustomEntity) : Boolean { varenumerationFieldSet : OrderedSet(Enumeration) = self.fields.select(e | e.isTypeOf(Left!Enumeration)); varisSplit : Boolean = false; isSplit = not (Right!CustomEntity.allInstances()->select(e | e.superType.isDefined()   and enumerationFieldSet->exists(c | c.isDefined() andc.literals->exists(l | l.name = e.nameande.superType.name = r.name))                                                        )              )->isEmpty(); returnisSplit;                      }
Example (4) > calculated differences with the customized matching algorithm
Modeldifferencesforsupporting system migrations
Modeldifferencesforsupporting system migrations
Modeldifferencesforsupporting system migrations
Modeldifferencesforsupporting system migrations
Modeldifferencesforsupporting system migrations
Modeldifferencesforsupporting system migrations A splitmodificationhasbeenoperated
Modeldifferencesforsupporting system migrations Generatedmigrationtool
Model Matching There is no single best solution to model matching Selecting a model matching approach for the problem at stake involves deciding on a trade-off between the required accuracy and the effort necessary to accomplish the differencing According to our experience, a custom matching algorithm based on infrastructure such as EMF Compare or ECL is deemed appropriate for high accuracy and performance Our arguments are based on practical experience obtained through experimentation with several implementations of matching algorithms and tools
Discussion Especially when dealing with general purpose modeling language, it might be interesting to use also taxonomic/ontology systems, such as WordNet This would have two advantages Ease the task of defining correspondences among names whose meaning is “close” enough Would permit to discover relations which are otherwise hidden in the model
Summary Model differences Matching Algorithm Conflict Management Evolution  in the large (model evolution) in the small (metamodel evolution) Conclusions 115
Managing model conflicts in distributed development
Conflict Management Introduction Model versioning Distributed development Conflict management in MDE Representation of model differences A DSL for conflict specification Syntax Semantics Conclusions and future work
Introduction Model Driven Engineering (MDE) aims at shifting the focus of software development from coding to modeling and considers models as primary artifacts Complex software systems are developed in distributed environments which demands a precise discipline in the management of model versions Conflict management is an unavoidable aspect when dealing with distributed versions of the same artifact
Introduction We propose a Domain-Specific Language for conflict management which is intended to  define conflicts related to the underlying domain-specific semantics and provide different tolerance degree to collisions depending on the particular stage of modeling process
Introduction
Introduction Modeler #1
Introduction Modeler #1 Modeler #2
Introduction / Distributed development
Introduction / Distributed development Visibility changed to private.
Introduction / Distributed development New operation added.
Introduction / Distributed development New constructor added.
Introduction / Distributed development Public or private ?
Introduction / Distributed development Singleton design pattern introduction and violation
Conflict management Identification of changes occurred in each concurrent model version by means of some evolution representation approach
Conflict management Identification of changes occurred in each concurrent model version by means of some evolution representation approach Conflict detection is based on the comparison between concurrent versions of the modifications  It usually relies on a priori analyses of the domain entailing a predefined set of problems and thus admitting false positive and false negative occurrences
Conflict management Identification of changes occurred in each concurrent model version by means of some evolution representation approach Conflict detection is based on the comparison between concurrent versions and usually relies on a priori analyses of the domain entailing a predefined set of problems and thus admitting false positive and false negative occurrences Conflict resolution is a strategy given to reconcile colliding manipulations, in general provided by the developer
A DSL for conflict specification It is relies on the model-based difference representation seen before The conflicts are specified as a left-hand side and a right-hand side representing delta pattern pairs which can not occur in the concurrent modifications at the same time The pattern language allows to specify regular expressions as names of the involved entities Patterns can declare and recall bound variables making it possible to refer to the properties of the current match Other useful features are negative patterns and multiplicity of matches
A model-baseddifferencerepresentation [TOOLS07]
Difference metamodel example
Difference metamodel example MM2MMD
Sample modeldifferencerepresentation
Sample modeldifferencerepresentation
A DSL for conflict specification Metamodel independent, relies on difference models and metamodels
A DSL for conflict specification Metamodelindependent, relies on difference models and metamodels Conflict specification, fine-tunes false positives and negatives and adds fuzziness to conflict management
A DSL for conflict specification ,[object Object]
Conflict specification, fine-tunes false positives and negatives and adds fuzziness to conflict management
Conflict reconciliation, applying well-known resolution criteria,[object Object]
Conflict specification syntax / Example If the right-hand side  violates the Singleton If the left-hand side  introduces the Singleton  design pattern
Interpreting conflict specifications The definitions of conflicts are given precise semantics by means of OCL The graphical representation of OCL expressions is not new and has taken inspiration from the work on Join Point Designation Diagrams (JPDDs)  [SHU05] OCL constructs are embedded in ATL transformations to build rules able to detect interfering modifications Other possible semantics can be given mapping the diagrammatic definition of conflicts toward corresponding rules for instance by graph transformations or declarative techniques
Conflict specification semantics
Conflict specification semantics For each match of the left pattern …
Conflict specification semantics … find a corresponding match of the right pattern
Conflict specification semantics … find a corresponding match of the right pattern The engine looks for matches induced by the left-hand side pattern For each match a variable binding is operated on the right pattern The engine looks for matches induced by the current right-hand side pattern
Conflict specification semantics For each DifferenceElement… … matching rules for metaattributes are applied
Conflict specification semantics For each DifferenceElement… … matching rules for metaattributes are applied … matching rules for structural properties (including relations) are applied
Conflict Management The proposed work is an excerpt of the dissertation of Antonio Cicchetti defended in 2007 and proposes a structural approach for dealing with conflicts not detectable from the syntax level A model-based difference representation approach and a pattern language relying on it enable the management of distributed development Modeling activities requires different levels of strictness in detecting conflicts depending on the stage of the development: for instance at the beginning it might be preferable to be looser Libraries of conflict specifications
Conflict Management A prototypical implementation of the approach based on the AMMA platform is available at http://www.di.univaq.it/cicchetti/conflictManagement.php The approach needs a usability validation which encompasses larger population of conflict cases The DSL could be improved introducing unary conflicts The specification of resolution strategies have to be further investigated, like defining a reconciliation process or minimizing the conflicting portions
Summary Model differences Calculation Representation Visualization Matching Algorithm Conflict Management Evolution  in the large (model evolution) in the small (metamodel evolution) Conclusions 152
Evolution in the large and in the small Model Evolution and Versioning
Introduction  Model Driven Engineering (MDE) is increasingly gaining acceptance in the development of software as a mean to leverage abstraction and render business logic resilient to technological changes Coordinated collections of models and modeling languages are used to describe web applications on different abstraction levels and from different perspectives  Models and metamodels are not preserved from the evolutionary pressure which inevitably affects almost any artifacts, possibly causing a cascade of adaptations 154
Modeling languages Modeling languages can be used to specify problems, solutions and the mapping among them in the corresponding domains abstraction Domain-specific modeling languages ,[object Object],problem domain ,[object Object],General-purpose modeling languages, eg. UML  solution domain
Evolution Any modeling language can be subject to different evolutionary pressures  The evolution of general-purpose modeling languages (GPMLs) is comparable to that of general-purpose languages and tend to be monotone and sparse
Evolution Any modeling language can be subject to different evolutionary pressures  The evolution of general-purpose modeling languages (GPMLs) is comparable to that of general-purpose languages and tend to be monotone and sparse UM 0.8 UML 1.1 UML 1.4 UML 2.0 UML 2.2 UML 0.9 UML 1.3 UML 1.5 UML 2.1.2 1995 1997 2005 2000 2003 2007
Evolution The evolution of domain-specific modeling languages (DSMLs) is more rapid and elaborated as they tend to have a living corpus comparable to that of software Moreover, they require specific support tools which have to be adapted according to the metamodel evolution
Evolution The evolution of domain-specific modeling languages (DSMLs) is more rapid and elaborated as they tend to have a living corpus comparable to that of software Moreover, they require specific support tools which have to be adapted according to the metamodel evolution
Evolution I would like to discuss the problem of the evolution in model-driven development
Evolution I would like to discuss the problem of the evolution in model-driven development engineering MDD MDE
Evolution I would like to discuss the problem of the evolution in model-driven development engineering This talk analyzes the different kinds of co-adaptations distinguishing among co-evolution in the large and in the small when a metamodel undergoes a modification, the conforming models require to be accordingly co-adapted when a new version of a model is produced, the application may require an explicit adaptation of those assets which are not directly reflected by the models and transformations
Summary Introduction Evolution in the Large: MetamodelEvolution Problem-based adaptation Solution-based adaptation Metamodel change classification Transformationaladaptationofmodels Evolution in the Small: Application Model Evolution Data migration Adaptation of specific assets Conclusions and future work
M3 The “language” oflanguages, eg. Ecore Meta Metamodel The modelinglanguage, typicallyusedtoengineerthe applicationdomain, eg. UWE, WebML, beContent M2 Meta modeling architecture Metamodels Instancemodelswhichrepresentproblems and solutions in the application domain M1 Models Tools (VisualEditors) Systems and applicationsrealizing the solutionin the applicationdomain, eg. portals, data-intensive web apps, etc Tools (VisualEditors) Tools (VisualEditors) M0 Tools (VisualEditors) Tools (VisualEditors) Tooln
M3 M2 M1 M0 Metamodel based tools conformsTo Meta Metamodel Metamodel conformsTo Model basedOn edits implementedFor Tool
This is a domain ,[object Object]
P2
P3,[object Object]
P2
P3,[object Object]
P2
P3,[object Object]
P2
P3,[object Object]
P2
P3,[object Object]
P2
P3,[object Object]
Metamodel Model transformations map problems to solutions domain ,[object Object]
P2
P3,[object Object]
S2
P2
P3Metamodel
Metamodel evolution Sometimes metamodels must be adapted, extended or amended to better capture the problems
Metamodel evolution Sometimes metamodels must be adapted, extended or amended to better capture the problems This may happen because  the domains are often only partially analyzed and several instances may be left out new requirements must be considered which will result in a domain refinement or enlargement a more complete understanding of the domain is at hand
Metamodel domain ,[object Object]
P2
P3,[object Object]
P2
P3,[object Object]
M3 Model Transformations conformsTo conformsTo Meta Metamodel conformsTo M2 to from Target Metamodel Source Metamodel TransformationLanguage Source Metamodel conformsTo conformsTo conformsTo M1 Target Model Source Model TransformationRules source target exec TransformationEngine M0
Model Transformations conformsTo conformsTo M3 Meta Metamodel conformsTo M2 to from Target Metamodel Source Metamodel TransformationLanguage Source Metamodel conformsTo conformsTo conformsTo M1 Target Model Source Model TransformationRules source target exec TransformationEngine M0
Model Transformations conformsTo conformsTo M3 Meta Metamodel conformsTo M2 to from Target Metamodel Source Metamodel TransformationLanguage Source Metamodel conformsTo conformsTo conformsTo M1 Target Model Source Model TransformationRules source target exec TransformationEngine M0
Model Transformations conformsTo conformsTo M3 Meta Metamodel conformsTo M2 to from Target Metamodel Source Metamodel TransformationLanguage Source Metamodel conformsTo conformsTo conformsTo M1 Target Model Source Model TransformationRules source target exec TransformationEngine M0
Metamodel changes A metamodel can undergo a number of different kinds of modifications which are classified in  Non-breaking Breaking  The breaking modifications can be divided into Breaking and resolvable: existing instances need to be co-adapted to conform to the new metamodel version. The co-evolution can be automatically operated Breaking and unresolvable: the necessary co-adaptation of existing models can not be automatically computed due to the need of further information [Paige at al 2007]
Metamodel changes classification
Sample Petri Net metamodel changes
Sample Petri Net metamodel changes Breaking and resolvable changes (extract meta-class)
Sample Petri Net metamodel changes Breaking and resolvable changes (extract meta-class) t1 pt1 tp1 p1 p2 p1 p2 pt2 tp2 t2
Sample Petri Net metamodel changes Breaking and unresolvablechange (Addobligatorymetaproperty)
Sample Petri Net metamodel changes weight=? weight=? pt1 tp1 pt1 tp1 p1 p2 p1 p2 pt2 tp2 pt2 tp2 weight=? weight=? Breaking and unresolvablechange (Addobligatorymetaproperty)
Model difference representation
Metamodel difference representation Since a meta-model is a model itself, metamodel differences can be represented by exploiting the previously mentioned approach
Sample metamodeldifferencerepresentation
Transformational adaptation of models Δ consist of an arbitrary combination of the atomic changes In order to distinguish them the following steps are performed: automatic decomposition of Δ in two disjoint (sub) models, ΔR and Δ¬R, which denote breaking resolvable and unresolvable changes; if ΔR and Δ¬R are parallel independent then we separately generate the corresponding co-evolutions; if ΔR and Δ¬R are parallel dependent, they are further refined to identify and isolate the interdependencies causing the interferences
Transformationaladaptationofmodels: example Δ(0,1)
Transformationaladaptationofmodels: example Restrictmetapropertychange Extractmetaclasschanges Δ(0,1)
Transformationaladaptationofmodels: example moduleH_R; createOUT : ATL from Delta : KM3Diff; ruleCreateRenaming { … } ruleCreateExtractMetaClass{ … } … HR ΔR(0,1)
Transformationaladaptationofmodels: example moduleH_R; createOUT : ATL from Delta : KM3Diff; ruleCreateRenaming { … } ruleCreateExtractMetaClass{ … } … HR module CTR; create OUT : MM1 from IN : MM0; … rulecreatePTArc(s : OclAny, n : OclAny) { … } rulecreateTPArc(s : OclAny, n : OclAny) { … } ΔR(0,1) CTR
Transformationaladaptationofmodels: example CTR t1 pt1 tp1 p1 p2 p1 p2 pt2 tp2 t2
Transformationaladaptationofmodels: example module H_NR; createOUT : ATL from Delta : KM3Diff; rule CreateRestrictMetaproperty{ … } ruleAddObligatoryMetaclass{ … } … Δ¬R(0,1) H¬R
Transformationaladaptationofmodels: example module H_NR; createOUT : ATL from Delta : KM3Diff; rule CreateRestrictMetaproperty{ … } ruleAddObligatoryMetaclass{ … } … Δ¬R(0,1) H¬R module CTR; create OUT : MM1 from IN : MM0; …helper context MM2!Net def:createPlaceInstances() : Sequence (MM2!Place) = if (thisModule.placeInstances < 1) then thisModule.createPlace(self)	->asSequence()	->union(self.createPlaceInstances()) else Sequence{} endif; … CT¬R
Parallel dependent modifications The automatic co-adaptation of models relies on the parallel independence of breaking resolvable and unresolvable modifications, or more formally ΔR|Δ¬R = ΔR;Δ¬R +Δ¬R;ΔR where + denotes the non-deterministic choice
Parallel dependent modifications The automatic co-adaptation of models relies on the parallel independence of breaking resolvable and unresolvable modifications, or more formally ΔR|Δ¬R = ΔR;Δ¬R +Δ¬R;ΔR where + denotes the non-deterministic choice Bad news: the parallel independence of changes is not assured, ie. multiple changes can be interdependent one another
Parallel dependent modifications
Parallel dependent modifications The differences between MM2 and MM0 are not parallel independent (although the sub steps MM0−MM1 and MM1 − MM2 are directly manageable) The interdependenciesbetween the atomic changes in MM2 − MM0 have to be isolated (i.e. the attribute weight of the Arc metaclass of MM2)
Resolving dependences We analyzed the kind of interdependencies among breaking resolvable and breaking unresolvable changes We found out that these interdependencies do not depend on the specific metamodel, rather only on the meta metamodel (eg. Ecore, MOF, KM3) [ICMT 2009]
Resolving dependences Sufficient criteria have been given to establish the correct scheduling of the conflicting changes
Resolving dependences An alternative approach ([1]) is based on a lazy evaluation mechanism which queues up adaptations which require unavailable information We have found that for KM3, Ecore, and MOF interdependencies are not circular and that they only depend on the meta metamodel This implies that it is possible to find the exact scheduling of the adaptation steps w/o queuing them [1] Narayanan, Levendovszky, Balasubramanian, Karsai: Domain ModelMigrationtoManageMetamodelEvolution, MoDELS 2009
Approach This is a general approach which can be applied to any metamodel (so far it works for KM3 metamodels, Ecore and MOF are under study), it permits the management of complex metamodel modifications (in contrast with current approaches) the complete automatic adaptation of models (breaking non resolvable via transformation refinements) We are currently working on the migration of UWE models
Summary Introduction Evolution in the Large: Metamodel Evolution (XLE) Problem-based adaptation Solution-based adaptation Metamodel change classification Transformationaladaptationofmodels Evolution in the Small: Application Model Evolution (XSE) Data migration Adaptation of specific assets Conclusions and future work
Solution-based adaptation The chosen generic modeling platform – intended as a set of languages, systems, and transformation paradigms – may affect the metamodel life-cycle In fact, sometimes metamodels must be changed in order to permit solutions which are otherwise not admissible
beContent beContent is an model-driven platform for designing and maintaining web applications A beContent model consists mainly of the declarative and coordinated specification of three different concerns: the data view is the description of the relational model of the data, in essence it describes the metadata of the application; the content view describes the data sources and how the content is retrieved and aggregated in pages; and finally the interaction view specifies how to manipulate the information entered in the forms, the validation constraints, and additional information which may affect the interaction between the user and the application.
beContent ECLIPSE GMF AMMA TCS beContentMetamodel ECLIPSE Ecore ACCELEO AMMA ATL ACCELEO
beContent architecture BML BTL round-tripping ECLIPSE GMF AMMA TCS ECLIPSE GMF AMMA TCS beContentMetamodel beContentMetamodel ECLIPSE Ecore ECLIPSE Ecore M2C M2M ACCELEO AMMA ATL ACCELEO AMMA ATL M2C M2C PHPMySQL ACCELEO ACCELEO ACCELEO J2EE/Liferay .NET
BML – beContent Modeling Language [demo at ICWE 2009]
BMM – beContentMetamodel
BMM – beContentMetamodel
BMM – beContentMetamodel . . . Metamodel fragment Model fragment
Problem: a simple text generation Generate a text file containing source code based on information which is retrieved from different instances of the same metaclass
Problem: a simple text generation . . . ...
Problem: a simple text generation Generate a text file containing source code based on information which is retrieved from different instances of the same metaclass This is not easy as it may appear as templating languages (in contrast with M2M languages) do not always have the querying power of OCL In particular, this can be achieved either using external Java helpers or changing the metamodel in such a way these instances must be within a container
Refactoring the metamodel MM v1.0 MM v2.0
Problem: a simple text generation In this scenario, a simple change of the metamodel from v1.0 to v2.0 is already pretty troublesome as it would require  the adaptation of the models, which can be performed automatically as shown before the manual adaptation of the tools A possible workaround …
Hiding the metamodel refactoring Δ Metamodel  v1.0 Metamodel  v2.0 conformsTo conformsTo adapt(Δ) Model (v2.0) Model (v1.0) M2T Source code
Evolution in the large – open questions Automating the co-adaptation of models is only one aspect of the evolution of metamodels, nevertheless it is already very complex and presents open questions Metamodel difference calculation: it is very difficult, none of the available approaches are really satisfactory because of domain semantics, similarity metrics, etc Update: we are having interesting result by combining EMF Compare and ECL for Ecoremetamodels differencing Overriding default adaptation with ad-hoc refactorings Semantics preserving ? Validation, everybody is very keen on keeping her/his models secret :-)
Summary Introduction Evolution in the Large: Metamodel Evolution (XLE) Problem-based adaptation Solution-based adaptation Metamodel change classification Transformationaladaptationofmodels Evolution in the Small: Application Model Evolution (XSE) Data migration Adaptation of specific assets Conclusions and future work
Evolution in the small Manual modifications Model (v1.0) Model (v2.0) T T System” System’

More Related Content

What's hot

A practical approach for model based slicing
A practical approach for model based slicingA practical approach for model based slicing
A practical approach for model based slicingIOSR Journals
 
A novel methodology for test scenario generation based on control flow analys...
A novel methodology for test scenario generation based on control flow analys...A novel methodology for test scenario generation based on control flow analys...
A novel methodology for test scenario generation based on control flow analys...eSAT Publishing House
 
Using Model-Driven Engineering for Decision Support Systems Modelling, Implem...
Using Model-Driven Engineering for Decision Support Systems Modelling, Implem...Using Model-Driven Engineering for Decision Support Systems Modelling, Implem...
Using Model-Driven Engineering for Decision Support Systems Modelling, Implem...CSCJournals
 
Crosscutting Specification Interference Detection at Aspect Oriented UML-Base...
Crosscutting Specification Interference Detection at Aspect Oriented UML-Base...Crosscutting Specification Interference Detection at Aspect Oriented UML-Base...
Crosscutting Specification Interference Detection at Aspect Oriented UML-Base...IJERA Editor
 
Minimal Testcase Generation for Object-Oriented Software with State Charts
Minimal Testcase Generation for Object-Oriented Software with State ChartsMinimal Testcase Generation for Object-Oriented Software with State Charts
Minimal Testcase Generation for Object-Oriented Software with State Chartsijseajournal
 
Self-adaptive Software Modeling Based on Contextual Requirements
Self-adaptive Software Modeling Based on Contextual RequirementsSelf-adaptive Software Modeling Based on Contextual Requirements
Self-adaptive Software Modeling Based on Contextual RequirementsTELKOMNIKA JOURNAL
 
Validation and Verification of SYSML Activity Diagrams Using HOARE Logic
Validation and Verification of SYSML Activity Diagrams Using HOARE Logic Validation and Verification of SYSML Activity Diagrams Using HOARE Logic
Validation and Verification of SYSML Activity Diagrams Using HOARE Logic ijseajournal
 
STRUCTURAL VALIDATION OF SOFTWARE PRODUCT LINE VARIANTS: A GRAPH TRANSFORMATI...
STRUCTURAL VALIDATION OF SOFTWARE PRODUCT LINE VARIANTS: A GRAPH TRANSFORMATI...STRUCTURAL VALIDATION OF SOFTWARE PRODUCT LINE VARIANTS: A GRAPH TRANSFORMATI...
STRUCTURAL VALIDATION OF SOFTWARE PRODUCT LINE VARIANTS: A GRAPH TRANSFORMATI...IJSEA
 
Generation of Testcases from UML Sequence Diagram and Detecting Deadlocks usi...
Generation of Testcases from UML Sequence Diagram and Detecting Deadlocks usi...Generation of Testcases from UML Sequence Diagram and Detecting Deadlocks usi...
Generation of Testcases from UML Sequence Diagram and Detecting Deadlocks usi...KIIT
 
IJCER (www.ijceronline.com) International Journal of computational Engineerin...
IJCER (www.ijceronline.com) International Journal of computational Engineerin...IJCER (www.ijceronline.com) International Journal of computational Engineerin...
IJCER (www.ijceronline.com) International Journal of computational Engineerin...ijceronline
 
software engineering
software engineeringsoftware engineering
software engineeringAbinaya B
 
MANAGING AND ANALYSING SOFTWARE PRODUCT LINE REQUIREMENTS
MANAGING AND ANALYSING SOFTWARE PRODUCT LINE REQUIREMENTSMANAGING AND ANALYSING SOFTWARE PRODUCT LINE REQUIREMENTS
MANAGING AND ANALYSING SOFTWARE PRODUCT LINE REQUIREMENTSijseajournal
 

What's hot (20)

Weaving models
Weaving modelsWeaving models
Weaving models
 
ListMyPolygons 0.6
ListMyPolygons 0.6ListMyPolygons 0.6
ListMyPolygons 0.6
 
A practical approach for model based slicing
A practical approach for model based slicingA practical approach for model based slicing
A practical approach for model based slicing
 
A novel methodology for test scenario generation based on control flow analys...
A novel methodology for test scenario generation based on control flow analys...A novel methodology for test scenario generation based on control flow analys...
A novel methodology for test scenario generation based on control flow analys...
 
Using Model-Driven Engineering for Decision Support Systems Modelling, Implem...
Using Model-Driven Engineering for Decision Support Systems Modelling, Implem...Using Model-Driven Engineering for Decision Support Systems Modelling, Implem...
Using Model-Driven Engineering for Decision Support Systems Modelling, Implem...
 
Crosscutting Specification Interference Detection at Aspect Oriented UML-Base...
Crosscutting Specification Interference Detection at Aspect Oriented UML-Base...Crosscutting Specification Interference Detection at Aspect Oriented UML-Base...
Crosscutting Specification Interference Detection at Aspect Oriented UML-Base...
 
10.1.1.9.5971 (1)
10.1.1.9.5971 (1)10.1.1.9.5971 (1)
10.1.1.9.5971 (1)
 
COMPSAC 2014
COMPSAC 2014COMPSAC 2014
COMPSAC 2014
 
Minimal Testcase Generation for Object-Oriented Software with State Charts
Minimal Testcase Generation for Object-Oriented Software with State ChartsMinimal Testcase Generation for Object-Oriented Software with State Charts
Minimal Testcase Generation for Object-Oriented Software with State Charts
 
Self-adaptive Software Modeling Based on Contextual Requirements
Self-adaptive Software Modeling Based on Contextual RequirementsSelf-adaptive Software Modeling Based on Contextual Requirements
Self-adaptive Software Modeling Based on Contextual Requirements
 
Validation and Verification of SYSML Activity Diagrams Using HOARE Logic
Validation and Verification of SYSML Activity Diagrams Using HOARE Logic Validation and Verification of SYSML Activity Diagrams Using HOARE Logic
Validation and Verification of SYSML Activity Diagrams Using HOARE Logic
 
Object oriented analysis and design unit- iii
Object oriented analysis and design unit- iiiObject oriented analysis and design unit- iii
Object oriented analysis and design unit- iii
 
Dss
DssDss
Dss
 
STRUCTURAL VALIDATION OF SOFTWARE PRODUCT LINE VARIANTS: A GRAPH TRANSFORMATI...
STRUCTURAL VALIDATION OF SOFTWARE PRODUCT LINE VARIANTS: A GRAPH TRANSFORMATI...STRUCTURAL VALIDATION OF SOFTWARE PRODUCT LINE VARIANTS: A GRAPH TRANSFORMATI...
STRUCTURAL VALIDATION OF SOFTWARE PRODUCT LINE VARIANTS: A GRAPH TRANSFORMATI...
 
Generation of Testcases from UML Sequence Diagram and Detecting Deadlocks usi...
Generation of Testcases from UML Sequence Diagram and Detecting Deadlocks usi...Generation of Testcases from UML Sequence Diagram and Detecting Deadlocks usi...
Generation of Testcases from UML Sequence Diagram and Detecting Deadlocks usi...
 
IJCER (www.ijceronline.com) International Journal of computational Engineerin...
IJCER (www.ijceronline.com) International Journal of computational Engineerin...IJCER (www.ijceronline.com) International Journal of computational Engineerin...
IJCER (www.ijceronline.com) International Journal of computational Engineerin...
 
Object oriented analysis and design unit- ii
Object oriented analysis and design unit- iiObject oriented analysis and design unit- ii
Object oriented analysis and design unit- ii
 
software engineering
software engineeringsoftware engineering
software engineering
 
Object oriented analysis and design unit- v
Object oriented analysis and design unit- vObject oriented analysis and design unit- v
Object oriented analysis and design unit- v
 
MANAGING AND ANALYSING SOFTWARE PRODUCT LINE REQUIREMENTS
MANAGING AND ANALYSING SOFTWARE PRODUCT LINE REQUIREMENTSMANAGING AND ANALYSING SOFTWARE PRODUCT LINE REQUIREMENTS
MANAGING AND ANALYSING SOFTWARE PRODUCT LINE REQUIREMENTS
 

Similar to Model evolution and versioning

Automated chaining of model transformations with incompatible metamodels
Automated chaining of model transformations with incompatible metamodelsAutomated chaining of model transformations with incompatible metamodels
Automated chaining of model transformations with incompatible metamodelsAlfonso Pierantonio
 
CS587 Project - Raychaudhury,Shaalmali
CS587 Project - Raychaudhury,ShaalmaliCS587 Project - Raychaudhury,Shaalmali
CS587 Project - Raychaudhury,Shaalmalisagar.247
 
Evolution in the Large and in the Small in Model-Driven Development
Evolution in the Large and in the Small in Model-Driven DevelopmentEvolution in the Large and in the Small in Model-Driven Development
Evolution in the Large and in the Small in Model-Driven DevelopmentAlfonso Pierantonio
 
Bio-Inspired Requirements Variability Modeling with use Case
Bio-Inspired Requirements Variability Modeling with use Case Bio-Inspired Requirements Variability Modeling with use Case
Bio-Inspired Requirements Variability Modeling with use Case ijseajournal
 
BIO-INSPIRED REQUIREMENTS VARIABILITY MODELING WITH USE CASE
BIO-INSPIRED REQUIREMENTS VARIABILITY MODELING WITH USE CASE BIO-INSPIRED REQUIREMENTS VARIABILITY MODELING WITH USE CASE
BIO-INSPIRED REQUIREMENTS VARIABILITY MODELING WITH USE CASE mathsjournal
 
MOSKitt Transformations And Traceability
MOSKitt Transformations And TraceabilityMOSKitt Transformations And Traceability
MOSKitt Transformations And TraceabilityJavier Muñoz
 
Transformation Templates: Adding Flexibilityto Model-Driven Engineering of Us...
Transformation Templates: Adding Flexibilityto Model-Driven Engineering of Us...Transformation Templates: Adding Flexibilityto Model-Driven Engineering of Us...
Transformation Templates: Adding Flexibilityto Model-Driven Engineering of Us...Jean Vanderdonckt
 
Integrating profiling into mde compilers
Integrating profiling into mde compilersIntegrating profiling into mde compilers
Integrating profiling into mde compilersijseajournal
 
MEASURE’s Structured Metrics Meta-Model Module at TAROT 2016
MEASURE’s Structured Metrics Meta-Model Module at TAROT 2016MEASURE’s Structured Metrics Meta-Model Module at TAROT 2016
MEASURE’s Structured Metrics Meta-Model Module at TAROT 2016Alessandra Bagnato
 
MDE 2.0.: pragmatic model verification and other stories - Habilitation publi...
MDE 2.0.: pragmatic model verification and other stories - Habilitation publi...MDE 2.0.: pragmatic model verification and other stories - Habilitation publi...
MDE 2.0.: pragmatic model verification and other stories - Habilitation publi...Jordi Cabot
 
Model Driven Hypermedia Development Method
Model Driven Hypermedia Development MethodModel Driven Hypermedia Development Method
Model Driven Hypermedia Development MethodCarlos Solís
 
PHP modernization approach generating KDM models from PHP legacy code
PHP modernization approach generating KDM models from PHP legacy codePHP modernization approach generating KDM models from PHP legacy code
PHP modernization approach generating KDM models from PHP legacy codejournalBEEI
 
xUMLFinalPresentation.ppt
xUMLFinalPresentation.pptxUMLFinalPresentation.ppt
xUMLFinalPresentation.pptssuser2ef938
 
Automatically bridging UML profiles into MOF metamodels
Automatically bridging UML profiles into MOF metamodelsAutomatically bridging UML profiles into MOF metamodels
Automatically bridging UML profiles into MOF metamodelsIvano Malavolta
 
Bio inspired use case variability modelling, ijsea
Bio inspired use case variability modelling, ijseaBio inspired use case variability modelling, ijsea
Bio inspired use case variability modelling, ijseaijseajournal
 
ALMOsT.js: an Agile Model to Model and Model to Text Transformation Framework
ALMOsT.js: an Agile Model to Model and Model to Text Transformation FrameworkALMOsT.js: an Agile Model to Model and Model to Text Transformation Framework
ALMOsT.js: an Agile Model to Model and Model to Text Transformation FrameworkCarlo Bernaschina
 
Measurement and metrics in model driven software development
Measurement and metrics in model driven software developmentMeasurement and metrics in model driven software development
Measurement and metrics in model driven software developmentSelman Bozkır
 
Web apps architecture
Web apps architectureWeb apps architecture
Web apps architectureTanmoy Barman
 

Similar to Model evolution and versioning (20)

Automated chaining of model transformations with incompatible metamodels
Automated chaining of model transformations with incompatible metamodelsAutomated chaining of model transformations with incompatible metamodels
Automated chaining of model transformations with incompatible metamodels
 
CS587 Project - Raychaudhury,Shaalmali
CS587 Project - Raychaudhury,ShaalmaliCS587 Project - Raychaudhury,Shaalmali
CS587 Project - Raychaudhury,Shaalmali
 
Evolution in the Large and in the Small in Model-Driven Development
Evolution in the Large and in the Small in Model-Driven DevelopmentEvolution in the Large and in the Small in Model-Driven Development
Evolution in the Large and in the Small in Model-Driven Development
 
Bio-Inspired Requirements Variability Modeling with use Case
Bio-Inspired Requirements Variability Modeling with use Case Bio-Inspired Requirements Variability Modeling with use Case
Bio-Inspired Requirements Variability Modeling with use Case
 
BIO-INSPIRED REQUIREMENTS VARIABILITY MODELING WITH USE CASE
BIO-INSPIRED REQUIREMENTS VARIABILITY MODELING WITH USE CASE BIO-INSPIRED REQUIREMENTS VARIABILITY MODELING WITH USE CASE
BIO-INSPIRED REQUIREMENTS VARIABILITY MODELING WITH USE CASE
 
MOSKitt Transformations And Traceability
MOSKitt Transformations And TraceabilityMOSKitt Transformations And Traceability
MOSKitt Transformations And Traceability
 
Transformation Templates: Adding Flexibilityto Model-Driven Engineering of Us...
Transformation Templates: Adding Flexibilityto Model-Driven Engineering of Us...Transformation Templates: Adding Flexibilityto Model-Driven Engineering of Us...
Transformation Templates: Adding Flexibilityto Model-Driven Engineering of Us...
 
Integrating profiling into mde compilers
Integrating profiling into mde compilersIntegrating profiling into mde compilers
Integrating profiling into mde compilers
 
MEASURE’s Structured Metrics Meta-Model Module at TAROT 2016
MEASURE’s Structured Metrics Meta-Model Module at TAROT 2016MEASURE’s Structured Metrics Meta-Model Module at TAROT 2016
MEASURE’s Structured Metrics Meta-Model Module at TAROT 2016
 
MDE 2.0.: pragmatic model verification and other stories - Habilitation publi...
MDE 2.0.: pragmatic model verification and other stories - Habilitation publi...MDE 2.0.: pragmatic model verification and other stories - Habilitation publi...
MDE 2.0.: pragmatic model verification and other stories - Habilitation publi...
 
Model Driven Hypermedia Development Method
Model Driven Hypermedia Development MethodModel Driven Hypermedia Development Method
Model Driven Hypermedia Development Method
 
PHP modernization approach generating KDM models from PHP legacy code
PHP modernization approach generating KDM models from PHP legacy codePHP modernization approach generating KDM models from PHP legacy code
PHP modernization approach generating KDM models from PHP legacy code
 
xUMLFinalPresentation.ppt
xUMLFinalPresentation.pptxUMLFinalPresentation.ppt
xUMLFinalPresentation.ppt
 
Automatically bridging UML profiles into MOF metamodels
Automatically bridging UML profiles into MOF metamodelsAutomatically bridging UML profiles into MOF metamodels
Automatically bridging UML profiles into MOF metamodels
 
Bio inspired use case variability modelling, ijsea
Bio inspired use case variability modelling, ijseaBio inspired use case variability modelling, ijsea
Bio inspired use case variability modelling, ijsea
 
Micro Electro Mechanical Systems (MEMS) - Lecture 06
Micro Electro Mechanical Systems (MEMS) - Lecture 06Micro Electro Mechanical Systems (MEMS) - Lecture 06
Micro Electro Mechanical Systems (MEMS) - Lecture 06
 
ALMOsT.js: an Agile Model to Model and Model to Text Transformation Framework
ALMOsT.js: an Agile Model to Model and Model to Text Transformation FrameworkALMOsT.js: an Agile Model to Model and Model to Text Transformation Framework
ALMOsT.js: an Agile Model to Model and Model to Text Transformation Framework
 
Measurement and metrics in model driven software development
Measurement and metrics in model driven software developmentMeasurement and metrics in model driven software development
Measurement and metrics in model driven software development
 
5
55
5
 
Web apps architecture
Web apps architectureWeb apps architecture
Web apps architecture
 

More from Alfonso Pierantonio

Uncertainty and variability in industry-scale projects: Pearls, perils and p...
Uncertainty and variability in industry-scale projects: Pearls, perils and p...Uncertainty and variability in industry-scale projects: Pearls, perils and p...
Uncertainty and variability in industry-scale projects: Pearls, perils and p...Alfonso Pierantonio
 
Fixing Classification: A Viewpoint-Based Approach
Fixing Classification: A Viewpoint-Based Approach Fixing Classification: A Viewpoint-Based Approach
Fixing Classification: A Viewpoint-Based Approach Alfonso Pierantonio
 
Aut tace, Aut Loquere meliora Silentio (and the Likes)
Aut tace, Aut Loquere meliora Silentio (and the Likes) Aut tace, Aut Loquere meliora Silentio (and the Likes)
Aut tace, Aut Loquere meliora Silentio (and the Likes) Alfonso Pierantonio
 
Presentazione del Corso di Laurea in Informatica - L'Aquila
Presentazione del Corso di Laurea in Informatica - L'AquilaPresentazione del Corso di Laurea in Informatica - L'Aquila
Presentazione del Corso di Laurea in Informatica - L'AquilaAlfonso Pierantonio
 
MDE Adoption: a three legged chair
MDE Adoption:  a three legged chairMDE Adoption:  a three legged chair
MDE Adoption: a three legged chairAlfonso Pierantonio
 
Keynote at Educators Symposium, ACM/IEEE 19th Intl. Conference on Model Drive...
Keynote at Educators Symposium, ACM/IEEE 19th Intl. Conference on Model Drive...Keynote at Educators Symposium, ACM/IEEE 19th Intl. Conference on Model Drive...
Keynote at Educators Symposium, ACM/IEEE 19th Intl. Conference on Model Drive...Alfonso Pierantonio
 
Model Management in Model-Driven Engineering
Model Management in Model-Driven EngineeringModel Management in Model-Driven Engineering
Model Management in Model-Driven EngineeringAlfonso Pierantonio
 
Supporting Users to Manage Breaking and Unresolvable Changes in Coupled Evolu...
Supporting Users to Manage Breaking and Unresolvable Changes in Coupled Evolu...Supporting Users to Manage Breaking and Unresolvable Changes in Coupled Evolu...
Supporting Users to Manage Breaking and Unresolvable Changes in Coupled Evolu...Alfonso Pierantonio
 
Managing Uncertainty in Bidirectional Model Transformations
Managing Uncertainty in Bidirectional Model Transformations Managing Uncertainty in Bidirectional Model Transformations
Managing Uncertainty in Bidirectional Model Transformations Alfonso Pierantonio
 
Non determinism and bidirectional model transformations
Non determinism and bidirectional model transformationsNon determinism and bidirectional model transformations
Non determinism and bidirectional model transformationsAlfonso Pierantonio
 
Mining Metrics for Understanding Metamodel Characteristics
Mining Metrics for Understanding Metamodel CharacteristicsMining Metrics for Understanding Metamodel Characteristics
Mining Metrics for Understanding Metamodel CharacteristicsAlfonso Pierantonio
 
Mise14 @ ICSE1 14 Uncertainty in Bidirectional Transformations
Mise14 @ ICSE1 14 Uncertainty in Bidirectional TransformationsMise14 @ ICSE1 14 Uncertainty in Bidirectional Transformations
Mise14 @ ICSE1 14 Uncertainty in Bidirectional TransformationsAlfonso Pierantonio
 
Evolutionary Togetherness: How to Manage Coupled Evolution in Metamodeling Ec...
Evolutionary Togetherness: How to Manage Coupled Evolution in Metamodeling Ec...Evolutionary Togetherness: How to Manage Coupled Evolution in Metamodeling Ec...
Evolutionary Togetherness: How to Manage Coupled Evolution in Metamodeling Ec...Alfonso Pierantonio
 
Managing the evolution of F/OSS with Model Driven Techniques
Managing the evolution of F/OSS with Model Driven TechniquesManaging the evolution of F/OSS with Model Driven Techniques
Managing the evolution of F/OSS with Model Driven TechniquesAlfonso Pierantonio
 
What is needed for managing co-evolution in MDE?
What is needed for managing co-evolution in MDE?What is needed for managing co-evolution in MDE?
What is needed for managing co-evolution in MDE?Alfonso Pierantonio
 

More from Alfonso Pierantonio (16)

2023-04 OA 2.pptx
2023-04 OA 2.pptx2023-04 OA 2.pptx
2023-04 OA 2.pptx
 
Uncertainty and variability in industry-scale projects: Pearls, perils and p...
Uncertainty and variability in industry-scale projects: Pearls, perils and p...Uncertainty and variability in industry-scale projects: Pearls, perils and p...
Uncertainty and variability in industry-scale projects: Pearls, perils and p...
 
Fixing Classification: A Viewpoint-Based Approach
Fixing Classification: A Viewpoint-Based Approach Fixing Classification: A Viewpoint-Based Approach
Fixing Classification: A Viewpoint-Based Approach
 
Aut tace, Aut Loquere meliora Silentio (and the Likes)
Aut tace, Aut Loquere meliora Silentio (and the Likes) Aut tace, Aut Loquere meliora Silentio (and the Likes)
Aut tace, Aut Loquere meliora Silentio (and the Likes)
 
Presentazione del Corso di Laurea in Informatica - L'Aquila
Presentazione del Corso di Laurea in Informatica - L'AquilaPresentazione del Corso di Laurea in Informatica - L'Aquila
Presentazione del Corso di Laurea in Informatica - L'Aquila
 
MDE Adoption: a three legged chair
MDE Adoption:  a three legged chairMDE Adoption:  a three legged chair
MDE Adoption: a three legged chair
 
Keynote at Educators Symposium, ACM/IEEE 19th Intl. Conference on Model Drive...
Keynote at Educators Symposium, ACM/IEEE 19th Intl. Conference on Model Drive...Keynote at Educators Symposium, ACM/IEEE 19th Intl. Conference on Model Drive...
Keynote at Educators Symposium, ACM/IEEE 19th Intl. Conference on Model Drive...
 
Model Management in Model-Driven Engineering
Model Management in Model-Driven EngineeringModel Management in Model-Driven Engineering
Model Management in Model-Driven Engineering
 
Supporting Users to Manage Breaking and Unresolvable Changes in Coupled Evolu...
Supporting Users to Manage Breaking and Unresolvable Changes in Coupled Evolu...Supporting Users to Manage Breaking and Unresolvable Changes in Coupled Evolu...
Supporting Users to Manage Breaking and Unresolvable Changes in Coupled Evolu...
 
Managing Uncertainty in Bidirectional Model Transformations
Managing Uncertainty in Bidirectional Model Transformations Managing Uncertainty in Bidirectional Model Transformations
Managing Uncertainty in Bidirectional Model Transformations
 
Non determinism and bidirectional model transformations
Non determinism and bidirectional model transformationsNon determinism and bidirectional model transformations
Non determinism and bidirectional model transformations
 
Mining Metrics for Understanding Metamodel Characteristics
Mining Metrics for Understanding Metamodel CharacteristicsMining Metrics for Understanding Metamodel Characteristics
Mining Metrics for Understanding Metamodel Characteristics
 
Mise14 @ ICSE1 14 Uncertainty in Bidirectional Transformations
Mise14 @ ICSE1 14 Uncertainty in Bidirectional TransformationsMise14 @ ICSE1 14 Uncertainty in Bidirectional Transformations
Mise14 @ ICSE1 14 Uncertainty in Bidirectional Transformations
 
Evolutionary Togetherness: How to Manage Coupled Evolution in Metamodeling Ec...
Evolutionary Togetherness: How to Manage Coupled Evolution in Metamodeling Ec...Evolutionary Togetherness: How to Manage Coupled Evolution in Metamodeling Ec...
Evolutionary Togetherness: How to Manage Coupled Evolution in Metamodeling Ec...
 
Managing the evolution of F/OSS with Model Driven Techniques
Managing the evolution of F/OSS with Model Driven TechniquesManaging the evolution of F/OSS with Model Driven Techniques
Managing the evolution of F/OSS with Model Driven Techniques
 
What is needed for managing co-evolution in MDE?
What is needed for managing co-evolution in MDE?What is needed for managing co-evolution in MDE?
What is needed for managing co-evolution in MDE?
 

Recently uploaded

ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...JhezDiaz1
 
Judging the Relevance and worth of ideas part 2.pptx
Judging the Relevance  and worth of ideas part 2.pptxJudging the Relevance  and worth of ideas part 2.pptx
Judging the Relevance and worth of ideas part 2.pptxSherlyMaeNeri
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTiammrhaywood
 
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfLike-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfMr Bounab Samir
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)lakshayb543
 
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONHumphrey A Beña
 
ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfSpandanaRallapalli
 
Proudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxProudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxthorishapillay1
 
Roles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceRoles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceSamikshaHamane
 
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxBarangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxCarlos105
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxAnupkumar Sharma
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPCeline George
 
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfAMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfphamnguyenenglishnb
 
Choosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for ParentsChoosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for Parentsnavabharathschool99
 
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...Postal Advocate Inc.
 

Recently uploaded (20)

ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
 
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptxLEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
 
Judging the Relevance and worth of ideas part 2.pptx
Judging the Relevance  and worth of ideas part 2.pptxJudging the Relevance  and worth of ideas part 2.pptx
Judging the Relevance and worth of ideas part 2.pptx
 
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
 
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
 
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfLike-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
 
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptxYOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
 
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
 
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptxYOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
 
ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdf
 
Proudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxProudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptx
 
Roles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceRoles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in Pharmacovigilance
 
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxBarangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERP
 
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfAMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
 
Choosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for ParentsChoosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for Parents
 
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
 

Model evolution and versioning

  • 1. Model Evolution and Versioning Alfonso Pierantonio Dipartimento di InformaticaUniversità degli Studi dell’Aquila alfonso.pierantonio@univaq.it
  • 2. 2 Objectives Model-DrivenEngineeringrequires mature and adequatemodel management in ordertoachieveits full potential. Thiscannotleaveaside the problemofmodeldifferencing. Thislecturewillprovideinsights on the problemofmodeldifferencingoutlining the potentialsofitsapplication.
  • 3. 3 Modeldifferences and evolution Modeldifferences and evolution The ability to detect and represent structural changes in subsequent versions of a (meta) model
  • 4. 4 Modeldifferences and evolution Modeldifferences and evolution There is no way to understand the rationale behind these modifications
  • 5. 5 Modeldifferences and evolution Modeldifferences and evolution
  • 6. 6 Modeldifferences and evolution Modeldifferences and evolution ? Q1: How to detect such evolution ?
  • 7. 7 Modeldifferences and evolution Modeldifferences and evolution ? Q2: How to represent it in sucha way it can be conveyed to model transformations ?
  • 8. 8 Modeldifferences and evolution Modeldifferences and evolution ? Q3: Which kind of applications can be realized by representing the evolution by means of models ?
  • 9. 9 Modeldifferences and evolution A satisfactory representation of differences can enables a wide range of applications Modeldifferences and evolution
  • 10. 10 Modeldifferences and evolution Modeldifferences and evolution Model evolution may require the adaptation of artefacts which are not directly generable from the model Metamodel evolution requires models, transformations, and tools (eg. GMF editors) to be consistently adapted
  • 11.
  • 12. Indeed, the metamodelarchitecture and the formalrelationshipsamongthe layers can fruitfullybeexplotedtothisend
  • 14. Achieving the potential 12 Achieving the great Potential.
  • 15. 13 Achieving the potential Turninginto a nightmare!
  • 16. Summary Model differences Matching Algorithm Conflict Management Evolution in the large (model evolution) in the small (metamodel evolution) Conclusions 14
  • 17. Modeldifferences Model Evolution and Versioning 15
  • 18. Model Differences Introduction Representation Requirements Model Difference Approaches Edit Script, Coloring Representing Model Differences Difference Metamodel, Difference Models Difference Application Patches Operations with Differences Dual, Sequential and Parallel Composition Conclusions and Future Work
  • 19. Introduction The problem of model differences is intrinsically complex and requires specialized algorithms and notations Any solution should necessarily present a high degree of separation between three relevant aspects calculation, a procedure, method or algorithm able to compare two distinct models representation, the outcome of the calculation must be represented in some form visualization, model differences often requires to be visualized in a human-readable notation In currentproposals the distinctionbetween the three aspects are often blurred thus compromising the adoption of generic modelling techniques
  • 20. Introduction The problem of model differencing can be decomposed in two subsequent phases
  • 21. Introduction The problem of model differencing can be decomposed in two subsequent phases 1 Calculation
  • 22. Introduction The problem of model differencing can be decomposed in two subsequent phases 1 2 Calculation Representation
  • 23. Introduction The outcome used for further applications by means of automated transformations and analysis 1 2 3 Calculation Representation Applications : Transformation & Analysis
  • 26. Introduction Thus, the aim is to find a suitable representation for model differences which is independent from the metamodel the models are conforming to abstracts from the calculation method used for differencing the models, regardless whether it is based on persistent ids or structural similarity the outcome of a differencing operation must be usable in automated transformation or analysis
  • 28. Approaches The representation of model differences can be divided into two main techniques Directed deltas, represent delta documents as the sequence of the operations needed to obtain the new version from the old one eg. edit scripts Symmetric deltas, show the result as the set of differences between the two compared versions eg. coloring [Mens 2002]
  • 29. Approaches – Example version 1 (M1)
  • 30. Approaches – Example version 2 (M2) version 1 (M1)
  • 31. Approaches – Example version 2 (M2) version 1 (M1)
  • 32. Approaches – Edit Scripts (eg [Porres et al 2003]) Sequence of actions able to reconstruct the final model starting from the initial one Cons: operational, proprietary format, tool dependent, lengthy, reduced readability
  • 33. Approaches – Coloring (eg [Ohst et al 2003]) Declarative and intuitive Cons: does not hold the following properties Minimalistic Self-contained Transformative Cons: moreover very verbose updates difficult to represent
  • 35. Difference Metamodel (1/3) Given two models M1 and M2 conforming to a metamodelMM, their difference (M2 – M1) conforms to a metamodelMMD that is derived from MM The approach permits the representation of the following modifications additions: new elements are added to the final model deletions: some of the existing elements are deleted changes: a new version of the model can consist of some updates of already existing elements
  • 37. Difference Metamodel (3/3) MM MM2MMD MMD
  • 38. Sample UML models Version 1 Version 2
  • 39. Sample UML models u Version 1 The abstract class HTMLDocElemhas been added Version 2
  • 40. Sample UML models Version 1 The operation dump() has been moved to HTMLDocElem v Version 2
  • 41. Sample UML models w Version 1 The HTMLList class became subclassof HTMLDocElem Version 2
  • 42. Fragment of the Difference Model The abstract class HTMLDocElemhas been added
  • 43. Fragment of the Difference Model The abstract class HTMLDocElemhas been added The operation dump()has been moved from HTMLDocto HTMLDocElem
  • 44. Fragment of the Difference Model The abstract class HTMLDocElemhas been added The operation dump() has been moved from HTMLDoc to HTMLDocElem The HTMLList class became subclassof HTMLDocElem
  • 45. Difference Application Once differences are calculated and represented, they can be applied over models as patches The difference application is intended to “reconstruct” the final model starting from the initial one “patch” any model conforming to the base metamodel for reproducing the modifications
  • 46.
  • 47. patch: MMD  MM  MM
  • 48.
  • 49. Difference Application Rule AddedMC2MC Each AddedMC induces a new MC instance in M2 and the corresponding structural features according to  Rule ChangedMC2MC It updates MC elements in M1 according to the ChangedMCelements in  Rule UnchangedMC2MC It serves for propagating in M2 the context of M1, ie what is left unchanged by  No rules are required for DeletedMC elements since they are simply ignored by the UnchangedMC2MCrule
  • 50. Overall Scenario MM2MMD MM patchtransformation MMD2ATL HOT MMD
  • 51. Overall Scenario MM2MMD MM M2 conformsTo conformsTo M1 patchtransformation MD conformsTo MMD2ATL HOT MMD
  • 52. Difference Operators Dual Given a difference model, it is useful to automatically define its inverse, ie if (M2 – M1) =  the dual -1is such that patch-1(M2) = M1  -1
  • 53. Difference Operators Sequential Composition two or more subsequent modifications can be grouped in a single difference model given 1 = (M2 – M1) and 2 = (M3 – M2) then the sequential composition 1 ; 2 is defined in such a way that patch1; 2 = patch2 patch1 Parallel Composition distributed manipulations of the same artifacts can be merged in a model difference as long as they are parallel indipendent
  • 54. Model Versioning - Patches An interesting scenario discloses when arbitrary models are allowed as input for difference application
  • 55. Model Versioning - Patches An interesting scenario discloses when arbitrary models are allowed as input for difference application
  • 56. Model Versioning - Patches An interesting scenario discloses when arbitrary models are allowed as input for difference application ?
  • 57. Model Versioning - Patches The application of manipulations as patches demands for several properties Self-containedness: The representation of differences should contain enough information to be applied to arbitrary inputs Minimality: The representation should not contain too much information thus locking the application to the initial context Transformability: The application engine should allow several degrees of fuzziness, i.e. it should be able to reproduce a certain modification to appropriate arbitrary entities
  • 58. Overall Scenario MM2MMD MM M2 conformsTo conformsTo M1 Application Model patchtransformation MD conformsTo MMD2ATL HOT MMD
  • 59. Overall Scenario MM2MMD MM M2 conformsTo conformsTo M1 Application Model patchtransformation MD conformsTo MMD2ATL HOT MMD
  • 60.
  • 61. Model Differences Model differences are crucial for general model management and can disclose numerous opportunities Once differences are represented as first-class entities, a number of operations can be defined on them patches, dual, binary compositions, impact evaluation, etc A proof of concept has been implemented on the Eclipse/AMMA platform (http://www.eclipse.org/m2m/atl/usecases/MMIndApproachtoDiffRep)
  • 62. What comes next ? One of the problems of generic differencing methods is that matching algorithms are not always accurate since they are agnostic of the metamodel underlying semantics Formalizing semantics is difficult, thus heuristics can provide some ad-hoc improvement As soon we consider parallel composition the problem conflict specification, detection, and resolution Parallel composition may give place to conflicts whenever the differences are not parallel independent Depending on the process stage we may be interested in tuning false positives and negatives
  • 63. Summary Model differences Matching Algorithm Conflict Management Evolution in the large (model evolution) in the small (metamodel evolution) Conclusions 60
  • 64. Model matching Model Evolution and Versioning 61
  • 65. Outline Introduction Model matching Static Identity-Based Matching Signature-Based Matching Similarity-Based Matching Language-Specific Case study Conclusions
  • 66. Introduction Differencing mechanisms for supporting the evolution of model-based artifacts are becoming crucial Document comparison algorithms provided by version control systems like CVS, and SVN have been shown to be inadequate Calculating model differences is a difficult task since it relies on model matching which can be reduced to the graph isomorphism problem No efficient (i.e., polynomial-bound) algorithm for graph isomorphism is known and it has been conjectured that no such algorithm can exist [Ronald C. Read, Derek G. Corneil. The graph isomorphism disease. Journal of Graph Theory, 1(4):339-363, 2006]
  • 68. M1 Introduction M2 Before calculating the differences a matching phase has to be performed to identify the elements which have to be compared
  • 69. Model matching There are several requirements for model matching approaches including accuracy level of abstraction tool independence efficiency user effort Existing model matching approaches can be distinguished according to the following classification Static Identity-Based Matching Signature-Based Matching Similarity-Based Matching Custom Language-Specific Matching Algorithms There is no single best solution to model matching
  • 70.
  • 71.
  • 72.
  • 73. Some model matching approaches
  • 74. Case study Modified version of M1 Sample UML model M1 the classes School and Student have been moved to a new package administration; the parameter student of the operation register in the class School has been modified by changing its type from String to Student; the attribute surname has been added in the class Student the attribute yearsOld has been renamed to age; the class Person has been added in the new package administration; the package inventory has been added in the package school
  • 75. Case study > Static identity-based matching It is able to detect all the modifications without any user effort Even the renaming of the attribute yearsOld can be correctly discovered Fragment of the differences calculated by TOPCASED tool
  • 76. Case study > Signature-Based Matching It is not is not able to detect all the changes The modifications to the School and Student classes have been detected as deletions and additions of new ones with new structural features Differences calculated by EMFCompare
  • 77. Case study > Signature-Based Matching It is not is not able to detect all the changes The modifications to the School and Student classes have been detected as deletions and additions of new ones with new structural features Although it is still possible to build the final model starting from the initial, any analysis cannot rely on the missing tracing information Differences calculated by EMFCompare
  • 78. Case study > Similarity-Based Matching All the differences have been correctly detected but the renaming of the attribute yearsOld Such a modification is detected as a deletion of the yearsOld attribute and an addition of the age one there is not a match between them that can be specified in general with respect to the semantics of UML Differences calculated by SiDiff
  • 79. Case study > Custom Language-Specific Matching Algorithms All the modifications are detected we explicitly specified a rule that matches two attributes belonging to matching classes even if they don’t have the same name, as long as their types match and they are also the only attributes of this type within their respective classes Differences calculated by ECL
  • 80. EMF Compare EMF Compare is an EMFT component providing out-of-the-box model comparison and merging capabilities
  • 81. EMF Compare > Architectural Issues Since its begining the EMF Compare component has been designed so that every part of the process is extensible
  • 82. EMF Compare > Architectural Issues Since its begining the EMF Compare component has been designed so that every part of the process is extensible How we can easily implement a matching algorithm capable of encompassing designer-defined heuristics (without too much effort) ?
  • 83. ECL: Epsilon Comparison Language The aim of the Epsilon Comparison Language (ECL) is to enable users to specify comparison algorithms in a rule-based manner ECL is a hybrid rule-based language which is used in combination with EMF Compare A ECL specification defines a matching algorithm for EMF Compare The specified rules permit to identify pairs of matching elements between two models ECL is part of the Eclipse GMT project: http://www.eclipse.org/gmt/epsilon/doc/ecl/
  • 85. ECL > Abstractsyntax A match rule has three parts: - the guard part; - the compare part; - the do part;
  • 86. ECL > Abstractsyntax The guard part is an EOL expression or statement block that further limits the applicability of the rule to an even narrower range of elements than that specified by the left and right Parameters
  • 87. ECL > Abstractsyntax The compare part is an EOL expression or statement block that is responsible for comparing a pair of elements and deciding if they match or not
  • 88. ECL > Abstractsyntax The do part is an EOL expression or block that is executed if the compare part returns true to perform any additional actions required
  • 89. ECL > Abstractsyntax Pre and Post blocks are named blocks of EOL statements which as discussed in the sequel are executed before and after the match-rules have been executed respectively.
  • 90. ECL > Concrete syntax Concrete syntaxof a MatchRule Concrete syntaxof a Pre and Post block
  • 91. ECL > Comparison Outcome The result of comparing two models with ECL is a model containing a trace (MatchTrace) that consists of a number of matches (Match) Each match holds a reference to the objects from the two models that have been compared (left and right), a boolean value that indicates if they have been found to be matching or not, a reference to the rule that has made the decision, and a Map (info) thatis used to hold any additional information required by the user
  • 94. Example (1) Let us consider a labeled tree Sample Treemetamodel
  • 95. Example (1) > calculated differences with the generic matching algorithm M1 M2 Tree b and all the containedtreeelements (Tree c, Tree d) havebeenremoved Tree e and all the containedtreeelements (Tree c, Tree d) havebeenadded Note that Tree c and Tree d in M1 and M2 are different trees
  • 96. Example (1) The rule specifies that for two Tree nodes (l and r) to match, they should have the same label Sample Treemetamodel rule Tree2Tree match l : T1!Treewith r : T2!Tree { compare : l.label = r.label } Sample ECL specification
  • 97. Example (1) > calculated differences with the customized matching algorithm Tree bhasbeenremoved Tree ehasbeenadded TreechasbeenmovedfromTree b toTreed Treed hasbeenmovedfromTreectoTreee This faithfully reflects the designer intentions, i.e. Tree c and Tree d in M1 and M2 are the same!
  • 98. Example (2) > calculated differences with the generic matching algorithm <Class> c3 and <Package> org (and itsdescendents) havebeenremoved <Class> c1 and <Class> c3 havebeenadded
  • 99. Example (2) > customizationof the matchingalgorithm ruleClass match l : Left!Classwith r : Right!Class { compare : l.name = r.name do { l.ownedOperation.doMatch(r.ownedOperation); } } @lazy ruleOperation match l : Left!Operationwithr : Right!Operation { compare { -- First check to see if the names and the owning classes match varbasicMatch := l.name = r.name andl.class.matches(r.class); -- If we have only one operation in each class -- with that name they match if (basicMatch) { if (l.class.hasOnlyOneOp(l.name) andr.class.hasOnlyOneOp(l.name)) { returntrue;} else { -- Else we have to check their parameters as well returnl.ownedParameter.matches(r.ownedParameter); }} elsereturnfalse; } do {l.ownedParameter.doMatch(r.ownedParameter);} }
  • 100. Example(2) > results with the customized matching algorithm <Class> c3 and <Package> org havebeenremoved <Class> c1hasbeenmovedfrom<Package> org to<Model> m2 <Operation> op1() hasbeenadded in <Class> c1 <Class> c2 hasbeenadded
  • 101. Example(3) > beContent beContent is an model-driven platform for designing and maintaining web applications A beContent model consists mainly of the declarative and coordinated specification of three different concerns: the data view is the description of the relational model of the data, in essence it describes the metadata of the application; the content view describes the data sources and how the content is retrieved and aggregated in pages; and finally the interaction view specifies how to manipulate the information entered in the forms, the validation constraints, and additional information which may affect the interaction between the user and the application.
  • 102. Example (4) > sample beContentmodel
  • 103. Example (4) > refinedbeContentmodel
  • 104. Example (4) > calculated differences with the generic matching algorithm
  • 105. Example (4) > customizationof the matchingalgorithm ruleCustomEntity match l : Left!CustomEntitywith r : Right!CustomEntity { compare : l.name.fuzzyMatch(r.name) orl.isSplit(r) … } … operationLeft!CustomEntityisSplit(r : Right!CustomEntity) : Boolean { varenumerationFieldSet : OrderedSet(Enumeration) = self.fields.select(e | e.isTypeOf(Left!Enumeration)); varisSplit : Boolean = false; isSplit = not (Right!CustomEntity.allInstances()->select(e | e.superType.isDefined() and enumerationFieldSet->exists(c | c.isDefined() andc.literals->exists(l | l.name = e.nameande.superType.name = r.name)) ) )->isEmpty(); returnisSplit; }
  • 106. Example (4) > calculated differences with the customized matching algorithm
  • 112. Modeldifferencesforsupporting system migrations A splitmodificationhasbeenoperated
  • 114. Model Matching There is no single best solution to model matching Selecting a model matching approach for the problem at stake involves deciding on a trade-off between the required accuracy and the effort necessary to accomplish the differencing According to our experience, a custom matching algorithm based on infrastructure such as EMF Compare or ECL is deemed appropriate for high accuracy and performance Our arguments are based on practical experience obtained through experimentation with several implementations of matching algorithms and tools
  • 115. Discussion Especially when dealing with general purpose modeling language, it might be interesting to use also taxonomic/ontology systems, such as WordNet This would have two advantages Ease the task of defining correspondences among names whose meaning is “close” enough Would permit to discover relations which are otherwise hidden in the model
  • 116. Summary Model differences Matching Algorithm Conflict Management Evolution in the large (model evolution) in the small (metamodel evolution) Conclusions 115
  • 117. Managing model conflicts in distributed development
  • 118. Conflict Management Introduction Model versioning Distributed development Conflict management in MDE Representation of model differences A DSL for conflict specification Syntax Semantics Conclusions and future work
  • 119. Introduction Model Driven Engineering (MDE) aims at shifting the focus of software development from coding to modeling and considers models as primary artifacts Complex software systems are developed in distributed environments which demands a precise discipline in the management of model versions Conflict management is an unavoidable aspect when dealing with distributed versions of the same artifact
  • 120. Introduction We propose a Domain-Specific Language for conflict management which is intended to define conflicts related to the underlying domain-specific semantics and provide different tolerance degree to collisions depending on the particular stage of modeling process
  • 123. Introduction Modeler #1 Modeler #2
  • 125. Introduction / Distributed development Visibility changed to private.
  • 126. Introduction / Distributed development New operation added.
  • 127. Introduction / Distributed development New constructor added.
  • 128. Introduction / Distributed development Public or private ?
  • 129. Introduction / Distributed development Singleton design pattern introduction and violation
  • 130. Conflict management Identification of changes occurred in each concurrent model version by means of some evolution representation approach
  • 131. Conflict management Identification of changes occurred in each concurrent model version by means of some evolution representation approach Conflict detection is based on the comparison between concurrent versions of the modifications It usually relies on a priori analyses of the domain entailing a predefined set of problems and thus admitting false positive and false negative occurrences
  • 132. Conflict management Identification of changes occurred in each concurrent model version by means of some evolution representation approach Conflict detection is based on the comparison between concurrent versions and usually relies on a priori analyses of the domain entailing a predefined set of problems and thus admitting false positive and false negative occurrences Conflict resolution is a strategy given to reconcile colliding manipulations, in general provided by the developer
  • 133. A DSL for conflict specification It is relies on the model-based difference representation seen before The conflicts are specified as a left-hand side and a right-hand side representing delta pattern pairs which can not occur in the concurrent modifications at the same time The pattern language allows to specify regular expressions as names of the involved entities Patterns can declare and recall bound variables making it possible to refer to the properties of the current match Other useful features are negative patterns and multiplicity of matches
  • 139. A DSL for conflict specification Metamodel independent, relies on difference models and metamodels
  • 140. A DSL for conflict specification Metamodelindependent, relies on difference models and metamodels Conflict specification, fine-tunes false positives and negatives and adds fuzziness to conflict management
  • 141.
  • 142. Conflict specification, fine-tunes false positives and negatives and adds fuzziness to conflict management
  • 143.
  • 144. Conflict specification syntax / Example If the right-hand side violates the Singleton If the left-hand side introduces the Singleton design pattern
  • 145. Interpreting conflict specifications The definitions of conflicts are given precise semantics by means of OCL The graphical representation of OCL expressions is not new and has taken inspiration from the work on Join Point Designation Diagrams (JPDDs) [SHU05] OCL constructs are embedded in ATL transformations to build rules able to detect interfering modifications Other possible semantics can be given mapping the diagrammatic definition of conflicts toward corresponding rules for instance by graph transformations or declarative techniques
  • 147. Conflict specification semantics For each match of the left pattern …
  • 148. Conflict specification semantics … find a corresponding match of the right pattern
  • 149. Conflict specification semantics … find a corresponding match of the right pattern The engine looks for matches induced by the left-hand side pattern For each match a variable binding is operated on the right pattern The engine looks for matches induced by the current right-hand side pattern
  • 150. Conflict specification semantics For each DifferenceElement… … matching rules for metaattributes are applied
  • 151. Conflict specification semantics For each DifferenceElement… … matching rules for metaattributes are applied … matching rules for structural properties (including relations) are applied
  • 152. Conflict Management The proposed work is an excerpt of the dissertation of Antonio Cicchetti defended in 2007 and proposes a structural approach for dealing with conflicts not detectable from the syntax level A model-based difference representation approach and a pattern language relying on it enable the management of distributed development Modeling activities requires different levels of strictness in detecting conflicts depending on the stage of the development: for instance at the beginning it might be preferable to be looser Libraries of conflict specifications
  • 153. Conflict Management A prototypical implementation of the approach based on the AMMA platform is available at http://www.di.univaq.it/cicchetti/conflictManagement.php The approach needs a usability validation which encompasses larger population of conflict cases The DSL could be improved introducing unary conflicts The specification of resolution strategies have to be further investigated, like defining a reconciliation process or minimizing the conflicting portions
  • 154. Summary Model differences Calculation Representation Visualization Matching Algorithm Conflict Management Evolution in the large (model evolution) in the small (metamodel evolution) Conclusions 152
  • 155. Evolution in the large and in the small Model Evolution and Versioning
  • 156. Introduction Model Driven Engineering (MDE) is increasingly gaining acceptance in the development of software as a mean to leverage abstraction and render business logic resilient to technological changes Coordinated collections of models and modeling languages are used to describe web applications on different abstraction levels and from different perspectives Models and metamodels are not preserved from the evolutionary pressure which inevitably affects almost any artifacts, possibly causing a cascade of adaptations 154
  • 157.
  • 158. Evolution Any modeling language can be subject to different evolutionary pressures The evolution of general-purpose modeling languages (GPMLs) is comparable to that of general-purpose languages and tend to be monotone and sparse
  • 159. Evolution Any modeling language can be subject to different evolutionary pressures The evolution of general-purpose modeling languages (GPMLs) is comparable to that of general-purpose languages and tend to be monotone and sparse UM 0.8 UML 1.1 UML 1.4 UML 2.0 UML 2.2 UML 0.9 UML 1.3 UML 1.5 UML 2.1.2 1995 1997 2005 2000 2003 2007
  • 160. Evolution The evolution of domain-specific modeling languages (DSMLs) is more rapid and elaborated as they tend to have a living corpus comparable to that of software Moreover, they require specific support tools which have to be adapted according to the metamodel evolution
  • 161. Evolution The evolution of domain-specific modeling languages (DSMLs) is more rapid and elaborated as they tend to have a living corpus comparable to that of software Moreover, they require specific support tools which have to be adapted according to the metamodel evolution
  • 162. Evolution I would like to discuss the problem of the evolution in model-driven development
  • 163. Evolution I would like to discuss the problem of the evolution in model-driven development engineering MDD MDE
  • 164. Evolution I would like to discuss the problem of the evolution in model-driven development engineering This talk analyzes the different kinds of co-adaptations distinguishing among co-evolution in the large and in the small when a metamodel undergoes a modification, the conforming models require to be accordingly co-adapted when a new version of a model is produced, the application may require an explicit adaptation of those assets which are not directly reflected by the models and transformations
  • 165. Summary Introduction Evolution in the Large: MetamodelEvolution Problem-based adaptation Solution-based adaptation Metamodel change classification Transformationaladaptationofmodels Evolution in the Small: Application Model Evolution Data migration Adaptation of specific assets Conclusions and future work
  • 166. M3 The “language” oflanguages, eg. Ecore Meta Metamodel The modelinglanguage, typicallyusedtoengineerthe applicationdomain, eg. UWE, WebML, beContent M2 Meta modeling architecture Metamodels Instancemodelswhichrepresentproblems and solutions in the application domain M1 Models Tools (VisualEditors) Systems and applicationsrealizing the solutionin the applicationdomain, eg. portals, data-intensive web apps, etc Tools (VisualEditors) Tools (VisualEditors) M0 Tools (VisualEditors) Tools (VisualEditors) Tooln
  • 167. M3 M2 M1 M0 Metamodel based tools conformsTo Meta Metamodel Metamodel conformsTo Model basedOn edits implementedFor Tool
  • 168.
  • 169. P2
  • 170.
  • 171. P2
  • 172.
  • 173. P2
  • 174.
  • 175. P2
  • 176.
  • 177. P2
  • 178.
  • 179. P2
  • 180.
  • 181.
  • 182. P2
  • 183.
  • 184. S2
  • 185. P2
  • 187. Metamodel evolution Sometimes metamodels must be adapted, extended or amended to better capture the problems
  • 188. Metamodel evolution Sometimes metamodels must be adapted, extended or amended to better capture the problems This may happen because the domains are often only partially analyzed and several instances may be left out new requirements must be considered which will result in a domain refinement or enlargement a more complete understanding of the domain is at hand
  • 189.
  • 190. P2
  • 191.
  • 192. P2
  • 193.
  • 194. M3 Model Transformations conformsTo conformsTo Meta Metamodel conformsTo M2 to from Target Metamodel Source Metamodel TransformationLanguage Source Metamodel conformsTo conformsTo conformsTo M1 Target Model Source Model TransformationRules source target exec TransformationEngine M0
  • 195. Model Transformations conformsTo conformsTo M3 Meta Metamodel conformsTo M2 to from Target Metamodel Source Metamodel TransformationLanguage Source Metamodel conformsTo conformsTo conformsTo M1 Target Model Source Model TransformationRules source target exec TransformationEngine M0
  • 196. Model Transformations conformsTo conformsTo M3 Meta Metamodel conformsTo M2 to from Target Metamodel Source Metamodel TransformationLanguage Source Metamodel conformsTo conformsTo conformsTo M1 Target Model Source Model TransformationRules source target exec TransformationEngine M0
  • 197. Model Transformations conformsTo conformsTo M3 Meta Metamodel conformsTo M2 to from Target Metamodel Source Metamodel TransformationLanguage Source Metamodel conformsTo conformsTo conformsTo M1 Target Model Source Model TransformationRules source target exec TransformationEngine M0
  • 198. Metamodel changes A metamodel can undergo a number of different kinds of modifications which are classified in Non-breaking Breaking The breaking modifications can be divided into Breaking and resolvable: existing instances need to be co-adapted to conform to the new metamodel version. The co-evolution can be automatically operated Breaking and unresolvable: the necessary co-adaptation of existing models can not be automatically computed due to the need of further information [Paige at al 2007]
  • 200. Sample Petri Net metamodel changes
  • 201. Sample Petri Net metamodel changes Breaking and resolvable changes (extract meta-class)
  • 202. Sample Petri Net metamodel changes Breaking and resolvable changes (extract meta-class) t1 pt1 tp1 p1 p2 p1 p2 pt2 tp2 t2
  • 203. Sample Petri Net metamodel changes Breaking and unresolvablechange (Addobligatorymetaproperty)
  • 204. Sample Petri Net metamodel changes weight=? weight=? pt1 tp1 pt1 tp1 p1 p2 p1 p2 pt2 tp2 pt2 tp2 weight=? weight=? Breaking and unresolvablechange (Addobligatorymetaproperty)
  • 206. Metamodel difference representation Since a meta-model is a model itself, metamodel differences can be represented by exploiting the previously mentioned approach
  • 208. Transformational adaptation of models Δ consist of an arbitrary combination of the atomic changes In order to distinguish them the following steps are performed: automatic decomposition of Δ in two disjoint (sub) models, ΔR and Δ¬R, which denote breaking resolvable and unresolvable changes; if ΔR and Δ¬R are parallel independent then we separately generate the corresponding co-evolutions; if ΔR and Δ¬R are parallel dependent, they are further refined to identify and isolate the interdependencies causing the interferences
  • 211. Transformationaladaptationofmodels: example moduleH_R; createOUT : ATL from Delta : KM3Diff; ruleCreateRenaming { … } ruleCreateExtractMetaClass{ … } … HR ΔR(0,1)
  • 212. Transformationaladaptationofmodels: example moduleH_R; createOUT : ATL from Delta : KM3Diff; ruleCreateRenaming { … } ruleCreateExtractMetaClass{ … } … HR module CTR; create OUT : MM1 from IN : MM0; … rulecreatePTArc(s : OclAny, n : OclAny) { … } rulecreateTPArc(s : OclAny, n : OclAny) { … } ΔR(0,1) CTR
  • 213. Transformationaladaptationofmodels: example CTR t1 pt1 tp1 p1 p2 p1 p2 pt2 tp2 t2
  • 214. Transformationaladaptationofmodels: example module H_NR; createOUT : ATL from Delta : KM3Diff; rule CreateRestrictMetaproperty{ … } ruleAddObligatoryMetaclass{ … } … Δ¬R(0,1) H¬R
  • 215. Transformationaladaptationofmodels: example module H_NR; createOUT : ATL from Delta : KM3Diff; rule CreateRestrictMetaproperty{ … } ruleAddObligatoryMetaclass{ … } … Δ¬R(0,1) H¬R module CTR; create OUT : MM1 from IN : MM0; …helper context MM2!Net def:createPlaceInstances() : Sequence (MM2!Place) = if (thisModule.placeInstances < 1) then thisModule.createPlace(self) ->asSequence() ->union(self.createPlaceInstances()) else Sequence{} endif; … CT¬R
  • 216. Parallel dependent modifications The automatic co-adaptation of models relies on the parallel independence of breaking resolvable and unresolvable modifications, or more formally ΔR|Δ¬R = ΔR;Δ¬R +Δ¬R;ΔR where + denotes the non-deterministic choice
  • 217. Parallel dependent modifications The automatic co-adaptation of models relies on the parallel independence of breaking resolvable and unresolvable modifications, or more formally ΔR|Δ¬R = ΔR;Δ¬R +Δ¬R;ΔR where + denotes the non-deterministic choice Bad news: the parallel independence of changes is not assured, ie. multiple changes can be interdependent one another
  • 219. Parallel dependent modifications The differences between MM2 and MM0 are not parallel independent (although the sub steps MM0−MM1 and MM1 − MM2 are directly manageable) The interdependenciesbetween the atomic changes in MM2 − MM0 have to be isolated (i.e. the attribute weight of the Arc metaclass of MM2)
  • 220. Resolving dependences We analyzed the kind of interdependencies among breaking resolvable and breaking unresolvable changes We found out that these interdependencies do not depend on the specific metamodel, rather only on the meta metamodel (eg. Ecore, MOF, KM3) [ICMT 2009]
  • 221. Resolving dependences Sufficient criteria have been given to establish the correct scheduling of the conflicting changes
  • 222. Resolving dependences An alternative approach ([1]) is based on a lazy evaluation mechanism which queues up adaptations which require unavailable information We have found that for KM3, Ecore, and MOF interdependencies are not circular and that they only depend on the meta metamodel This implies that it is possible to find the exact scheduling of the adaptation steps w/o queuing them [1] Narayanan, Levendovszky, Balasubramanian, Karsai: Domain ModelMigrationtoManageMetamodelEvolution, MoDELS 2009
  • 223. Approach This is a general approach which can be applied to any metamodel (so far it works for KM3 metamodels, Ecore and MOF are under study), it permits the management of complex metamodel modifications (in contrast with current approaches) the complete automatic adaptation of models (breaking non resolvable via transformation refinements) We are currently working on the migration of UWE models
  • 224. Summary Introduction Evolution in the Large: Metamodel Evolution (XLE) Problem-based adaptation Solution-based adaptation Metamodel change classification Transformationaladaptationofmodels Evolution in the Small: Application Model Evolution (XSE) Data migration Adaptation of specific assets Conclusions and future work
  • 225. Solution-based adaptation The chosen generic modeling platform – intended as a set of languages, systems, and transformation paradigms – may affect the metamodel life-cycle In fact, sometimes metamodels must be changed in order to permit solutions which are otherwise not admissible
  • 226. beContent beContent is an model-driven platform for designing and maintaining web applications A beContent model consists mainly of the declarative and coordinated specification of three different concerns: the data view is the description of the relational model of the data, in essence it describes the metadata of the application; the content view describes the data sources and how the content is retrieved and aggregated in pages; and finally the interaction view specifies how to manipulate the information entered in the forms, the validation constraints, and additional information which may affect the interaction between the user and the application.
  • 227. beContent ECLIPSE GMF AMMA TCS beContentMetamodel ECLIPSE Ecore ACCELEO AMMA ATL ACCELEO
  • 228. beContent architecture BML BTL round-tripping ECLIPSE GMF AMMA TCS ECLIPSE GMF AMMA TCS beContentMetamodel beContentMetamodel ECLIPSE Ecore ECLIPSE Ecore M2C M2M ACCELEO AMMA ATL ACCELEO AMMA ATL M2C M2C PHPMySQL ACCELEO ACCELEO ACCELEO J2EE/Liferay .NET
  • 229. BML – beContent Modeling Language [demo at ICWE 2009]
  • 232. BMM – beContentMetamodel . . . Metamodel fragment Model fragment
  • 233. Problem: a simple text generation Generate a text file containing source code based on information which is retrieved from different instances of the same metaclass
  • 234. Problem: a simple text generation . . . ...
  • 235. Problem: a simple text generation Generate a text file containing source code based on information which is retrieved from different instances of the same metaclass This is not easy as it may appear as templating languages (in contrast with M2M languages) do not always have the querying power of OCL In particular, this can be achieved either using external Java helpers or changing the metamodel in such a way these instances must be within a container
  • 236. Refactoring the metamodel MM v1.0 MM v2.0
  • 237. Problem: a simple text generation In this scenario, a simple change of the metamodel from v1.0 to v2.0 is already pretty troublesome as it would require the adaptation of the models, which can be performed automatically as shown before the manual adaptation of the tools A possible workaround …
  • 238. Hiding the metamodel refactoring Δ Metamodel v1.0 Metamodel v2.0 conformsTo conformsTo adapt(Δ) Model (v2.0) Model (v1.0) M2T Source code
  • 239. Evolution in the large – open questions Automating the co-adaptation of models is only one aspect of the evolution of metamodels, nevertheless it is already very complex and presents open questions Metamodel difference calculation: it is very difficult, none of the available approaches are really satisfactory because of domain semantics, similarity metrics, etc Update: we are having interesting result by combining EMF Compare and ECL for Ecoremetamodels differencing Overriding default adaptation with ad-hoc refactorings Semantics preserving ? Validation, everybody is very keen on keeping her/his models secret :-)
  • 240. Summary Introduction Evolution in the Large: Metamodel Evolution (XLE) Problem-based adaptation Solution-based adaptation Metamodel change classification Transformationaladaptationofmodels Evolution in the Small: Application Model Evolution (XSE) Data migration Adaptation of specific assets Conclusions and future work
  • 241. Evolution in the small Manual modifications Model (v1.0) Model (v2.0) T T System” System’
  • 242. Evolution in the small Regenerating the whole system may require lots of time which reduce the usability for the designers, possibile solutions are incremental/live transformations Not all the aspects can be generated or derived by the models, eg. a model modification may require a data migration procedure a consistency check of the graphic templates Typically transformations encode knowledge about the underlying platform and architecture, eg. persistent classes and serialized objects in Java must be in sync
  • 243. Evolution in the small Δ M1 M2 T T System2 System1
  • 244. Evolution in the small Δ M1 M2 T T System2 System1 uses uses data1 data2
  • 245. Evolution in the small Δ M1 M2 T T System2 System1 uses uses data1 data2 migration (evolutionrollbackauxfunctions)
  • 246. Evolution in the small Δ M1 M2 T T System2 System1 T’ uses uses data1 data2 migration (Δ)
  • 247. Evolution in the small: beContent example Manual modifications Simple data refactoring birthday is deleted a new reference is added
  • 248. Evolution in the small: beContent example Δ
  • 249. Evolution in the small: beContent example This is a special case in beContent as the underlying framework is able to detect new tables to be created
  • 250. Evolution in the small: beContent example ALTER TABLE Person ADD (zodiac INT UNSIGNED NOT NULL); ALTER TABLE PersonDROP COLUMN birthday;
  • 251. Evolution in the small: beContent example As the difference model is a model, it is possible to generate anything based on its content eg. a configuration for a migration wizard to assist the designer
  • 252. Conclusions Using DSML (in contrast with a GPML) has the advantage to increase the degree of automation by exploiting the metamodeling hierarchy The evolution of models and metamodels is almost unavoidable if they are inherently part of the process (as both main actors and instruments) In order to automate the coupled-evolution which takes place at different levels in the metamodeling hierarchy is necessary to have a formal representation of model differences
  • 253.
  • 254. Bibliography CédricBrun and Alfonso Pierantonio. Model differences in the eclipse modeling framework. The European Journal for the Informatics Professional (UPGRADE), Monograph on Model-Driven Software Development (Eds. J.Bézivin, A.Vallecillo, J.García-Molina, and G.Rossi), 9(2):29–34, 2008. Antonio Cicchetti, Davide Di Ruscio, and Alfonso Pierantonio. A metamodelindependentapproach to difference representation. Journal of Object Technology, 6(9):165–185, 2007. Antonio Cicchetti, Davide Di Ruscio and Alfonso Pierantonio, ModelPatches in Model-DrivenEngineering, in: MoDSE-MCCM Workshop, ACM/IEEE 12th International Conference on ModelDrivenEngineeringLanguages and Systems (MODELS 2009), Denver, Colorado, USA, 2009 Dimitrios S. Kolovos, Davide Di Ruscio, Richard F. Paige and Alfonso Pierantonio, DifferentModelsforModelMatching: An analysisofapproachestosupportmodeldifferencing, in: 2nd Workshop on Comparison and Versioningof Software Models (CVSM'09), ACM/IEEE International Conference on Software Engineering (ICSE), Vancouver, Canada, 2009 Antonio Cicchetti, Davide Di Ruscio, and Alfonso Pierantonio. ManagingModelConflictsin Distributed Development. In ACM/IEEE 11th International Conference on Model Driven Engineering Languages and Systems (MoDELS 2008), LNCS 5301, pp. 311–325, 2008 A. Cicchetti, D. Di Ruscio, R. Eramo and A. Pierantonio, AutomatingCo-evolution in Model-DrivenEngineering. Procs. EDOC 2008, Munich, Germany Antonio Cicchetti, Davide Di Ruscio, Ludovico Iovino, Alfonso Pierantonio, ManagingevolvingWebapplications, Technical Report Dipartimento di Informatica, Università degli Studi dell’Aquila, May 2010 B. Gruschko, D. Kolovos, and R. Paige. Towards Synchronizing Models with Evolving Metamodels. In Procs of the Work. MODSE, 2007. G. Wachsmuth. Metamodel Adaptation and Model Coadaptation. In E. Ernst, editor, Proceedings of the 21st ECOOP, volume 4069 of LNCS. Springer-Verlag, July 2007. 240 Model Differences and Evolution
  • 255. Contact Information Prof. Alfonso PierantonioDipartimento di InformaticaUniversità degli Studi dell’AquilaI-67100 L’Aquila, Italy alfonso.pierantonio@univaq.ithttp://www.di.univaq.it/alfonso Research Interests:CoupledEvolutionofModels, Tranformations and Tools, BidirectionalTransformations, ModelVersioning 241 Model Differences and Evolution

Editor's Notes

  1. Nota1
  2. Nota1
  3. Nota1
  4. Nota1
  5. Nota1