visitors framework generator

18
Visitors Framework Generator Computer Science Department University of York Adolfo Sánchez-Barbudo Herrera ([email protected] )

Upload: university-of-york

Post on 13-Apr-2017

146 views

Category:

Engineering


0 download

TRANSCRIPT

Page 1: Visitors Framework Generator

Visitors Framework Generator

Computer Science DepartmentUniversity of York

Adolfo Sánchez-Barbudo Herrera ([email protected])

Page 2: Visitors Framework Generator

Agenda

● Visitor Pattern● Visitors Framework Generator

○ Overview○ Model traversals○ Visitors framework○ Example

● Visitors in Eclipse OCL/QVTd● Conclusions

2

Page 3: Visitors Framework Generator

Visitor Pattern● OOP design pattern● Separate structure from behaviour

2

Page 4: Visitors Framework Generator

Visitor Pattern II

● Add/Remove/Modify/Replace behaviour without changing structure.○ Ideal when working with third party structures.

3

Page 5: Visitors Framework Generator

Visitor Pattern III

● Main disadvantage○ It’s not the ideal pattern with evolving structures.

4

Page 6: Visitors Framework Generator

Visitor Pattern IV

● Visitors applied to modeling languages

5

Page 7: Visitors Framework Generator

Visitors Framework Generator

● VFG Overview

VFGEcoreModel

VisitableModel

Implementation

Visitor/Visitable

Interfaces

AbstractVisitors

Impl.

Model-Specific Visitors Framework

ManualVisitors

GeneratedVisitors

More MDE-basedgenerators

Manual Generated

6

Page 8: Visitors Framework Generator

Visitor Generation Framework II

● Visitable implementation from Ecore MM

7

Page 9: Visitors Framework Generator

Visitor Generation Framework III

● Ecore MM specific visitors framework

1. Visitor/Visitable Interfaces

2. Default Abstract Implementations

● Contextful Visitor● Null Visitor● Extending Visitor● Delegating Visitor● ...

8

Page 10: Visitors Framework Generator

Model traversals9

Page 11: Visitors Framework Generator

Model Traverals II

● Traversal in accept method○ Doomed to the same traversal algorithm.

10

● Traversal in client code○ Ok, but traversal is part of the algorithm

● Traversal in visitors○ Best, but more patterns for reuse sake

Traversal

Visitor

Action

Page 12: Visitors Framework Generator

Visitors Framework 11

Page 13: Visitors Framework Generator

Visitors Framework II12

Page 14: Visitors Framework Generator

Visitors Framework III13

Page 15: Visitors Framework Generator

Example14

Page 16: Visitors Framework Generator

Visitors Usage in Eclipse OCL/QVTd

● Eclipse OCL○ 7 Ecore metamodels○ 48 generated abstract visitors○ 67 manual visitors

● Eclipse QVTd○ 10 Ecore metamodels○ 89 generated abstract visitors○ 76 manual visitors

15

Page 17: Visitors Framework Generator

Conclusions

● VFG:○ Automatically brings the benefits of the visitor

pattern to Ecore-based models○ Automatically creates a MM-specific framework to

leverage visitors creation○ It´s a convenient practice when your models have

unclear behaviour or an evolving one○ It´s a key practice to let clients add their specific

behaviour algorithms○ A key tool in the development of Eclipse OCL/QVTd

16

Page 18: Visitors Framework Generator

Thank you very much

Questions ?

doubts, feedback, enquiries, etc. to [email protected]