on the traceability in a graph roundtrip on the
play

On the traceability in a graph roundtrip On the traceability in a - PowerPoint PPT Presentation

On the traceability in a graph roundtrip On the traceability in a graph roundtrip transformation system GRoundTram transformation system GRoundTram Soichiro Hidaka National Institute of Informatics Workshop on Bidirectional


  1. On the traceability in a graph roundtrip On the traceability in a graph roundtrip transformation system GRoundTram† transformation system GRoundTram† Soichiro Hidaka National Institute of Informatics Workshop on Bidirectional Transformation (BT2010) Mar. 15th, 2010 †Joint work with Zhenjiang Hu , Kazuhiro Inaba , Hiroyuki Kato (National Institute of Informatics) Kazutaka Matsuda (University of Tokyo) Keisuke Nakano (University of Electro-Communications) Isao Sasano (Shibaura Institute of Technology)

  2. Since BT-ABC-3 (Nov. 2009) • In the BT-ABC-3 – support bidir. interpretation of much-more user-friendly surface syntax – lots of examples added – supports (limited form of) insertion – graph editor is provided – released complete source code in OCaml – 17000 lines of codes including comments • At the time of BT-ABC-4 – More clear formulation of trace information – Deletion support (not implemented yet) – Enhanced handling of insertions – Graph contraction support 2 S. Hidaka Traceability in GRoundTram

  3. GRoundTram • Graph Roundtrip Transformation for Models – to support systematic development of bidirectional model transformation • ground tram – bidirectional ground transportation system (tram usually runs in both directions) • "Ground" ... we would like to provide "basis" – user-level model representation is internally represented by more general graph – base graph manipulation system (graph algebra) to be • powerful enough to express typical model transformation • rigid enough to reason about properties such as well- behavedness 3 S. Hidaka Traceability in GRoundTram

  4. Model Driven Software Development refine refine ……. ….. transform transform M 1 M 2 transform transform …. model for model for implementation analysis design • We want to reflect modification at the downstream to the upstream 4 S. Hidaka Traceability in GRoundTram

  5. Bidirectional Model Transformation Example: Class2RDB Association Association name = "address" name = "phone" src_of src dest src_of src dest Class Class Class name = "Person" name = "Address" name = "Phone" is_persistent = true is_persistent = false is_persistent = true attrs attrs attrs Attribute Attribute Attribute name = "name" name = "addr" name = "number" is_primary = true is_primary = true is_primary = true type type type Table Table PrimitiveDataType PrimitiveDataType name = "Person" name = "Phone" name = "String" name = "Integer" fkeys refs pkey cols cols cols Fkey pkey cols cols Column Column Column Column name = "name" name = "addr" name = "number" name = "number" type = "String" type = "String" type = "Integer" type = "Integer" 5 S. Hidaka Traceability in GRoundTram

  6. Our Target Bidirectional Transformation s t forward Trans. modify s’ t’ backward Trans. 6 S. Hidaka Traceability in GRoundTram

  7. Why UnQL/UnCAL? • Functional (Compositional) • Has clear formal semantics • Has nice user-level syntax 7 S. Hidaka Traceability in GRoundTram

  8. Basic idea of compositional approach in BT s t Id s t t’ T 1 T 2 s 1 t 1 t 1 T 1 � � � � s T t 2 s 2 t 2 T 2 complecation: variable reference S. Hidaka Traceability in GRoundTram 8

  9. Encoding in Graphs • Edge label: primitive data and tag • Set of outgoing edges: collections • edges directed to other node: references to other components 24 41 no date order_of order customer customer 1 3 39 40 1003 "16/12/2008" add email name add add order order_of order order_of email email name 0 2 25 27 29 32 30 31 34 36 38 info code type "kato@biglab" "Kato" info code type no date no date "tanaka@gmail" "tanaka@biglab" "Tanaka" 13 15 17 26 28 19 21 23 5 7 9 11 33 35 37 "IPL of Tokyo" "100-888" contractual "BiG office of Tokyo" "200-777" shipping 1002 "16/10/2008" 1001 "16/07/2008" 12 14 16 18 20 22 4 6 8 10 Issue: coping with bisimulation 9 S. Hidaka Traceability in GRoundTram

  10. A compositional Framework for Bidirectional Model Transformation [1] SAC2009 Model Transformation in UnQL+[1] MQL Model Transformation in UnQL+[1] ( Compositional and Functional ) ( Compositional and Functional ) [Overview] Two methods ICSE2009 for typechecking NIER Tr. desugaring desugaring (incl. editing primitives) (incl. editing primitives) to core language to core language UnCAL graph algebra UnCAL graph algebra ( Graph Construction and Structural Recursion ) ( Graph Construction and Structural Recursion ) Validation Validation Bidirectional Interpreter Bidirectional Interpreter source target source target • Bidirectionalization • Bidirectionalization model model model model •Fusion Optimization •Fusion Optimization 10 S. Hidaka Traceability in GRoundTram

  11. Project site • www.biglab.org Top Demo 11 S. Hidaka Traceability in GRoundTram

  12. Agenda • Traceability – Enriched forward transformation – Tracing source node from target node – Tracing source edges from target edges • Tracing in deletion handling • Tracing in insertion handling • Internal representation and view edited by end-users • Conclusion and future work 12 S. Hidaka Traceability in GRoundTram

  13. UnCAL graph model • Cyclic & • Edge-labeled – All informations are stored in edge 1 labels – Node ids have no particular meanings a c b • Directed • Unordered (branches) 2 3 4 c • Multi-rooted (has entry points as input nodes) a a – Indicated by input markers • Has (optional) output nodes d – Indicated by output markers 5 6 • Unranked – node has arbitrary number of edges d 7 8 Has ε edges • Property : Every UnCAL graph can be normalized up to isomorphism. S. Hidaka Traceability in GRoundTram 13

  14. Source graph example: Customer- centric order information • Customer2Order (Pastor et al. 2007) 24 41 no date order_of order customer customer 1 3 39 40 1003 "16/12/2008" add email name add add order order_of order order_of email email name 0 2 25 27 29 32 30 31 34 36 38 info code type "kato@biglab" "Kato" info code type no date no date "tanaka@gmail" "tanaka@biglab" "Tanaka" 13 15 17 26 28 19 21 23 5 7 9 11 33 35 37 "IPL of Tokyo" "100-888" contractual "BiG office of Tokyo" "200-777" shipping 1002 "16/10/2008" 1001 "16/07/2008" 12 14 16 18 20 22 4 6 8 10 14 S. Hidaka Traceability in GRoundTram

  15. Transformation in UnQL select {order: {date: $date, no: $no, customer_name: $name, addr: $a}} where {customer.order: $o} in $db, {order_of:$c, date:$date, no:$no} in $o, {add:$a, name:$name} in $c, {code:$code, info:$info, type:shipping} in $a 24 41 no date order_of order customer customer 1 3 39 40 1003 "16/12/2008" add email name add add order order_of order order_of email email name 0 2 25 27 29 32 30 31 34 36 38 info code type "kato@biglab" "Kato" info code type no date no date "tanaka@gmail" "tanaka@biglab" "Tanaka" 13 15 17 26 28 19 21 23 5 7 9 11 33 35 37 "IPL of Tokyo" "100-888" contractual "200-777" shipping 1002 "16/10/2008" 1001 "16/07/2008" "BiG office of Tokyo" 12 14 16 18 20 22 4 6 8 10 S. Hidaka Traceability in GRoundTram 15

  16. Target graph example : Order- centric graph select {order: {date: $date, no: $no, customer_name: $name, addr: $a}} where {customer.order: $o} in $db, {order_of:$c, date:$date, no:$no} in $o, {add:$a, name:$name} in $c, {code:$code, info:$info, type:shipping} in $a 23 order order order 24 25 26 no dat e customer_name addr addr no dat e customer_name addr customer_name no dat e 1 3 19 20 5 7 22 9 11 1003 "16/12/2008" "Kato" info code type 1002 "16/10/2008" "Tanaka" 1001 "16/07/2008" 0 2 18 13 15 17 4 6 21 8 10 "BiG office of Tokyo" "200-777" shipping 12 14 16 16 S. Hidaka Traceability in GRoundTram

  17. From UnQL to UnCAL via structural recursion • Extract every subgraph under edges labeled b rec( λ ({$ l ,$ G }). select $ G sfun f({b:$ G }) = $ G where | f({$ l :$ G }) = f($ G ) if $ l = b then $ G else { ε :&})($ db ) {_*. b :$ G } in $ db in f($ db ) UnQL Structural UnCAL UnQL Structural UnCAL Recursion Recursion Property : Every UnQL query can be translated into UnCAL query 17 S. Hidaka Traceability in GRoundTram

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend