Transforming models with ATL - PowerPoint PPT Presentation

1 / 23
About This Presentation
Title:

Transforming models with ATL

Description:

2nd AMMA/ATL Workshop - May 4, 2006 - Nantes. Transforming models with ATL 2006 ... Fr d ric Jouault. ATLAS group (INRIA & LINA), University of Nantes, France ... – PowerPoint PPT presentation

Number of Views:27
Avg rating:3.0/5.0
Slides: 24
Provided by: frdr4
Category:

less

Transcript and Presenter's Notes

Title: Transforming models with ATL


1
Transforming models with ATL The ATLAS
Transformation Language Frédéric Jouault ATLAS
group (INRIA LINA), University of Nantes,
France http//www.sciences.univ-nantes.fr/lina/atl
/
2
Contents
  • Definitions
  • Operational context
  • Description of ATL
  • Overview
  • Source pattern
  • Target pattern
  • Execution order
  • Example Class to Relational
  • Other features
  • Conclusion

3
Definitions
  • A model transformation is the automatic creation
    of target models from source models.
  • Model transformation is not only about M1 to M1
    transformations
  • M1 to M2 promotion,
  • M2 to M1 demotion,
  • M3 to M1, M3 to M2, etc.

Metametamodel
M3
Metamodel
M2
Terminal Model
M1
4
Operational context small theory
conformsTo
conformsTo
conformsTo
conformsTo
conformsTo
5
Operational context of ATL
MMa is the source metamodel
MMB is the target metamodel
Ma is the source model
Mb is the target model
6
ATL overview
  • Source models and target models are distinct.
  • Source models cannot be modified, only navigated.
  • Target models cannot be navigated.
  • The language is a declarative-imperative hybrid
  • There are declarative matched rules.
  • There are imperative called rules and action
    blocks.
  • An imperative rule is basically a procedure.
  • A declarative rule specifies
  • a source pattern to be matched in the source
    models,
  • a target pattern to be created in the target
    models for each match.
  • All declarative rules that match are applied
  • A given set of elements may only be matched by
    one rule.

7
Declarative rules source pattern
  • The source pattern is composed of
  • A labeled set of types coming from the source
    metamodels,
  • A guard (boolean expression) used to filter
    matches.
  • A match corresponds to a set of elements coming
    from the source models that
  • Are of the types specified in the source pattern
    (one element for each type),
  • Satisfy the guard.

8
Declarative rules target pattern
  • The target pattern is composed of
  • A labeled set of types coming from the target
    metamodels,
  • For each element of this set, a set of bindings.
  • A binding specifies the initialization of a
    property of a target element using an expression.
  • For each match, the target pattern is applied
  • Elements are created in the target models (one
    for each type of the target pattern),
  • Target elements are initialized by executing the
    bindings
  • First evaluating their value,
  • Then assigning this value to the corresponding
    property.

9
Execution order
  • The order in which rules are matched and applied
    is not specified.
  • The order in which bindings are applied is not
    specified.
  • The execution of declarative rules can however be
    kept deterministic
  • The execution of a rule cannot change source
    models it cannot change a match,
  • Target elements are not navigable the execution
    of a binding cannot change the value of another.

10
Example Class to Relational
  • The source metamodel Class is a simplification of
    class diagrams.
  • The target metamodel Relational is a
    simplification of the relational model.
  • The transformation creates tables and columns
    from classes and attributes.
  • ATL declaration of the transformation
  • module Class2Relational
  • create Mout Relational from Min Class

11
The Class Metamodel


NamedElt





name

String

Classifier


type






Attribute
DataType
Class
att









multivalued

Boolean



owner






ordered



12
The Class Metamodel in KM3
package Class abstract class NamedElt
attribute name String abstract class
Classifier extends NamedElt class DataType
extends Classifier class Class extends
Classifier reference super
Class reference attr ordered container
Attribute oppositeOf owner attribute
isAbstract Boolean class Attribute
extends NamedElt attribute multiValued
Boolean reference type Classifier referenc
e owner Class oppositeOf attr
13
The Relational Metamodel
14
The Relational Metamodel in KM3
package Relational abstract class Named
attribute name String class Table
extends Named reference col ordered
container Column oppositeOf owner reference
key Column oppositeOf keyOf class
Column extends Named reference owner Table
oppositeOf col reference keyOf0-1 Table
oppositeOf key reference type
Type class Type extends Named
15
Example Class to Relational
  • A Table is created for each Class.
  • rule Class2Table
  • from
  • c Class!Class
  • to
  • t Relational!Table

16
Example Class to Relational
  • The name of the Table is the name of the Class.
  • rule Class2Table
  • from
  • c Class!Class
  • to
  • t Relational!Table (
  • name lt- c.name
  • )

17
Example Class to Relational
  • The columns of the table correspond to the
    non-multi-valued attributes of the class.
  • rule Class2Table
  • from
  • c Class!Class
  • to
  • t Relational!Table (
  • name lt- c.name,
  • col lt- c.attr-gtselect(e
  • not e.multiValued
  • )
  • )

18
Example Class to Relational
  • Each Table owns a key containing a unique
    identifier.
  • rule Class2Table
  • from
  • c Class!Class
  • to
  • t Relational!Table (
  • name lt- c.name,
  • col lt- c.attr-gtselect(e
  • not e.multiValued
  • )-gtunion(Sequence key),
  • key lt- Set key
  • ),
  • key Relational!Column (
  • name lt- Id
  • )

19
Example Class to Relational
  • A Column is created for each single-valued
    Attribute.
  • rule SingleValuedAttribute2Column
  • from
  • a Class!Attribute (not a.multiValued)
  • to
  • c Relational!Column (
  • name lt- a.name
  • )

20
Example Class to Relational
  • A Table is created for each multi-valued
    Attribute, which contains two columns
  • The identifier of the table created from the
    class owner of the Attribute
  • The value.
  • rule MultiValuedAttribute2Column
  • from
  • a Class!Attribute (a.multiValued)
  • to
  • t Relational!Table (
  • name lt- a.owner.name _ a.name,
  • col lt- Sequence id, value
  • ),
  • id Relational!Column (
  • name lt- Id
  • ),
  • value Relational!Column (
  • name lt- a.name
  • )

21
Other features
  • Lazy rules
  • Standard lazy rules referenced n ? applied n
  • Unique lazy rules referenced 0 ? applied 0,
    referenced n ? applied 1
  • Rule inheritance, to help structure
    transformations and reuse rules and patterns,
  • Refining mode for transformations that need to
    modify only a small part of a model.

22
Conclusion
  • ATL has a simple declarative syntax
  • ? Simple problems are solved simply.
  • ATL supports more advanced features
  • Complex OCL navigation, lazy rules, refining
    mode, rule inheritance, etc.
  • ? More complex problems can still be dealt with
    declaratively.
  • ATL has an imperative part
  • ? Any problem can be dealt with.

23
End of the presentation
  • Thanks
  • Questions?
  • Comments?
  • AMMA_at_lina.univ-nantes.fr
  • ATLAS group, INRIA LINA, Nantes
Write a Comment
User Comments (0)
About PowerShow.com