SlideShare a Scribd company logo
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

More Related Content

Viewers also liked

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 Experience
aceventura00527
 
ScaleUp Partners LLC
ScaleUp Partners LLCScaleUp Partners LLC
ScaleUp 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
aceventura00527
 
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
University of York
 
Campus mag 185 - Janvier 2014
Campus mag 185 - Janvier 2014Campus mag 185 - Janvier 2014
Campus mag 185 - Janvier 2014
Laetitia Naon
 
Overall Finished Music Anaylsis
Overall Finished Music AnaylsisOverall Finished Music Anaylsis
Overall Finished Music Anaylsis
guestfafd43
 
Overall Finished Music Anaylsis
Overall Finished Music AnaylsisOverall Finished Music Anaylsis
Overall Finished Music Anaylsis
guestfafd43
 
Walt Disney 2 New
Walt Disney 2 NewWalt Disney 2 New
Walt Disney 2 New
syed shadab
 
Overall Finished Music Anaylsis
Overall Finished Music AnaylsisOverall Finished Music Anaylsis
Overall Finished Music Anaylsis
guestfafd43
 

Viewers also liked (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
 

Similar to Automatic Application of Visitors to Evolving Domain-Specific Languages

Django PPT.pptx
Django PPT.pptxDjango PPT.pptx
Django PPT.pptx
KhyatiBandi1
 
Caise18_vizdsl_20180614_rm
Caise18_vizdsl_20180614_rmCaise18_vizdsl_20180614_rm
Caise18_vizdsl_20180614_rm
Rebecca Morgan
 
MvvmCross Introduction
MvvmCross IntroductionMvvmCross Introduction
MvvmCross Introduction
Stuart Lodge
 
MvvmCross Seminar
MvvmCross SeminarMvvmCross Seminar
MvvmCross Seminar
Xamarin
 
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
Michael Mikowski
 
Learning Single page Application chapter 1
Learning Single page Application chapter 1Learning Single page Application chapter 1
Learning Single page Application chapter 1
Puguh Rismadi
 
Quill slides-www2013
Quill slides-www2013Quill slides-www2013
Quill slides-www2013
Vivian Motti
 
Quill slides-www2013
Quill slides-www2013Quill slides-www2013
Quill slides-www2013
Vivian Motti
 
Front end microservices: architectures and solution
Front end microservices: architectures and solutionFront end microservices: architectures and solution
Front end microservices: architectures and solution
Mikhail Kuznetcov
 
Micro frontend architecture_presentation_ssoni
Micro frontend architecture_presentation_ssoniMicro frontend architecture_presentation_ssoni
Micro frontend architecture_presentation_ssoni
Sandeep Soni
 
Mastering Dynamic Web Designing A Comprehensive Guide.pdf
Mastering Dynamic Web Designing A Comprehensive Guide.pdfMastering Dynamic Web Designing A Comprehensive Guide.pdf
Mastering Dynamic Web Designing A Comprehensive Guide.pdf
Ibrandizer
 
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
VitulChauhan
 
Prism library and MVVM
Prism library and MVVMPrism library and MVVM
Prism library and MVVM
Jiri 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 XPages
Ulrich Krause
 
Dust.js
Dust.jsDust.js
DotVVM Fundamentals
DotVVM FundamentalsDotVVM Fundamentals
DotVVM Fundamentals
Daniel Gomez Jaramillo
 
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 concept
42windmills
 
42 windmills: web applications without coding
42 windmills: web applications without coding42 windmills: web applications without coding
42 windmills: web applications without coding
42windmills
 

Similar to 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
 
Mastering Dynamic Web Designing A Comprehensive Guide.pdf
Mastering Dynamic Web Designing A Comprehensive Guide.pdfMastering Dynamic Web Designing A Comprehensive Guide.pdf
Mastering Dynamic Web Designing A Comprehensive Guide.pdf
 
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
 

Recently uploaded

[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
Jason Yip
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
Jakub Marek
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
Antonios Katsarakis
 
Principle of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptxPrinciple of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptx
BibashShahi
 
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
saastr
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Tosin Akinosho
 
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their MainframeDigital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Precisely
 
Mutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented ChatbotsMutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented Chatbots
Pablo Gómez Abajo
 
Y-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PPY-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PP
c5vrf27qcz
 
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
saastr
 
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
Edge AI and Vision Alliance
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
Apps Break Data
Apps Break DataApps Break Data
Apps Break Data
Ivo Velitchkov
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
Edge AI and Vision Alliance
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
Ivanti
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 

Recently uploaded (20)

[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
 
Principle of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptxPrinciple of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptx
 
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
 
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their MainframeDigital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
 
Mutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented ChatbotsMutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented Chatbots
 
Y-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PPY-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PP
 
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
 
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
Apps Break Data
Apps Break DataApps Break Data
Apps Break Data
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 

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