Date post: | 29-Jan-2016 |
Category: |
Documents |
Upload: | erin-harrell |
View: | 216 times |
Download: | 0 times |
Orchestrating ATL Model Transformations
J.E. Rivera, D. Ruiz-González, F. López-Romero, J. Bautista,
and A. Vallecillo
MtATL 09Nantes, July 09
(2) MtATL 09. Nantes, July 09
Model Driven Software Model Driven Software DevelopmentDevelopment Models: key artifacts in all phases of development They usually address one concern Implementation of a system obtained by applying a set
of transformations
(3) MtATL 09. Nantes, July 09
Model Transformation Model Transformation OrchestrationOrchestration Construction of complex model
transformations from other transformations already defined
Global Model Management●Megamodels as registries for resources available:
models, metamodels, transformations...●Reused to build new tools, processes and
transformations. Ant tasks
(4) MtATL 09. Nantes, July 09
Our ApproachOur Approach A DSL that enables the high-level
orchestration of ATL model transformations.●Modular and compositional construction of
complex model transformations chains
A graphical notation (similar to UML Activity diagrams) and an execution engine
Supports conditional branches, loops, composite transformations, HOT…
(5) MtATL 09. Nantes, July 09
The LanguageThe Language
(6) MtATL 09. Nantes, July 09
A simple chain of 2 model A simple chain of 2 model transformationtransformation
Temporary VS. Persistent Models
(7) MtATL 09. Nantes, July 09
TransformationsTransformations ATL Units: modules, libraries and queries
Composite Transformation
(8) MtATL 09. Nantes, July 09
TransformationsTransformations Identity Transformation
●Do not alter data
Generic Transformation●HOT
(9) MtATL 09. Nantes, July 09
Parallel CompositionParallel Composition Several outgoing data flows
(10) MtATL 09. Nantes, July 09
Conditional compositionConditional composition Decision nodes
If-then-else-endif If-then-endif
(11) MtATL 09. Nantes, July 09
LoopsLoops
(12) MtATL 09. Nantes, July 09
The Execution EngineThe Execution Engine1. elements = searchInputElements();2. void execute(elements) {3. for each e in elements {4. targetElements = searchTargetElements(e);5. for each targetElement in targetElements {6. if ( enabled(targetElement) ) {7. executeOneElement(targetElement);8. targetOutgoings =
searchTargetElements(targetElement);9. execute(targetOutgoings)10. }11. }12. }13. }
(13) MtATL 09. Nantes, July 09
The ToolThe Toolhttp://atenea.lcc.uma.es/index.php/Main_Page/Resources/Wires*
(14) MtATL 09. Nantes, July 09
Conclusions & Future WorkConclusions & Future Work
● A graphical executable language for the orchestration of ATL transformations
● Provides appropriate mechanisms to enable the modular and compositional construction of complex model transformations chains.
Future Work:● Static validation of the Wires* models: valid
connections between output and input models (subtyping algorithm)
● Other kinds of model transformations: injectors, extractors (e.g., TCS).
● Other transformation languages● New ATL features