1 / 23

Hybrid Transformation Modeling

Integrating a Declarative with an Imperative Model Transformation Language. Hybrid Transformation Modeling. Pieter Van Gorp pieter.vangorp@ua.ac.be. Overview. Case Study Conceptual Model Robustness Model Imperative Approach Story Diagrams Flexible Too Low Level Declarative Approach

Download Presentation

Hybrid Transformation Modeling

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Integrating a Declarative with an Imperative Model Transformation Language HybridTransformation Modeling Pieter Van Gorp pieter.vangorp@ua.ac.be

  2. Overview Case 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

  4. UML 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. Too low-level Recurring Patterns Story diagram for creating elements Story diagram for incremental update Story diagram for manual resolution ... Problem Can be abstracted by TGG rules..

  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)

  23. Thanks for your Attention Questions? pieter.vangorp@ua.ac.be http://www.fots.ua.ac.be/~pvgorp/research/

More Related