SlideShare una empresa de Scribd logo
1 de 27
Dipartimento di Ingegneria e Scienze
Università degli Studi dell’Aquila
dell’Informazione e Matematica
Edelta: an approach for defining and applying
reusable metamodel refactorings
Lorenzo Bettini - DiSIA, University of Florence
Davide Di Ruscio – DISIM, Università degli Studi dell’Aquila
Ludovico Iovino – Gran Sasso Science Institute, L’Aquila
Alfonso Pierantonio - DISIM, Università degli Studi dell’Aquila
2
ME+ CommitMDE Workshop at MODELS 2017 - September 18, 2017, Austin, Texas
Refactoring in metamodeling
- Metamodels play a key role in any model-based approach
- They are subject of evolutionary pressures that can arise for
several reasons and several maintenance goals
- Refactoring can be defined as the process of changing a
software system to improve its design, readability, and to
reduce bugs
3
ME+ CommitMDE Workshop at MODELS 2017 - September 18, 2017, Austin, Texas
Refactoring in metamodeling
- Metamodel refactorings can be expressed as a sequence of
additions, deletions and changes of elements
- Metamodel refactorings can involve also complex operations,
which are obtained by mixing atomic changes
- Existing approaches are mainly based on tedious and error-
prone manual activities
- The possibility to organize and reuse already defined refactorings is
limited
4
ME+ CommitMDE Workshop at MODELS 2017 - September 18, 2017, Austin, Texas
A simple metamodel evolution
5
ME+ CommitMDE Workshop at MODELS 2017 - September 18, 2017, Austin, Texas
A simple metamodel evolution
Evolution
The attributes firstname and lastname of the
metaclass Person have been merged into the
new name attribute
6
ME+ CommitMDE Workshop at MODELS 2017 - September 18, 2017, Austin, Texas
A simple metamodel evolution
EvolutionThe metaclass Place has been added
as an abstract super class of
WorkPlace and LivingPlace
Their address attribute has been
pulled-up in the new metaclass
7
ME+ CommitMDE Workshop at MODELS 2017 - September 18, 2017, Austin, Texas
A simple metamodel evolution
Evolution
The gender attribute of the metaclass Person has been
replaced by the new sub-classes Male and Female
8
ME+ CommitMDE Workshop at MODELS 2017 - September 18, 2017, Austin, Texas
A simple metamodel evolution
Evolution
The reference works of the metaclass Person has been
replaced by the new metaclass WorkingPosition between
the new version of Person and WorkPlace
9
ME+ CommitMDE Workshop at MODELS 2017 - September 18, 2017, Austin, Texas
Refactoring in metamodeling
Modelers might want to define reusable metamodel changes so to
similarly evolve other metamodels in the future
10
ME+ CommitMDE Workshop at MODELS 2017 - September 18, 2017, Austin, Texas
A simple metamodel evolution
1. The attributes firstname and lastname of
the metaclass Person have been
merged into the new name attribute;
2. The metaclass Place has been added as
an abstract super class of WorkPlace
and LivingPlace. Their address attribute
has been pulled-up in the new
metaclass;
3. The gender attribute of the metaclass
Person has been replaced by the new
sub-classes Male and Female
4. The reference works of the metaclass
Person has been replaced by the new
metaclass WorkingPosition between the
new version of Person and WorkPlace
Extract Superclass
Introduce Subclass
11
ME+ CommitMDE Workshop at MODELS 2017 - September 18, 2017, Austin, Texas
Mastering Metamodel Refactoring
- Operating metamodel refactorings without a dedicated support can be an
error-prone task
- There is the need for languages and tools supporting the specification
and application of metamodel refactorings in a disciplined way
- The used language should provide at least the following characteristics:
- Conciseness and comprehensibility
- Integration
- Static checks
- Refactoring composability
- IDE support
12
ME+ CommitMDE Workshop at MODELS 2017 - September 18, 2017, Austin, Texas
The Edelta Language
- Edelta is a domain specific language for specifying and applying
metamodel refactorings
- It provides modelers with constructs for specifying atomic
refactoring:
- additions, deletions and changes
- and to define complex reusable metamodel changes by properly
composing already defined ones
13
ME+ CommitMDE Workshop at MODELS 2017 - September 18, 2017, Austin, Texas
A simplified version of the Edelta metamodel
14
ME+ CommitMDE Workshop at MODELS 2017 - September 18, 2017, Austin, Texas
Xtext-based implementation of Edelta
15
ME+ CommitMDE Workshop at MODELS 2017 - September 18, 2017, Austin, Texas
Xtext-based implementation of Edelta
16
ME+ CommitMDE Workshop at MODELS 2017 - September 18, 2017, Austin, Texas
Applying Edelta to PersonList metamodel
example Edelta program
17
ME+ CommitMDE Workshop at MODELS 2017 - September 18, 2017, Austin, Texas
Applying Edelta to PersonList metamodel
example
18
ME+ CommitMDE Workshop at MODELS 2017 - September 18, 2017, Austin, Texas
Applying Edelta to PersonList metamodel
example
Edelta libraries
Edelta program
19
ME+ CommitMDE Workshop at MODELS 2017 - September 18, 2017, Austin, Texas
The Edelta editor
- The Edelta editor provides typical Eclipse tooling mechanisms
20
ME+ CommitMDE Workshop at MODELS 2017 - September 18, 2017, Austin, Texas
The Eclipse-based Edelta editor
- The Edelta editor provides typical Eclipse tooling mechanisms
static type checking,
syntax highlighting,
code completion,
..
21
ME+ CommitMDE Workshop at MODELS 2017 - September 18, 2017, Austin, Texas
The Eclipse-based Edelta editor
- On-the-fly
interpretation of the
specified
refactorings
- Immediate view of
the modified Ecore
model in the Outline
view.
22
ME+ CommitMDE Workshop at MODELS 2017 - September 18, 2017, Austin, Texas
Application of a sample Edelta specification
Applied to
Result
23
ME+ CommitMDE Workshop at MODELS 2017 - September 18, 2017, Austin, Texas
Discussion points
Edelta vs. traditional GPL techniques
- Conciseness and comprehensibility. If we compare the Edelta
specification of the running example with the generated Edelta Java
code in terms of lines of code, the result would be 42 vs 225 LOC
- Integration: We designed Edelta in order to enable its integration
with EMFMigrate. Edelta will be used to specify the patterns that
have to be matched to trigger model migrations
…
24
ME+ CommitMDE Workshop at MODELS 2017 - September 18, 2017, Austin, Texas
Discussion points
…
- Static checks: Edelta is able to detect refactoring errors at
compilation time
- Refactoring Composability: possibility of defining reusable
refactoring libraries that can be included when specifying Edelta
programs
- IDE support: Edelta is distributed with a complete Eclipse IDE
tooling support available at https://github.com/LorenzoBettini/edelta
25
ME+ CommitMDE Workshop at MODELS 2017 - September 18, 2017, Austin, Texas
Conclusions
- In Model Driven Engineering metamodels play a key role
- Similarly to any kind of software artifacts, metamodels can evolve
- Edelta is a domain specific language for specifying and applying
reusable metamodel refactorings
- It allows the developer to specify both atomic and complex changes
- The implementation of Edelta is based on Xtext
- The language is endowed with an Eclipse-based development environment
providing also early evaluation of the refactoring being applied
26
ME+ CommitMDE Workshop at MODELS 2017 - September 18, 2017, Austin, Texas
Future work
- Extend the language and supporting environment by introducing the
notion of quality models
- modelers will have the possibility to assess the refactoring impact on the
quality attributes that might be defined and associated to the metamodel
being changed
- Adoption of the language for specifying the evolution of other kinds
of modeling artifacts
- E.g., model transformations, models, …
- Use of the language in coupled evolution scenarios
- Integration in EMFMigrate
27
ME+ CommitMDE Workshop at MODELS 2017 - September 18, 2017, Austin, Texas
Thank you !!!!

Más contenido relacionado

Similar a Edelta: an approach for defining and applying reusable metamodel refactorings

Elm Detroit 9/7/17 - Planting Seeds with Elm
Elm Detroit 9/7/17 - Planting Seeds with ElmElm Detroit 9/7/17 - Planting Seeds with Elm
Elm Detroit 9/7/17 - Planting Seeds with ElmElm Detroit
 
The Epsilon Pattern Language
The Epsilon Pattern LanguageThe Epsilon Pattern Language
The Epsilon Pattern LanguageDimitris Kolovos
 
Let us understand design pattern
Let us understand design patternLet us understand design pattern
Let us understand design patternMindfire Solutions
 
[AIIM17] Changing Times, The Future of ECM - Stephen Ludlow
[AIIM17] Changing Times, The Future of ECM - Stephen Ludlow[AIIM17] Changing Times, The Future of ECM - Stephen Ludlow
[AIIM17] Changing Times, The Future of ECM - Stephen LudlowAIIM International
 
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
 
Changing Times - the Future of ECM - AIIM 2017
Changing Times - the Future of ECM - AIIM 2017 Changing Times - the Future of ECM - AIIM 2017
Changing Times - the Future of ECM - AIIM 2017 Stephen Ludlow
 
Mapping-Based Exchange of Models between Meta-Modeling Tools
Mapping-Based Exchange of Models between Meta-Modeling ToolsMapping-Based Exchange of Models between Meta-Modeling Tools
Mapping-Based Exchange of Models between Meta-Modeling Toolsheigoo
 
Breathe Life Into Your IDE
Breathe Life Into Your IDEBreathe Life Into Your IDE
Breathe Life Into Your IDEBenoit Combemale
 
Introduction to design patterns
Introduction to design patternsIntroduction to design patterns
Introduction to design patternsAmit Kabra
 
5 Design Patterns Explained
5 Design Patterns Explained5 Design Patterns Explained
5 Design Patterns ExplainedPrabhjit Singh
 
Typescript design patterns applied to sharepoint framework - Sharepoint Satur...
Typescript design patterns applied to sharepoint framework - Sharepoint Satur...Typescript design patterns applied to sharepoint framework - Sharepoint Satur...
Typescript design patterns applied to sharepoint framework - Sharepoint Satur...Luis Valencia
 
MDE=Model Driven Everything (Spanish Eclipse Day 2009)
MDE=Model Driven Everything (Spanish Eclipse Day 2009)MDE=Model Driven Everything (Spanish Eclipse Day 2009)
MDE=Model Driven Everything (Spanish Eclipse Day 2009)Jordi Cabot
 
SodiusCassidianmdday2010 101129081449-phpapp02
SodiusCassidianmdday2010 101129081449-phpapp02SodiusCassidianmdday2010 101129081449-phpapp02
SodiusCassidianmdday2010 101129081449-phpapp02SodiusWillert
 
Rupicon 2014 Single table inheritance
Rupicon 2014 Single table inheritanceRupicon 2014 Single table inheritance
Rupicon 2014 Single table inheritancerupicon
 
Software development effort reduction with Co-op
Software development effort reduction with Co-opSoftware development effort reduction with Co-op
Software development effort reduction with Co-oplbergmans
 
Orchestrating Machine Learning Training for Netflix Recommendations - MCL317 ...
Orchestrating Machine Learning Training for Netflix Recommendations - MCL317 ...Orchestrating Machine Learning Training for Netflix Recommendations - MCL317 ...
Orchestrating Machine Learning Training for Netflix Recommendations - MCL317 ...Amazon Web Services
 
Parallel Computing 2007: Overview
Parallel Computing 2007: OverviewParallel Computing 2007: Overview
Parallel Computing 2007: OverviewGeoffrey Fox
 
SADP PPTs of all modules - Shanthi D.L.pdf
SADP PPTs of all modules - Shanthi D.L.pdfSADP PPTs of all modules - Shanthi D.L.pdf
SADP PPTs of all modules - Shanthi D.L.pdfB.T.L.I.T
 

Similar a Edelta: an approach for defining and applying reusable metamodel refactorings (20)

Elm Detroit 9/7/17 - Planting Seeds with Elm
Elm Detroit 9/7/17 - Planting Seeds with ElmElm Detroit 9/7/17 - Planting Seeds with Elm
Elm Detroit 9/7/17 - Planting Seeds with Elm
 
The Epsilon Pattern Language
The Epsilon Pattern LanguageThe Epsilon Pattern Language
The Epsilon Pattern Language
 
Let us understand design pattern
Let us understand design patternLet us understand design pattern
Let us understand design pattern
 
[AIIM17] Changing Times, The Future of ECM - Stephen Ludlow
[AIIM17] Changing Times, The Future of ECM - Stephen Ludlow[AIIM17] Changing Times, The Future of ECM - Stephen Ludlow
[AIIM17] Changing Times, The Future of ECM - Stephen Ludlow
 
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
 
Changing Times - the Future of ECM - AIIM 2017
Changing Times - the Future of ECM - AIIM 2017 Changing Times - the Future of ECM - AIIM 2017
Changing Times - the Future of ECM - AIIM 2017
 
MSR Asia Summit
MSR Asia SummitMSR Asia Summit
MSR Asia Summit
 
Mapping-Based Exchange of Models between Meta-Modeling Tools
Mapping-Based Exchange of Models between Meta-Modeling ToolsMapping-Based Exchange of Models between Meta-Modeling Tools
Mapping-Based Exchange of Models between Meta-Modeling Tools
 
Breathe Life Into Your IDE
Breathe Life Into Your IDEBreathe Life Into Your IDE
Breathe Life Into Your IDE
 
Introduction to design patterns
Introduction to design patternsIntroduction to design patterns
Introduction to design patterns
 
ALT
ALTALT
ALT
 
5 Design Patterns Explained
5 Design Patterns Explained5 Design Patterns Explained
5 Design Patterns Explained
 
Typescript design patterns applied to sharepoint framework - Sharepoint Satur...
Typescript design patterns applied to sharepoint framework - Sharepoint Satur...Typescript design patterns applied to sharepoint framework - Sharepoint Satur...
Typescript design patterns applied to sharepoint framework - Sharepoint Satur...
 
MDE=Model Driven Everything (Spanish Eclipse Day 2009)
MDE=Model Driven Everything (Spanish Eclipse Day 2009)MDE=Model Driven Everything (Spanish Eclipse Day 2009)
MDE=Model Driven Everything (Spanish Eclipse Day 2009)
 
SodiusCassidianmdday2010 101129081449-phpapp02
SodiusCassidianmdday2010 101129081449-phpapp02SodiusCassidianmdday2010 101129081449-phpapp02
SodiusCassidianmdday2010 101129081449-phpapp02
 
Rupicon 2014 Single table inheritance
Rupicon 2014 Single table inheritanceRupicon 2014 Single table inheritance
Rupicon 2014 Single table inheritance
 
Software development effort reduction with Co-op
Software development effort reduction with Co-opSoftware development effort reduction with Co-op
Software development effort reduction with Co-op
 
Orchestrating Machine Learning Training for Netflix Recommendations - MCL317 ...
Orchestrating Machine Learning Training for Netflix Recommendations - MCL317 ...Orchestrating Machine Learning Training for Netflix Recommendations - MCL317 ...
Orchestrating Machine Learning Training for Netflix Recommendations - MCL317 ...
 
Parallel Computing 2007: Overview
Parallel Computing 2007: OverviewParallel Computing 2007: Overview
Parallel Computing 2007: Overview
 
SADP PPTs of all modules - Shanthi D.L.pdf
SADP PPTs of all modules - Shanthi D.L.pdfSADP PPTs of all modules - Shanthi D.L.pdf
SADP PPTs of all modules - Shanthi D.L.pdf
 

Más de Davide Ruscio

Developing recommendation systems to support open source software developers ...
Developing recommendation systems to support open source software developers ...Developing recommendation systems to support open source software developers ...
Developing recommendation systems to support open source software developers ...Davide Ruscio
 
Detecting java software similarities by using different clustering
Detecting java software similarities by using different clusteringDetecting java software similarities by using different clustering
Detecting java software similarities by using different clusteringDavide Ruscio
 
On the way of listening to the crowd for supporting modeling activities
On the way of listening to the crowd for supporting modeling activitiesOn the way of listening to the crowd for supporting modeling activities
On the way of listening to the crowd for supporting modeling activitiesDavide Ruscio
 
FOCUS: A Recommender System for Mining API Function Calls and Usage Patterns
FOCUS:  A Recommender System for Mining API Function Calls and  Usage PatternsFOCUS:  A Recommender System for Mining API Function Calls and  Usage Patterns
FOCUS: A Recommender System for Mining API Function Calls and Usage PatternsDavide Ruscio
 
CrossSim: exploiting mutual relationships to detect similar OSS projects
CrossSim: exploiting mutual relationships to detect similar OSS projectsCrossSim: exploiting mutual relationships to detect similar OSS projects
CrossSim: exploiting mutual relationships to detect similar OSS projectsDavide Ruscio
 
Use of MDE to Analyse Open Source Software
Use of MDE to Analyse Open Source SoftwareUse of MDE to Analyse Open Source Software
Use of MDE to Analyse Open Source SoftwareDavide Ruscio
 
Semantic based model matching with emf compare
Semantic based model matching with emf compareSemantic based model matching with emf compare
Semantic based model matching with emf compareDavide Ruscio
 
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 StudyDavide Ruscio
 
Model repositories: will they become reality?
Model repositories: will they become reality?Model repositories: will they become reality?
Model repositories: will they become reality?Davide Ruscio
 
Mining Correlations of ATL Transformation and Metamodel Metrics
Mining Correlations of ATL Transformation and Metamodel MetricsMining Correlations of ATL Transformation and Metamodel Metrics
Mining Correlations of ATL Transformation and Metamodel Metrics Davide Ruscio
 
MDEForge: an extensible Web-based modeling platform
MDEForge: an extensible Web-based modeling platformMDEForge: an extensible Web-based modeling platform
MDEForge: an extensible Web-based modeling platformDavide Ruscio
 

Más de Davide Ruscio (11)

Developing recommendation systems to support open source software developers ...
Developing recommendation systems to support open source software developers ...Developing recommendation systems to support open source software developers ...
Developing recommendation systems to support open source software developers ...
 
Detecting java software similarities by using different clustering
Detecting java software similarities by using different clusteringDetecting java software similarities by using different clustering
Detecting java software similarities by using different clustering
 
On the way of listening to the crowd for supporting modeling activities
On the way of listening to the crowd for supporting modeling activitiesOn the way of listening to the crowd for supporting modeling activities
On the way of listening to the crowd for supporting modeling activities
 
FOCUS: A Recommender System for Mining API Function Calls and Usage Patterns
FOCUS:  A Recommender System for Mining API Function Calls and  Usage PatternsFOCUS:  A Recommender System for Mining API Function Calls and  Usage Patterns
FOCUS: A Recommender System for Mining API Function Calls and Usage Patterns
 
CrossSim: exploiting mutual relationships to detect similar OSS projects
CrossSim: exploiting mutual relationships to detect similar OSS projectsCrossSim: exploiting mutual relationships to detect similar OSS projects
CrossSim: exploiting mutual relationships to detect similar OSS projects
 
Use of MDE to Analyse Open Source Software
Use of MDE to Analyse Open Source SoftwareUse of MDE to Analyse Open Source Software
Use of MDE to Analyse Open Source Software
 
Semantic based model matching with emf compare
Semantic based model matching with emf compareSemantic based model matching with emf compare
Semantic based model matching with emf compare
 
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
 
Model repositories: will they become reality?
Model repositories: will they become reality?Model repositories: will they become reality?
Model repositories: will they become reality?
 
Mining Correlations of ATL Transformation and Metamodel Metrics
Mining Correlations of ATL Transformation and Metamodel MetricsMining Correlations of ATL Transformation and Metamodel Metrics
Mining Correlations of ATL Transformation and Metamodel Metrics
 
MDEForge: an extensible Web-based modeling platform
MDEForge: an extensible Web-based modeling platformMDEForge: an extensible Web-based modeling platform
MDEForge: an extensible Web-based modeling platform
 

Último

Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf31events.com
 
How To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTROHow To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTROmotivationalword821
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identityteam-WIBU
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfYashikaSharma391629
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 

Último (20)

Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf
 
How To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTROHow To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTRO
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identity
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 

Edelta: an approach for defining and applying reusable metamodel refactorings

  • 1. Dipartimento di Ingegneria e Scienze Università degli Studi dell’Aquila dell’Informazione e Matematica Edelta: an approach for defining and applying reusable metamodel refactorings Lorenzo Bettini - DiSIA, University of Florence Davide Di Ruscio – DISIM, Università degli Studi dell’Aquila Ludovico Iovino – Gran Sasso Science Institute, L’Aquila Alfonso Pierantonio - DISIM, Università degli Studi dell’Aquila
  • 2. 2 ME+ CommitMDE Workshop at MODELS 2017 - September 18, 2017, Austin, Texas Refactoring in metamodeling - Metamodels play a key role in any model-based approach - They are subject of evolutionary pressures that can arise for several reasons and several maintenance goals - Refactoring can be defined as the process of changing a software system to improve its design, readability, and to reduce bugs
  • 3. 3 ME+ CommitMDE Workshop at MODELS 2017 - September 18, 2017, Austin, Texas Refactoring in metamodeling - Metamodel refactorings can be expressed as a sequence of additions, deletions and changes of elements - Metamodel refactorings can involve also complex operations, which are obtained by mixing atomic changes - Existing approaches are mainly based on tedious and error- prone manual activities - The possibility to organize and reuse already defined refactorings is limited
  • 4. 4 ME+ CommitMDE Workshop at MODELS 2017 - September 18, 2017, Austin, Texas A simple metamodel evolution
  • 5. 5 ME+ CommitMDE Workshop at MODELS 2017 - September 18, 2017, Austin, Texas A simple metamodel evolution Evolution The attributes firstname and lastname of the metaclass Person have been merged into the new name attribute
  • 6. 6 ME+ CommitMDE Workshop at MODELS 2017 - September 18, 2017, Austin, Texas A simple metamodel evolution EvolutionThe metaclass Place has been added as an abstract super class of WorkPlace and LivingPlace Their address attribute has been pulled-up in the new metaclass
  • 7. 7 ME+ CommitMDE Workshop at MODELS 2017 - September 18, 2017, Austin, Texas A simple metamodel evolution Evolution The gender attribute of the metaclass Person has been replaced by the new sub-classes Male and Female
  • 8. 8 ME+ CommitMDE Workshop at MODELS 2017 - September 18, 2017, Austin, Texas A simple metamodel evolution Evolution The reference works of the metaclass Person has been replaced by the new metaclass WorkingPosition between the new version of Person and WorkPlace
  • 9. 9 ME+ CommitMDE Workshop at MODELS 2017 - September 18, 2017, Austin, Texas Refactoring in metamodeling Modelers might want to define reusable metamodel changes so to similarly evolve other metamodels in the future
  • 10. 10 ME+ CommitMDE Workshop at MODELS 2017 - September 18, 2017, Austin, Texas A simple metamodel evolution 1. The attributes firstname and lastname of the metaclass Person have been merged into the new name attribute; 2. The metaclass Place has been added as an abstract super class of WorkPlace and LivingPlace. Their address attribute has been pulled-up in the new metaclass; 3. The gender attribute of the metaclass Person has been replaced by the new sub-classes Male and Female 4. The reference works of the metaclass Person has been replaced by the new metaclass WorkingPosition between the new version of Person and WorkPlace Extract Superclass Introduce Subclass
  • 11. 11 ME+ CommitMDE Workshop at MODELS 2017 - September 18, 2017, Austin, Texas Mastering Metamodel Refactoring - Operating metamodel refactorings without a dedicated support can be an error-prone task - There is the need for languages and tools supporting the specification and application of metamodel refactorings in a disciplined way - The used language should provide at least the following characteristics: - Conciseness and comprehensibility - Integration - Static checks - Refactoring composability - IDE support
  • 12. 12 ME+ CommitMDE Workshop at MODELS 2017 - September 18, 2017, Austin, Texas The Edelta Language - Edelta is a domain specific language for specifying and applying metamodel refactorings - It provides modelers with constructs for specifying atomic refactoring: - additions, deletions and changes - and to define complex reusable metamodel changes by properly composing already defined ones
  • 13. 13 ME+ CommitMDE Workshop at MODELS 2017 - September 18, 2017, Austin, Texas A simplified version of the Edelta metamodel
  • 14. 14 ME+ CommitMDE Workshop at MODELS 2017 - September 18, 2017, Austin, Texas Xtext-based implementation of Edelta
  • 15. 15 ME+ CommitMDE Workshop at MODELS 2017 - September 18, 2017, Austin, Texas Xtext-based implementation of Edelta
  • 16. 16 ME+ CommitMDE Workshop at MODELS 2017 - September 18, 2017, Austin, Texas Applying Edelta to PersonList metamodel example Edelta program
  • 17. 17 ME+ CommitMDE Workshop at MODELS 2017 - September 18, 2017, Austin, Texas Applying Edelta to PersonList metamodel example
  • 18. 18 ME+ CommitMDE Workshop at MODELS 2017 - September 18, 2017, Austin, Texas Applying Edelta to PersonList metamodel example Edelta libraries Edelta program
  • 19. 19 ME+ CommitMDE Workshop at MODELS 2017 - September 18, 2017, Austin, Texas The Edelta editor - The Edelta editor provides typical Eclipse tooling mechanisms
  • 20. 20 ME+ CommitMDE Workshop at MODELS 2017 - September 18, 2017, Austin, Texas The Eclipse-based Edelta editor - The Edelta editor provides typical Eclipse tooling mechanisms static type checking, syntax highlighting, code completion, ..
  • 21. 21 ME+ CommitMDE Workshop at MODELS 2017 - September 18, 2017, Austin, Texas The Eclipse-based Edelta editor - On-the-fly interpretation of the specified refactorings - Immediate view of the modified Ecore model in the Outline view.
  • 22. 22 ME+ CommitMDE Workshop at MODELS 2017 - September 18, 2017, Austin, Texas Application of a sample Edelta specification Applied to Result
  • 23. 23 ME+ CommitMDE Workshop at MODELS 2017 - September 18, 2017, Austin, Texas Discussion points Edelta vs. traditional GPL techniques - Conciseness and comprehensibility. If we compare the Edelta specification of the running example with the generated Edelta Java code in terms of lines of code, the result would be 42 vs 225 LOC - Integration: We designed Edelta in order to enable its integration with EMFMigrate. Edelta will be used to specify the patterns that have to be matched to trigger model migrations …
  • 24. 24 ME+ CommitMDE Workshop at MODELS 2017 - September 18, 2017, Austin, Texas Discussion points … - Static checks: Edelta is able to detect refactoring errors at compilation time - Refactoring Composability: possibility of defining reusable refactoring libraries that can be included when specifying Edelta programs - IDE support: Edelta is distributed with a complete Eclipse IDE tooling support available at https://github.com/LorenzoBettini/edelta
  • 25. 25 ME+ CommitMDE Workshop at MODELS 2017 - September 18, 2017, Austin, Texas Conclusions - In Model Driven Engineering metamodels play a key role - Similarly to any kind of software artifacts, metamodels can evolve - Edelta is a domain specific language for specifying and applying reusable metamodel refactorings - It allows the developer to specify both atomic and complex changes - The implementation of Edelta is based on Xtext - The language is endowed with an Eclipse-based development environment providing also early evaluation of the refactoring being applied
  • 26. 26 ME+ CommitMDE Workshop at MODELS 2017 - September 18, 2017, Austin, Texas Future work - Extend the language and supporting environment by introducing the notion of quality models - modelers will have the possibility to assess the refactoring impact on the quality attributes that might be defined and associated to the metamodel being changed - Adoption of the language for specifying the evolution of other kinds of modeling artifacts - E.g., model transformations, models, … - Use of the language in coupled evolution scenarios - Integration in EMFMigrate
  • 27. 27 ME+ CommitMDE Workshop at MODELS 2017 - September 18, 2017, Austin, Texas Thank you !!!!

Notas del editor

  1. as in object-oriented programming
  2. Note that works and persons are still bidirectional in the refactored metamodel, as they used to be in the original metamodel.