SlideShare a Scribd company logo
1 of 20
Download to read offline
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 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
 

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

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
 

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

Recently uploaded

Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfIntroduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfFIDO Alliance
 
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdfMuhammad Subhan
 
Event-Driven Architecture Masterclass: Challenges in Stream Processing
Event-Driven Architecture Masterclass: Challenges in Stream ProcessingEvent-Driven Architecture Masterclass: Challenges in Stream Processing
Event-Driven Architecture Masterclass: Challenges in Stream ProcessingScyllaDB
 
Intro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptxIntro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptxFIDO Alliance
 
Design and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data ScienceDesign and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data SciencePaolo Missier
 
Using IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & IrelandUsing IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & IrelandIES VE
 
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfThe Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfFIDO Alliance
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?Mark Billinghurst
 
Introduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptxIntroduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptxFIDO Alliance
 
AI mind or machine power point presentation
AI mind or machine power point presentationAI mind or machine power point presentation
AI mind or machine power point presentationyogeshlabana357357
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfFIDO Alliance
 
ADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptxADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptxFIDO Alliance
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe中 央社
 
JavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate GuideJavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate GuidePixlogix Infotech
 
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...panagenda
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctBrainSell Technologies
 
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfLinux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfFIDO Alliance
 
Vector Search @ sw2con for slideshare.pptx
Vector Search @ sw2con for slideshare.pptxVector Search @ sw2con for slideshare.pptx
Vector Search @ sw2con for slideshare.pptxjbellis
 
WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024Lorenzo Miniero
 

Recently uploaded (20)

Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfIntroduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
 
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
 
Event-Driven Architecture Masterclass: Challenges in Stream Processing
Event-Driven Architecture Masterclass: Challenges in Stream ProcessingEvent-Driven Architecture Masterclass: Challenges in Stream Processing
Event-Driven Architecture Masterclass: Challenges in Stream Processing
 
Intro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptxIntro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptx
 
Design and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data ScienceDesign and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data Science
 
Using IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & IrelandUsing IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & Ireland
 
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfThe Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?
 
Introduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptxIntroduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptx
 
AI mind or machine power point presentation
AI mind or machine power point presentationAI mind or machine power point presentation
AI mind or machine power point presentation
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
 
ADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptxADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptx
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe
 
JavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate GuideJavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate Guide
 
Overview of Hyperledger Foundation
Overview of Hyperledger FoundationOverview of Hyperledger Foundation
Overview of Hyperledger Foundation
 
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage Intacct
 
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfLinux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
 
Vector Search @ sw2con for slideshare.pptx
Vector Search @ sw2con for slideshare.pptxVector Search @ sw2con for slideshare.pptx
Vector Search @ sw2con for slideshare.pptx
 
WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024
 

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