Automatic Application of Visitors to Evolving Domain-Specific Languages
Automatic Application of
Visitors to Evolving
Computer Science Department
University of York1
& Willink Transformations Ltd2.
Adolfo Sánchez-Barbudo Herrera1, Ed Willink2, Richard Paige1, Louis Rose1, Dimitris Kolovos1
(firstname.lastname@example.org email@example.com firstname.lastname@example.org, email@example.com, firstname.lastname@example.org)
Introduction to Modeling (MDSD, MDE,...)
Visitor Generation Framework (VGF)
VGF for Model Behaviour Evolution
Models as main artefact for developing SW
Models as abstract representations of SW
Higher level of abstraction than programs
Programs replaced by Models
Modeling Introduction II
With a modeling language you can create model
instances, which correspond to objects at runtime.
Modeling Introduction III
● MDE techniques to support software
Model to Text
Model to Model
● Model concepts may comprise behaviour
● Usually modelled as Operations
A user can create new posts in a given uBlog
● Model evolution - like SW evolution - is a
recurrent and open issue.
Model Evolution II
● Same issues regarding behaviour.
● OOP design pattern
○ Well known solutions to a recurring problem
● Separate structure from behaviour
Visitor Pattern II
● Main advantage
○ Add/Remove/Modify/Replace behaviour without
○ Ideal when working with third party structures.
Visitor Pattern III
● Main disadvantage
○ It’s not the ideal pattern with evolving structures.
Visitor Pattern IV
● Visitors applied to modeling languages
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.
Visitor Generation Framework II
● M2M transformation to prepare the DSL
VGF for models behaviour evolution
● Evolving behaviour - Same structure
No Model Visitors
● Evolving structure - Same behaviour
No Model Visitors
○ 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
doubts, feedback, enquiries, etc. to email@example.com