SlideShare une entreprise Scribd logo
1  sur  20
Télécharger pour lire hors ligne
Automatic Application of
Visitors to Evolving
Domain-Specific
Languages
Computer Science Department
University of York1
& Willink Transformations Ltd2.
Adolfo Sánchez-Barbudo Herrera1, Ed Willink2, Richard Paige1, Louis Rose1, Dimitris Kolovos1
(asbh500@york.ac.uk ed@willink.me.uk richard.paige@york.ac.uk, louis.rose@york.ac.uk, dimitris.kolovos@york.ac.uk)
2

Agenda
●
●
●
●
●
●
●

Introduction to Modeling (MDSD, MDE,...)
Model Behaviour
Model Evolution
Visitor Pattern
Visitor Generation Framework (VGF)
VGF for Model Behaviour Evolution
Conclusions
3

Modeling Introduction
●
●
●
●

Models as main artefact for developing SW
Models as abstract representations of SW
Higher level of abstraction than programs
Programs replaced by Models

uBlog DSL
4

Modeling Introduction II
With a modeling language you can create model
instances, which correspond to objects at runtime.
5

Modeling Introduction III
● MDE techniques to support software
development:
Model to Text
Model to Model
Transformations
Transformations
6

Model Behaviour
● Model concepts may comprise behaviour
● Usually modelled as Operations

A user can create new posts in a given uBlog
7

Model Evolution
● Model evolution - like SW evolution - is a
recurrent and open issue.
8

Model Evolution II
● Same issues regarding behaviour.
9

Visitor Pattern
● OOP design pattern
○ Well known solutions to a recurring problem

● Separate structure from behaviour
10

Visitor Pattern II
● Main advantage
○ Add/Remove/Modify/Replace behaviour without
changing structure.
○ Ideal when working with third party structures.
11

Visitor Pattern III
● Main disadvantage
○ It’s not the ideal pattern with evolving structures.
12

Visitor Pattern IV
● Visitors applied to modeling languages
13

Visitor Generation Framework
● MDE based prototype to automatically apply
the visitor pattern.
● Part 1.
○ Setup the DSL to apply the visitor pattern
○ via a M2M Transformation.

● Part 2.
○ Generate DSL-specific visitors framework
○ via M2T Transformations.
14

Visitor Generation Framework II
● M2M transformation to prepare the DSL
15

Visitor Generation Framework III
● DSL-specific visitors framework generation
1. Visitor/Visitable
Interfaces
●
●
●
●
●

2. Default Abstract
Implementations
Contextful Visitor
Null Visitor
Extending Visitor
Delegating Visitor
...
16

Visitor Generation Framework IV
● VGF abstract visitors examples:
17

Visitor Generation Framework V
● VGF Overview
Visitable
DSL
Implementation

DSL
Model

VGF

DSL-Specific Visitors
Framework
Visitor/
Visitable
Interfaces

Manual

Generated

Abstract
Visitors
Impl.

More
MDE-based
generators

Generated
Visitors
Manual
Visitors
18

VGF for models behaviour evolution
● Evolving behaviour - Same structure
Behaviour

No Model Visitors

Model Visitors

VGF

Adding

Changes DSL

Ok

Ok

Removing

Breaks clients

Breaks clients

Breaks clients

Modifying

Changes DSL

Ok

Ok

● Evolving structure - Same behaviour
Structure

No Model Visitors

Model Visitors

VGF

Adding

Ok

Breaks visitors

Ok

Removing

Breaks clients

Breaks clients

Breaks clients

Modifying

Ok

Ok

Ok

Convenient

Inconvenient

Very Inconvenient
19

Conclusions
● VGF:
○ Automatically brings the benefits of the visitor
pattern to DSLs
○ Automatically creates a DSL-specific framework to
leverage visitors creation
○ It´s a convenient practice when a DSL has unclear
behaviour or an evolving one
○ It may mitigate the drawbacks of the visitor pattern
with respect to language structure evolution
Thank you very much
Questions ?

doubts, feedback, enquiries, etc. to asbh500@york.ac.uk

Contenu connexe

En vedette

Mansel Aylward - Transforming health improvement programme in wales and add t...
Mansel Aylward - Transforming health improvement programme in wales and add t...Mansel Aylward - Transforming health improvement programme in wales and add t...
Mansel Aylward - Transforming health improvement programme in wales and add t...angewatkins
 
Sex, Drugs and Alcohol: The Freshmen Experience
Sex, Drugs and Alcohol: The Freshmen ExperienceSex, Drugs and Alcohol: The Freshmen Experience
Sex, Drugs and Alcohol: The Freshmen Experienceaceventura00527
 
Sex, Drugs and Alcohol: The Freshmen Experience
Sex, Drugs and Alcohol: The Freshmen ExperienceSex, Drugs and Alcohol: The Freshmen Experience
Sex, Drugs and Alcohol: The Freshmen Experienceaceventura00527
 
A DSTL to bridge concrete and abstract syntax
A DSTL to bridge concrete and abstract syntaxA DSTL to bridge concrete and abstract syntax
A DSTL to bridge concrete and abstract syntaxUniversity of York
 
Campus mag 185 - Janvier 2014
Campus mag 185 - Janvier 2014Campus mag 185 - Janvier 2014
Campus mag 185 - Janvier 2014Laetitia Naon
 
Overall Finished Music Anaylsis
Overall Finished Music AnaylsisOverall Finished Music Anaylsis
Overall Finished Music Anaylsisguestfafd43
 
Overall Finished Music Anaylsis
Overall Finished Music AnaylsisOverall Finished Music Anaylsis
Overall Finished Music Anaylsisguestfafd43
 
Walt Disney 2 New
Walt Disney 2 NewWalt Disney 2 New
Walt Disney 2 Newsyed shadab
 
Overall Finished Music Anaylsis
Overall Finished Music AnaylsisOverall Finished Music Anaylsis
Overall Finished Music Anaylsisguestfafd43
 

En vedette (10)

Mansel Aylward - Transforming health improvement programme in wales and add t...
Mansel Aylward - Transforming health improvement programme in wales and add t...Mansel Aylward - Transforming health improvement programme in wales and add t...
Mansel Aylward - Transforming health improvement programme in wales and add t...
 
Sex, Drugs and Alcohol: The Freshmen Experience
Sex, Drugs and Alcohol: The Freshmen ExperienceSex, Drugs and Alcohol: The Freshmen Experience
Sex, Drugs and Alcohol: The Freshmen Experience
 
ScaleUp Partners LLC
ScaleUp Partners LLCScaleUp Partners LLC
ScaleUp Partners LLC
 
Sex, Drugs and Alcohol: The Freshmen Experience
Sex, Drugs and Alcohol: The Freshmen ExperienceSex, Drugs and Alcohol: The Freshmen Experience
Sex, Drugs and Alcohol: The Freshmen Experience
 
A DSTL to bridge concrete and abstract syntax
A DSTL to bridge concrete and abstract syntaxA DSTL to bridge concrete and abstract syntax
A DSTL to bridge concrete and abstract syntax
 
Campus mag 185 - Janvier 2014
Campus mag 185 - Janvier 2014Campus mag 185 - Janvier 2014
Campus mag 185 - Janvier 2014
 
Overall Finished Music Anaylsis
Overall Finished Music AnaylsisOverall Finished Music Anaylsis
Overall Finished Music Anaylsis
 
Overall Finished Music Anaylsis
Overall Finished Music AnaylsisOverall Finished Music Anaylsis
Overall Finished Music Anaylsis
 
Walt Disney 2 New
Walt Disney 2 NewWalt Disney 2 New
Walt Disney 2 New
 
Overall Finished Music Anaylsis
Overall Finished Music AnaylsisOverall Finished Music Anaylsis
Overall Finished Music Anaylsis
 

Similaire à Automatic Application of Visitors to Evolving Domain-Specific Languages

Caise18_vizdsl_20180614_rm
Caise18_vizdsl_20180614_rmCaise18_vizdsl_20180614_rm
Caise18_vizdsl_20180614_rmRebecca Morgan
 
MvvmCross Introduction
MvvmCross IntroductionMvvmCross Introduction
MvvmCross IntroductionStuart Lodge
 
MvvmCross Seminar
MvvmCross SeminarMvvmCross Seminar
MvvmCross SeminarXamarin
 
Learning Single page Application chapter 1
Learning Single page Application chapter 1Learning Single page Application chapter 1
Learning Single page Application chapter 1Puguh Rismadi
 
Quill slides-www2013
Quill slides-www2013Quill slides-www2013
Quill slides-www2013Vivian Motti
 
Quill slides-www2013
Quill slides-www2013Quill slides-www2013
Quill slides-www2013Vivian Motti
 
Front end microservices: architectures and solution
Front end microservices: architectures and solutionFront end microservices: architectures and solution
Front end microservices: architectures and solutionMikhail Kuznetcov
 
Micro frontend architecture_presentation_ssoni
Micro frontend architecture_presentation_ssoniMicro frontend architecture_presentation_ssoni
Micro frontend architecture_presentation_ssoniSandeep Soni
 
Internship-Report-VitulChauhan-18132023-IT_CRUD-OPERATION.pdf
Internship-Report-VitulChauhan-18132023-IT_CRUD-OPERATION.pdfInternship-Report-VitulChauhan-18132023-IT_CRUD-OPERATION.pdf
Internship-Report-VitulChauhan-18132023-IT_CRUD-OPERATION.pdfVitulChauhan
 
Prism library and MVVM
Prism library and MVVMPrism library and MVVM
Prism library and MVVMJiri Danihelka
 
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)siouxhotornot
 
An Introduction To Model  View  Controller In XPages
An Introduction To Model  View  Controller In XPagesAn Introduction To Model  View  Controller In XPages
An Introduction To Model  View  Controller In XPagesUlrich Krause
 
How to Build Your Own Product-Modeling Environment?
How to Build Your Own Product-Modeling Environment?How to Build Your Own Product-Modeling Environment?
How to Build Your Own Product-Modeling Environment?Tim Geisler
 
42windmills concept
42windmills concept42windmills concept
42windmills concept42windmills
 
42 windmills: web applications without coding
42 windmills: web applications without coding42 windmills: web applications without coding
42 windmills: web applications without coding42windmills
 
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)Nedelcho Delchev
 

Similaire à Automatic Application of Visitors to Evolving Domain-Specific Languages (20)

Django PPT.pptx
Django PPT.pptxDjango PPT.pptx
Django PPT.pptx
 
Caise18_vizdsl_20180614_rm
Caise18_vizdsl_20180614_rmCaise18_vizdsl_20180614_rm
Caise18_vizdsl_20180614_rm
 
MvvmCross Introduction
MvvmCross IntroductionMvvmCross Introduction
MvvmCross Introduction
 
MvvmCross Seminar
MvvmCross SeminarMvvmCross Seminar
MvvmCross Seminar
 
2013-04-02-the_fog_of_spa
2013-04-02-the_fog_of_spa2013-04-02-the_fog_of_spa
2013-04-02-the_fog_of_spa
 
Learning Single page Application chapter 1
Learning Single page Application chapter 1Learning Single page Application chapter 1
Learning Single page Application chapter 1
 
Quill slides-www2013
Quill slides-www2013Quill slides-www2013
Quill slides-www2013
 
Quill slides-www2013
Quill slides-www2013Quill slides-www2013
Quill slides-www2013
 
Front end microservices: architectures and solution
Front end microservices: architectures and solutionFront end microservices: architectures and solution
Front end microservices: architectures and solution
 
Micro frontend architecture_presentation_ssoni
Micro frontend architecture_presentation_ssoniMicro frontend architecture_presentation_ssoni
Micro frontend architecture_presentation_ssoni
 
Internship-Report-VitulChauhan-18132023-IT_CRUD-OPERATION.pdf
Internship-Report-VitulChauhan-18132023-IT_CRUD-OPERATION.pdfInternship-Report-VitulChauhan-18132023-IT_CRUD-OPERATION.pdf
Internship-Report-VitulChauhan-18132023-IT_CRUD-OPERATION.pdf
 
Prism library and MVVM
Prism library and MVVMPrism library and MVVM
Prism library and MVVM
 
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)
 
An Introduction To Model  View  Controller In XPages
An Introduction To Model  View  Controller In XPagesAn Introduction To Model  View  Controller In XPages
An Introduction To Model  View  Controller In XPages
 
Dust.js
Dust.jsDust.js
Dust.js
 
DotVVM Fundamentals
DotVVM FundamentalsDotVVM Fundamentals
DotVVM Fundamentals
 
How to Build Your Own Product-Modeling Environment?
How to Build Your Own Product-Modeling Environment?How to Build Your Own Product-Modeling Environment?
How to Build Your Own Product-Modeling Environment?
 
42windmills concept
42windmills concept42windmills concept
42windmills concept
 
42 windmills: web applications without coding
42 windmills: web applications without coding42 windmills: web applications without coding
42 windmills: web applications without coding
 
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
 

Dernier

A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
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)wesley chun
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
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 educationjfdjdjcjdnsjd
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
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...apidays
 
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 WorkerThousandEyes
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 

Dernier (20)

A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 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)
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
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
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
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...
 
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
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 

Automatic Application of Visitors to Evolving Domain-Specific Languages

  • 1. Automatic Application of Visitors to Evolving Domain-Specific Languages Computer Science Department University of York1 & Willink Transformations Ltd2. Adolfo Sánchez-Barbudo Herrera1, Ed Willink2, Richard Paige1, Louis Rose1, Dimitris Kolovos1 (asbh500@york.ac.uk ed@willink.me.uk richard.paige@york.ac.uk, louis.rose@york.ac.uk, dimitris.kolovos@york.ac.uk)
  • 2. 2 Agenda ● ● ● ● ● ● ● Introduction to Modeling (MDSD, MDE,...) Model Behaviour Model Evolution Visitor Pattern Visitor Generation Framework (VGF) VGF for Model Behaviour Evolution Conclusions
  • 3. 3 Modeling Introduction ● ● ● ● Models as main artefact for developing SW Models as abstract representations of SW Higher level of abstraction than programs Programs replaced by Models uBlog DSL
  • 4. 4 Modeling Introduction II With a modeling language you can create model instances, which correspond to objects at runtime.
  • 5. 5 Modeling Introduction III ● MDE techniques to support software development: Model to Text Model to Model Transformations Transformations
  • 6. 6 Model Behaviour ● Model concepts may comprise behaviour ● Usually modelled as Operations A user can create new posts in a given uBlog
  • 7. 7 Model Evolution ● Model evolution - like SW evolution - is a recurrent and open issue.
  • 8. 8 Model Evolution II ● Same issues regarding behaviour.
  • 9. 9 Visitor Pattern ● OOP design pattern ○ Well known solutions to a recurring problem ● Separate structure from behaviour
  • 10. 10 Visitor Pattern II ● Main advantage ○ Add/Remove/Modify/Replace behaviour without changing structure. ○ Ideal when working with third party structures.
  • 11. 11 Visitor Pattern III ● Main disadvantage ○ It’s not the ideal pattern with evolving structures.
  • 12. 12 Visitor Pattern IV ● Visitors applied to modeling languages
  • 13. 13 Visitor Generation Framework ● MDE based prototype to automatically apply the visitor pattern. ● Part 1. ○ Setup the DSL to apply the visitor pattern ○ via a M2M Transformation. ● Part 2. ○ Generate DSL-specific visitors framework ○ via M2T Transformations.
  • 14. 14 Visitor Generation Framework II ● M2M transformation to prepare the DSL
  • 15. 15 Visitor Generation Framework III ● DSL-specific visitors framework generation 1. Visitor/Visitable Interfaces ● ● ● ● ● 2. Default Abstract Implementations Contextful Visitor Null Visitor Extending Visitor Delegating Visitor ...
  • 16. 16 Visitor Generation Framework IV ● VGF abstract visitors examples:
  • 17. 17 Visitor Generation Framework V ● VGF Overview Visitable DSL Implementation DSL Model VGF DSL-Specific Visitors Framework Visitor/ Visitable Interfaces Manual Generated Abstract Visitors Impl. More MDE-based generators Generated Visitors Manual Visitors
  • 18. 18 VGF for models behaviour evolution ● Evolving behaviour - Same structure Behaviour No Model Visitors Model Visitors VGF Adding Changes DSL Ok Ok Removing Breaks clients Breaks clients Breaks clients Modifying Changes DSL Ok Ok ● Evolving structure - Same behaviour Structure No Model Visitors Model Visitors VGF Adding Ok Breaks visitors Ok Removing Breaks clients Breaks clients Breaks clients Modifying Ok Ok Ok Convenient Inconvenient Very Inconvenient
  • 19. 19 Conclusions ● VGF: ○ Automatically brings the benefits of the visitor pattern to DSLs ○ Automatically creates a DSL-specific framework to leverage visitors creation ○ It´s a convenient practice when a DSL has unclear behaviour or an evolving one ○ It may mitigate the drawbacks of the visitor pattern with respect to language structure evolution
  • 20. Thank you very much Questions ? doubts, feedback, enquiries, etc. to asbh500@york.ac.uk