J.E. Rivera, D. Ruiz-González, F. López-Romero, J. Bautista, and A. Vallecillo MtATL 09 Nantes, July 09
MtATL 09. Nantes, July 09 (2) Models: key artifacts in all phases of development They usually address one concern Implementation of a system obtained by applying a set of transformations
MtATL 09. Nantes, July 09 (3) 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
MtATL 09. Nantes, July 09 (4) 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…
MtATL 09. Nantes, July 09 (5)
MtATL 09. Nantes, July 09 (6) Temporary VS. Persistent Models
MtATL 09. Nantes, July 09 (7) ATL Units: modules, libraries and queries Composite Transformation
MtATL 09. Nantes, July 09 (8) Identity Transformation ● Do not alter data Generic Transformation ● HOT
MtATL 09. Nantes, July 09 (9) Several outgoing data flows
MtATL 09. Nantes, July 09 (10) Decision nodes If-then-else-endif If-then-endif
MtATL 09. Nantes, July 09 (11)
MtATL 09. Nantes, July 09 (12) 1. 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. }
MtATL 09. Nantes, July 09 (13)
MtATL 09. Nantes, July 09 (14) ● 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