hybrid transformation modeling
DESCRIPTION
Integrating a Declarative with an Imperative Model Transformation Language. Hybrid Transformation Modeling. Pieter Van Gorp [email protected]. Overview. Case Study Conceptual Model Robustness Model Imperative Approach Story Diagrams Flexible Too Low Level Declarative Approach - PowerPoint PPT PresentationTRANSCRIPT
HybridTransformation ModelingIntegrating a Declarative with an Imperative
Model Transformation Language
Pieter Van [email protected]
2
OverviewCase Study
Conceptual Model Robustness Model
Imperative Approach Story Diagrams Flexible Too Low Level
Declarative Approach Triple Graph Grammars Compact Too Generic
Hybrid Approach Story Diagrams + TGG rules Expressive and Compact
Language Integration Metamodel Merging Metamodel Mapping
3
Case Study
Conceptual Model
Robustness Model
4UML Profiled Models as Graphs
5
Sample Constraint (Informal Version)
All classes from the conceptual model should correspond to entities in the robustness model.
Their attributes and attribute types should correspond.
Both internal types and library types should be supported.
6
Overview
• Case Study• Imperative Approach
- Story Diagrams
• Declarative Approach• Hybrid Approach• Language Integration
7
Imperative Approach:Story Diagrams
89 -- Evaluate whether each class in the conceptual model traces to
90 -- an entity in the robustness model
91 let eachClassTracesToAnEntity(): Boolean=
92 conceptualmodelTracesToRobustnessmodel() and -- ’rm’ not Undefined
93 allClassesFromModel(cm)->forAll(cmc|
94 allClassesFromModel(rm)->exists(rmc|
95 this.traceabilityLinks->select(oclIsKindOf(Class2Entity))->exists(l|
96 l.node->contains(cmc) and
97 l.node->contains(rmc)
98 )
99 )
100 )
Any interaction pattern can be implemented:
• setFocus• chooseAlternative• ...
8
Story Pattern: “Is the Class related to an Entity?”
9
Can be abstracted by TGG rules..
• Too low-level• Recurring Patterns
- Story diagram for creating elements- Story diagram for incremental update- Story diagram for manual resolution- ...
Problem
10
Overview
• Case Study• Imperative Approach• Declarative Approach
- TGG Rules
• Hybrid Approach• Language Integration
11
Classes to Entities
12
Handling Internal Attribute Types
13
Handling External Attribute Types
14
Problem
• Overlapping Applicability
• Need user decision to resolve
15
Overview
• Case Study• Imperative Approach• Declarative Approach• Hybrid Approach• Language Integration
16
Solution• Adding a rule with higher preference
- Application condition: situation (6) or (8)- Effects:
• user interaction• delegate to appropriate TGG rule
- Arbitrary user interaction and control flows• story diagrams
• Resulting language: Hybrid- Declarative:
• TGG rules fully supported• Staged: rules are ordered
- Imperative: • Calls & branches in rules
17
Making TGG rules Callable
• First State- Match nodes that are bound in the controlled TGG rule
• Second State- Call to the controlled TGG rule
18
Controlled Triple Graph Grammars
19
Language Integration
• Case Study• Imperative Approach• Declarative Approach• Hybrid Approach• Language Integration
20
Metamodel Merging VS Mapping
• Hybrid Language: TGGs merged with SDM• Alternative: Strict mapping from TGGs to SDM
- With traceability (=> bootstrap desirable?)- User interaction implemented by manually completing the
generated story diagrams
• Discussion:- What adds most value to the QVT approach?- What is most readable?- ...
Either approach would make TGGs more attractive than QVT
21
Related Work• ATL- Not bidirectional, which reduces the declarativeness of a
called rule to... 0
• QVT: - Also 2 layer language architecture- May not be possible to merge relational and operational
• Choosing a TGG tool to extend...- Darmstadt: advantage of JMI compliance
• Wait for all operational rule derivations?
- Paderborn: advantage of completed incrementality• Generate JMI wrappers?
- Aachen: advantage of alternative approach to user interaction• Standard Compliance?
• Why not share what is no contribution anymore?
22
Conclusions• Hybrid Language reconciles:
- Compactness of TGTSs with- Expressiveness of Story Diagrams
• Language Engineering:- Metamodel Merging:
• Advantage: no confusion about semantics of TGG rules• Implementation:
- Minimal modification to rule derivation strategy (add <<bound>> nodes)
- Metamodel Mapping:• Advantage: no “details” on TGG level• Implementation:
- Rule derivation HOT needs to generate traceability links
- No hard guidelines (yet)