Sequence Graphs Ongoing Work Structure Builder Tendril Software

Sequence Graphs

Ongoing Work • Structure Builder (Tendril Software Inc. , www. tendril. com) – Code generation from sequence diagram-like structures, called sequence graphs – Sequence graphs: overview part / implementation part – Object-transportation automatic

Sequence Graph with generated code A get_c() B get_d() 1 2 get_c(): in b: B; out c: C get_d(): in c: C; out d: D f(): in d: D; out x: X C f() 3 code in A: this. b. get_c(). get_d(). f() bad D

Sequence Graph with generated code A get_b() B get_c() C get_d() D 1 2 3 get_c(): in b: B; out c: C get_d(): in c: C; out d: D f(): in d: D; out x: X code in A: this. get_b(). get_c(). get_d(). f() better 4 X

A get_c() 1 B 2 get_d() C 4 get_e() get_c(): in b: B; out c: C get_d(): in c: C; out d: D get_e(): in c: C; out e: E f(): in d: D; out x: X g(): in e: E; out y: Y code in A: C c 1 = b. get_c(); X x = c 1. get_d(). f(); Y y = c 1. get_e(). g(); f() D 3 C 5 g() E bad

1 A get_c() B 2 get_d() C f() D get_q() 5 3 4 get_e() Q 6 g() get_c(): in b: B; out c: C get_d(): in c: C; out d: D E get_q(): in c: B; out q: Q f(): in d: D; out x: X Bad, not allowed g(): in e: E; out y: Y code in A: X x = get_b(). get_c(). get_d(). f(); Y y = get_b(). get_q(). get_e(). g();

1 A get_c() get_q() B 2 get_d() 5 C f() D 3 B 4 get_e() Q g() get_c(): in b: B; out c: C 6 get_d(): in c: C; out d: D E get_q(): in c: B; out q: Q f(): in d: D; out x: X g(): in e: E; out y: Y code in A: X x = get_b(). get_c(). get_d(). f(); Y y = get_b(). get_q(). get_e(). g(); bad

A get_b() 1 B 2 get_c() 5 get_q() C get_d() D 4 X 3 f() Q 6 get_e() get_c(): in b: B; out c: C get_d(): in c: C; out d: D E 7 get_q(): in c: B; out q: Q f(): in d: D; out x: X g(): in e: E; out y: Y Y code in A: X x = get_b(). get_c(). get_d(). f(); Y y = get_b(). get_q(). get_e(). g(); better Shift right one edge
- Slides: 8