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