Integrating a Declarative with an Imperative Model Transformation Language. Hybrid Transformation Modeling. Pieter Van Gorp email@example.com. Overview. Case Study Conceptual Model Robustness Model Imperative Approach Story Diagrams Flexible Too Low Level Declarative Approach
Too Low Level
Triple Graph Grammars
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.
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
96 l.node->contains(cmc) and
Need user decision to resolve
Adding a rule with higher preference
Application condition: situation (6) or (8)
delegate to appropriate TGG rule
Arbitrary user interaction and control flows
Resulting language: Hybrid
TGG rules fully supported
Staged: rules are ordered
Calls & branches in rules
Match nodes that are bound in the controlled TGG rule
Call to the controlled TGG rule
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
What adds most value to the QVT approach?
What is most readable?
Either approach would make TGGs more attractive than QVT
Not bidirectional, which reduces the declarativeness of a called rule to... 0
Also 2 layer language architecture
May not be possible to merge relational and operational
Hybrid Language reconciles:
Compactness of TGTSs with
Expressiveness of Story Diagrams
Advantage: no confusion about semantics of TGG rules
Minimal modification to rule derivation strategy (add <<bound>> nodes)
Advantage: no “details” on TGG level
Rule derivation HOT needs to generate traceability links
No hard guidelines (yet)