SlideShare une entreprise Scribd logo
1  sur  95
Evolution in the Large and in the Small in Model-Driven Development
Introduction  Model Driven Engineering (MDE) is increasingly gaining acceptance in the development of software as a mean to leverage abstraction and render business logic resilientto 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
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 sparseNote: problems with profiles in different versions of UML 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-drivendevelopment
Evolution I would like to discuss the problem of the evolution in model-drivendevelopment engineering
MDD
MDD MDE MDE  MDD
MDD MDE MDE  MDD We have not yet seen the full application deployment of MDE! [J. Bezivin keynote at SLE 2009]
Evolution I would like to discuss the problem of the evolution in model-drivendevelopment 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: 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
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
M3 The “language” oflanguages, eg. Ecore Meta Metamodel The modelinglanguage, typicallyusedtoengineerthe application domain, eg. UWE, WebML, beContent M2 Meta modeling architecture Metamodels M1 Instancemodelswhichrepresentproblems and solutions in the application domain Models Tools (VisualEditors) Tools (VisualEditors) Tools (VisualEditors) Systems and applicationsrealizing the solutionin the application domain, eg. portals, data-intensive web apps, etc M0 Tools (VisualEditors) Tools (VisualEditors) Tool
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
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 refinementor enlargement a more complete understanding of the domain is at hand
Metamodel domain ,[object Object]
P2
P3,[object Object]
P2
P3,[object Object]
conformsTo conformsTo M3 Meta Metamodel conformsTo M2 Model Transformations 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 ,[object Object],Non-breaking Breaking  ,[object Object],Breakingandresolvable: existing instances need to be co-adapted to conform to the new metamodel version. The co-evolution can be automatically operated Breakingandunresolvable: 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 [TOOLS EUROPE 2007] ([Vallecillo et al 2008])
Metamodel difference representation Since a meta-model is a model itself, metamodel differences can be represented by exploiting the previously mentioned approach
Sample metamodel difference representation
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 [EDOC 2008]
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 t1 pt1 tp1 CTR 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 Arcmetaclass 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’
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

Contenu connexe

En vedette

Collaborative model driven software engineering: a Systematic Mapping Study
Collaborative model driven software engineering: a Systematic Mapping StudyCollaborative model driven software engineering: a Systematic Mapping Study
Collaborative model driven software engineering: a Systematic Mapping Study
Davide Ruscio
 
Survey 5e ch3_lecture
Survey 5e ch3_lectureSurvey 5e ch3_lecture
Survey 5e ch3_lecture
camhenlin
 
Technical writing lecture
Technical writing lectureTechnical writing lecture
Technical writing lecture
Fahe Em
 
Accounting Concepts and Principles with Examples
Accounting Concepts and Principles with ExamplesAccounting Concepts and Principles with Examples
Accounting Concepts and Principles with Examples
Rahul's Ventures
 

En vedette (20)

Introduction To MDD
Introduction To MDDIntroduction To MDD
Introduction To MDD
 
Collaborative model driven software engineering: a Systematic Mapping Study
Collaborative model driven software engineering: a Systematic Mapping StudyCollaborative model driven software engineering: a Systematic Mapping Study
Collaborative model driven software engineering: a Systematic Mapping Study
 
Survey 5e ch3_lecture
Survey 5e ch3_lectureSurvey 5e ch3_lecture
Survey 5e ch3_lecture
 
Ch04
Ch04Ch04
Ch04
 
Presentation1
Presentation1Presentation1
Presentation1
 
03 The Matching Concept and the Adjusting Process
03 The Matching Concept and the Adjusting Process03 The Matching Concept and the Adjusting Process
03 The Matching Concept and the Adjusting Process
 
Different kinds of assets
Different kinds of assetsDifferent kinds of assets
Different kinds of assets
 
ASME Webinar: Model-Driven Innovation in Machine Design
ASME Webinar: Model-Driven Innovation in Machine DesignASME Webinar: Model-Driven Innovation in Machine Design
ASME Webinar: Model-Driven Innovation in Machine Design
 
Accounting concepts and principal
Accounting concepts and principalAccounting concepts and principal
Accounting concepts and principal
 
Model-Based Design For Motor Control Development
Model-Based Design For Motor Control DevelopmentModel-Based Design For Motor Control Development
Model-Based Design For Motor Control Development
 
Capital and revenue
Capital and revenueCapital and revenue
Capital and revenue
 
MDD with Executable UML Models
MDD with Executable UML ModelsMDD with Executable UML Models
MDD with Executable UML Models
 
TextUML Toolkit
TextUML ToolkitTextUML Toolkit
TextUML Toolkit
 
Principal accounting - Ch03 matching concept and adjusting process
Principal accounting - Ch03 matching concept and adjusting processPrincipal accounting - Ch03 matching concept and adjusting process
Principal accounting - Ch03 matching concept and adjusting process
 
Ch02-conceptual framework or financial reporting
Ch02-conceptual framework or financial reportingCh02-conceptual framework or financial reporting
Ch02-conceptual framework or financial reporting
 
Accounting concepts
Accounting conceptsAccounting concepts
Accounting concepts
 
Technical writing lecture
Technical writing lectureTechnical writing lecture
Technical writing lecture
 
Accounting Concepts and Principles with Examples
Accounting Concepts and Principles with ExamplesAccounting Concepts and Principles with Examples
Accounting Concepts and Principles with Examples
 
Accounting in insurance companies basic concepts
Accounting in insurance companies   basic conceptsAccounting in insurance companies   basic concepts
Accounting in insurance companies basic concepts
 
Financial Accounting
Financial AccountingFinancial Accounting
Financial Accounting
 

Similaire à Evolution in the Large and in the Small in Model-Driven Development

CS587 Project - Raychaudhury,Shaalmali
CS587 Project - Raychaudhury,ShaalmaliCS587 Project - Raychaudhury,Shaalmali
CS587 Project - Raychaudhury,Shaalmali
sagar.247
 
An introduction to the MDA
An introduction to the MDAAn introduction to the MDA
An introduction to the MDA
Lai Ha
 
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
 

Similaire à Evolution in the Large and in the Small in Model-Driven Development (20)

MDA
MDAMDA
MDA
 
Ontologies and Software Modeling: Potentials, Experience and Challenges
Ontologies and Software Modeling: Potentials, Experience and Challenges Ontologies and Software Modeling: Potentials, Experience and Challenges
Ontologies and Software Modeling: Potentials, Experience and Challenges
 
5
55
5
 
CS587 Project - Raychaudhury,Shaalmali
CS587 Project - Raychaudhury,ShaalmaliCS587 Project - Raychaudhury,Shaalmali
CS587 Project - Raychaudhury,Shaalmali
 
Model evolution and versioning
Model evolution and versioningModel evolution and versioning
Model evolution and versioning
 
Model transformation
Model transformationModel transformation
Model transformation
 
Model transformation
Model transformationModel transformation
Model transformation
 
ALT
ALTALT
ALT
 
An introduction to the MDA
An introduction to the MDAAn introduction to the MDA
An introduction to the MDA
 
ERP_Up_Down.ppt
ERP_Up_Down.pptERP_Up_Down.ppt
ERP_Up_Down.ppt
 
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...
 
Agile and Modeling / MDE : friends or foes? (Agile Tour Nantes 2010)
Agile and Modeling / MDE : friends or foes? (Agile Tour  Nantes 2010)Agile and Modeling / MDE : friends or foes? (Agile Tour  Nantes 2010)
Agile and Modeling / MDE : friends or foes? (Agile Tour Nantes 2010)
 
A NATURAL LANGUAGE REQUIREMENTS ENGINEERING APPROACH FOR MDA
A NATURAL LANGUAGE REQUIREMENTS ENGINEERING APPROACH FOR MDA A NATURAL LANGUAGE REQUIREMENTS ENGINEERING APPROACH FOR MDA
A NATURAL LANGUAGE REQUIREMENTS ENGINEERING APPROACH FOR MDA
 
A NATURAL LANGUAGE REQUIREMENTS ENGINEERING APPROACH FOR MDA
A NATURAL LANGUAGE REQUIREMENTS ENGINEERING APPROACH FOR MDA A NATURAL LANGUAGE REQUIREMENTS ENGINEERING APPROACH FOR MDA
A NATURAL LANGUAGE REQUIREMENTS ENGINEERING APPROACH FOR MDA
 
A Natural Language Requirements Engineering Approach for MDA
A Natural Language Requirements Engineering Approach for MDAA Natural Language Requirements Engineering Approach for MDA
A Natural Language Requirements Engineering Approach for MDA
 
A natural language requirements engineering approach for mda
A natural language requirements engineering approach for mdaA natural language requirements engineering approach for mda
A natural language requirements engineering approach for mda
 
A NATURAL LANGUAGE REQUIREMENTS ENGINEERING APPROACH FOR MDA
A NATURAL LANGUAGE REQUIREMENTS ENGINEERING APPROACH FOR MDA A NATURAL LANGUAGE REQUIREMENTS ENGINEERING APPROACH FOR MDA
A NATURAL LANGUAGE REQUIREMENTS ENGINEERING APPROACH FOR MDA
 
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...
 
DESIGN AND DEVELOPMENT OF BUSINESS RULES MANAGEMENT SYSTEM (BRMS) USING ATLAN...
DESIGN AND DEVELOPMENT OF BUSINESS RULES MANAGEMENT SYSTEM (BRMS) USING ATLAN...DESIGN AND DEVELOPMENT OF BUSINESS RULES MANAGEMENT SYSTEM (BRMS) USING ATLAN...
DESIGN AND DEVELOPMENT OF BUSINESS RULES MANAGEMENT SYSTEM (BRMS) USING ATLAN...
 
Enriching Tool Support for Model-Driven Software Development
Enriching Tool Support for Model-Driven Software DevelopmentEnriching Tool Support for Model-Driven Software Development
Enriching Tool Support for Model-Driven Software Development
 

Plus de 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
 
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
 

Plus de Alfonso Pierantonio (17)

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
 
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
 
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?
 

Dernier

Dernier (20)

DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 

Evolution in the Large and in the Small in Model-Driven Development

  • 1. Evolution in the Large and in the Small in Model-Driven Development
  • 2. Introduction Model Driven Engineering (MDE) is increasingly gaining acceptance in the development of software as a mean to leverage abstraction and render business logic resilientto 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
  • 3.
  • 4. 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
  • 5. 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 sparseNote: problems with profiles in different versions of UML 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
  • 6. 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
  • 7. 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
  • 8. Evolution I would like to discuss the problem of the evolution in model-driven development
  • 9. Evolution I would like to discuss the problem of the evolution in model-drivendevelopment
  • 10. Evolution I would like to discuss the problem of the evolution in model-drivendevelopment engineering
  • 11.
  • 12. MDD
  • 13. MDD MDE MDE MDD
  • 14. MDD MDE MDE MDD We have not yet seen the full application deployment of MDE! [J. Bezivin keynote at SLE 2009]
  • 15. Evolution I would like to discuss the problem of the evolution in model-drivendevelopment 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
  • 16. 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
  • 17. 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
  • 18. M3 The “language” oflanguages, eg. Ecore Meta Metamodel The modelinglanguage, typicallyusedtoengineerthe application domain, eg. UWE, WebML, beContent M2 Meta modeling architecture Metamodels M1 Instancemodelswhichrepresentproblems and solutions in the application domain Models Tools (VisualEditors) Tools (VisualEditors) Tools (VisualEditors) Systems and applicationsrealizing the solutionin the application domain, eg. portals, data-intensive web apps, etc M0 Tools (VisualEditors) Tools (VisualEditors) Tool
  • 19. M3 M2 M1 M0 Metamodel based tools conformsTo Meta Metamodel Metamodel conformsTo Model basedOn edits implementedFor Tool
  • 20.
  • 21. P2
  • 22.
  • 23. P2
  • 24.
  • 25. P2
  • 26.
  • 27. P2
  • 28.
  • 29. P2
  • 30.
  • 31. P2
  • 32.
  • 33.
  • 34. P2
  • 35.
  • 36. S2
  • 37. P2
  • 39. Metamodel evolution Sometimes metamodels must be adapted, extended or amended to better capture the problems
  • 40. Metamodel evolution Sometimes metamodels must be adapted, extended or amended to better capture the problems
  • 41. 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 refinementor enlargement a more complete understanding of the domain is at hand
  • 42.
  • 43. P2
  • 44.
  • 45. P2
  • 46.
  • 47. conformsTo conformsTo M3 Meta Metamodel conformsTo M2 Model Transformations to from Target Metamodel Source Metamodel TransformationLanguage Source Metamodel conformsTo conformsTo conformsTo M1 Target Model Source Model TransformationRules source target exec TransformationEngine M0
  • 48. 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
  • 49. 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
  • 50. 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
  • 51.
  • 53. Sample Petri Net metamodel changes
  • 54. Sample Petri Net metamodel changes Breaking and resolvable changes (extract meta-class)
  • 55. Sample Petri Net metamodel changes Breaking and resolvable changes (extract meta-class) t1 pt1 tp1 p1 p2 p1 p2 pt2 tp2 t2
  • 56. Sample Petri Net metamodel changes Breaking and unresolvablechange (Addobligatorymetaproperty)
  • 57. 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)
  • 58. Model difference representation [TOOLS EUROPE 2007] ([Vallecillo et al 2008])
  • 59. Metamodel difference representation Since a meta-model is a model itself, metamodel differences can be represented by exploiting the previously mentioned approach
  • 60. Sample metamodel difference representation
  • 61. 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 [EDOC 2008]
  • 64. Transformationaladaptationofmodels: example moduleH_R; createOUT : ATL from Delta : KM3Diff; ruleCreateRenaming { … } ruleCreateExtractMetaClass{ … } … HR ΔR(0,1)
  • 65. 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
  • 66. Transformationaladaptationofmodels: example t1 pt1 tp1 CTR p1 p2 p1 p2 pt2 tp2 t2
  • 67. Transformationaladaptationofmodels: example module H_NR; createOUT : ATL from Delta : KM3Diff; rule CreateRestrictMetaproperty{ … } ruleAddObligatoryMetaclass{ … } … Δ¬R(0,1) H¬R
  • 68. 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
  • 69. 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
  • 70. 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
  • 72. 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 Arcmetaclass of MM2)
  • 73. 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]
  • 74. Resolving dependences Sufficient criteria have been given to establish the correct scheduling of the conflicting changes
  • 75. 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
  • 76. 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
  • 77. 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
  • 78. 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
  • 79. 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.
  • 80. beContent ECLIPSE GMF AMMA TCS beContentMetamodel ECLIPSE Ecore ACCELEO AMMA ATL ACCELEO
  • 81. 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
  • 82. BML – beContent Modeling Language [demo at ICWE 2009]
  • 85. BMM – beContentMetamodel . . . Metamodel fragment Model fragment
  • 86. 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
  • 87. Problem: a simple text generation . . . ...
  • 88. 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
  • 89. Refactoring the metamodel MM v1.0 MM v2.0
  • 90. 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 …
  • 91. Hiding the metamodel refactoring Δ Metamodel v1.0 Metamodel v2.0 conformsTo conformsTo adapt(Δ) Model (v2.0) Model (v1.0) M2T Source code
  • 92. 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 :-)
  • 93. 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
  • 94. Evolution in the small Manual modifications Model (v1.0) Model (v2.0) T T System” System’
  • 95. 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
  • 96. Evolution in the small Δ M1 M2 T T System2 System1
  • 97. Evolution in the small Δ M1 M2 T T System2 System1 uses uses data1 data2
  • 98. Evolution in the small Δ M1 M2 T T System2 System1 uses uses data1 data2 migration (evolutionrollbackauxfunctions)
  • 99. Evolution in the small Δ M1 M2 T T System2 System1 T’ uses uses data1 data2 migration (Δ)
  • 100. Evolution in the small: beContent example Manual modifications Simple data refactoring birthday is deleted a new reference is added
  • 101. Evolution in the small: beContent example Δ
  • 102. 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
  • 103. Evolution in the small: beContent example ALTER TABLE Person ADD (zodiac INT UNSIGNED NOT NULL); ALTER TABLE PersonDROP COLUMN birthday;
  • 104. 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
  • 105. 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
  • 107. Some References A. Cicchetti, D. Di Ruscio, R. Eramo and A. Pierantonio, AutomatingCo-evolution in Model-DrivenEngineering. Procs. EDOC 2008, Munich, Germany A. Cicchetti, D. Di Ruscio, R. Eramo and A. Pierantonio, Meta-modelDifferencesforSupportingModelCo-evolution. Procs. MoDSE 2008, Atene, Greece A. Cicchetti, D. Di Ruscio, A. Pierantonio, A MetamodelIndependentApproachtoDifferenceRepresentation, Procs. TOOLS EUROPE 2007, Zurich, Switzerland A. Cicchetti, D. Di Ruscio, and A. Pierantonio. Managingdependentchanges in coupledevolution, toappear in Procs. ICMT 2009, Zurich, Switzerland D.S.Kolovos, D. Di Ruscio, R.F. Paige, A. Pierantonio. DifferentModelsforModelMatching: An analysisofapproachestosupportmodeldifferencing, Procs. CVSM'09, Vancouver, Canada