SlideShare ist ein Scribd-Unternehmen logo
1 von 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 !!!!

Weitere ähnliche Inhalte

Ă„hnlich wie 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
 
MSR Asia Summit
MSR Asia SummitMSR Asia Summit
MSR Asia SummitPtidej Team
 
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
 

Ă„hnlich wie 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
 

Mehr von 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
 

Mehr von 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
 

KĂĽrzlich hochgeladen

%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrandmasabamasaba
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfonteinmasabamasaba
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...SelfMade bd
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfonteinmasabamasaba
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park masabamasaba
 
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456KiaraTiradoMicha
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Pharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodologyPharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodologyAnusha Are
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrainmasabamasaba
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesVictorSzoltysek
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 

KĂĽrzlich hochgeladen (20)

%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Pharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodologyPharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodology
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 

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

Hinweis der Redaktion

  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.