Presentation is loading. Please wait.

Presentation is loading. Please wait.

(C) 1998 Tendril Software Inc. www.tendril.com1 StructureBuilder Tendril Software Inc. OOPSLA ‘98 Demo Neeraj Sangal, President Tendril Software Karl.

Similar presentations


Presentation on theme: "(C) 1998 Tendril Software Inc. www.tendril.com1 StructureBuilder Tendril Software Inc. OOPSLA ‘98 Demo Neeraj Sangal, President Tendril Software Karl."— Presentation transcript:

1

2 (C) 1998 Tendril Software Inc. www.tendril.com1 StructureBuilder Tendril Software Inc. OOPSLA ‘98 Demo Neeraj Sangal, President Tendril Software Karl Lieberherr, Northeastern University (presenter)

3 (C) 1998 Tendril Software Inc. www.tendril.com2 Overview Problems Addressed The Concept: Interaction Graphs The Tool: Structure Builder (SB) –Generation of executable code from UML class diagrams Generalized UML sequence diagrams (interaction graphs) –Other capabilities

4 (C) 1998 Tendril Software Inc. www.tendril.com3 C1 C2 C3 C4 C5 Interact-1 Interact-2Interact-3 Interact-4 OOAD Implementation C1 C2 C3 C4 C5 Motivation Requirements

5 (C) 1998 Tendril Software Inc. www.tendril.com4 C1 C2 C3 C4 C5 Interact-1 Interact-2Interact-3 Interact-4 OOAD Structure Builder let‘s you operate at interaction level C1 C2 C3 C4 C5 Motivation Requirements

6 (C) 1998 Tendril Software Inc. www.tendril.com5 Four problems addressed TANGLING –Cross-cutting of interactions UPDATE –Difficulty of maintaining UML interaction diagrams TRANSPORTATION –Object transportation code is difficult to maintain CONTEXT DEPENDENCY –Context changes are tedious to make

7 (C) 1998 Tendril Software Inc. www.tendril.com6 Problem one addressed ordinary program interaction1 interaction2 interaction3 SB program TANGLING

8 (C) 1998 Tendril Software Inc. www.tendril.com7 Problem one addressed Consequences No need to distribute interactions manually over several classes Work at level of interactions No need to identify interactions from tangled code during maintenance The interactions are explicit TANGLING

9 (C) 1998 Tendril Software Inc. www.tendril.com8 Problem one addressed Related to Aspect-Oriented Programming ( AOP ) Xerox PARC, Demeter Research Group, OOPSLA ’92 AOP Solves complex tangling problems StructureBuilder Solves two specific tangling problems: Interaction tangling and transportation tangling TANGLING

10 (C) 1998 Tendril Software Inc. www.tendril.com9 ordinary program interaction1 interaction2 interaction3 SB program TANGLING Interaction Tangling

11 (C) 1998 Tendril Software Inc. www.tendril.com10 ordinary program interaction summary interaction properties class diagram SB program TANGLING Transportation Tangling

12 (C) 1998 Tendril Software Inc. www.tendril.com11 Problem two addressed UML interaction diagrams are difficult to keep up-to-date with the code. UPDATE

13 (C) 1998 Tendril Software Inc. www.tendril.com12 INTERACTION DIAGRAMS So, what? Forget about interaction diagrams? No. The point is that they are incomplete. Let’s make them into into complete specifications. Problem two addressed UPDATE

14 (C) 1998 Tendril Software Inc. www.tendril.com13 Problem three addressed Code for object interactions includes much low-level object transportation code v v Class A Class Z TRANSPORTATION

15 (C) 1998 Tendril Software Inc. www.tendril.com14 Problem four addressed Code for object interactions includes much context-dependent information that makes the code hard to maintain CONTEXT DEPENDENCY

16 (C) 1998 Tendril Software Inc. www.tendril.com15 UML Class Diagram LibrarySystem Book 0..* books User users 0..* HashTable or Vector : Find operation looks very different at code level. CONTEXT DEPENDENCY

17 (C) 1998 Tendril Software Inc. www.tendril.com16 Solution Interaction Graph language –Extend interaction diagrams to make them a specification language for object interactions. Generate code and interaction diagrams –Untangle high-level actions from context information –Untangle object transportation glue code from other interaction code

18 (C) 1998 Tendril Software Inc. www.tendril.com17 Solution (continued) Programs look like designs –UML class diagrams –Interaction graphs are similar to UML sequence diagrams

19 (C) 1998 Tendril Software Inc. www.tendril.com18 Interaction Graphs Nodes –Participants/classes: labeled by an access path Edges –Message sends Local variables –Communication between participants Properties –Context of actions

20 (C) 1998 Tendril Software Inc. www.tendril.com19 UML Class Diagram LibrarySystem Book 0..* books User users 0..* Copy CheckOutItem copies 0..* copy book items 0..*

21 (C) 1998 Tendril Software Inc. www.tendril.com20 Sequence diagram books.Find copies.Find users.Find user.addItem CheckOutItem.new items.Add copy.unAvailable librarySystem user CHECKOUT

22 (C) 1998 Tendril Software Inc. www.tendril.com21 Sequence Diagram

23 (C) 1998 Tendril Software Inc. www.tendril.com22 Summary view of an interaction graph librarySystem.books.Find >book < bn book.copies.Find >copy librarySystem.users.Find >user < uId user.addItem CheckOutItem.new >item < book,copy user.items.Add <item copy.unAvailable > output < input CHECKOUT(bn, uId)

24 (C) 1998 Tendril Software Inc. www.tendril.com23 Where is the graph? It is a tree librarySystem.books.Find >book book.copies.Find >copy librarySystem.users.Find >user user.addItem CheckOutItem.new >item < book,copy user.items.Add <item copy.unAvailable > output < input

25 (C) 1998 Tendril Software Inc. www.tendril.com24 librarySystem.books.Find >book book.copies.Find >copy librarySystem.users.Find >user user.addItem CheckOutItem.new >item < book,copy user.items.Add <item copy.unAvailable > output < input librarySystem user Where is the graph? It is a tree

26 (C) 1998 Tendril Software Inc. www.tendril.com25 What are the properties? librarySystem.books.Find >book < bn condition: bn == $curobj.bookName return: book = $curobj book.copies.Find >copy condition: $curobj.isAvailable() return: copy = $curobj > output < input CHECKOUT(bn, uId)

27 (C) 1998 Tendril Software Inc. www.tendril.com26 What are the properties? librarySystem.users.Find >user < uId condition: uId == $curobj.userId user = $curobj user.addItem CheckOutItem.new >item < book,copy item=CheckOutItem(book,copy) user.items.Add <item copy.unAvailable > output < input CHECKOUT(bn, uId)

28 (C) 1998 Tendril Software Inc. www.tendril.com27 Interaction Graph Defines properties of actions Provides complete specification But: is incomplete without a UML class diagram

29 (C) 1998 Tendril Software Inc. www.tendril.com28 Differences Interaction Diagrams - Interaction Graphs Interaction Graphs –Computationally complete –Have properties containing code and context information –Each action keeps track of input/output

30 (C) 1998 Tendril Software Inc. www.tendril.com29 StructureBuilder capabilities Full support for UML class diagrams –Reverse engineering of Java code –Immediate code generation –Code and diagrams are synchronized –User can add to generated code but it is not necessary

31 (C) 1998 Tendril Software Inc. www.tendril.com30 StructureBuilder capabilities (continued) Support for Interaction Graphs Support for Sequence Diagrams –Generate sequence diagrams from interaction graphs and vice-versa –Object tracker: tells you which variables are currently available –Will be demonstrated for library checkout example

32 (C) 1998 Tendril Software Inc. www.tendril.com31 Connection to Demeter StructureBuilder was influenced by Demeter/C++ and Demeter/Java –Interaction Graphs are related to propagation patterns: both address tangling of interactions –Object transportation is used in Demeter/C++

33 (C) 1998 Tendril Software Inc. www.tendril.com32 Next: demo Summary so far: StructureBuilder introduces a generalization of sequence diagrams to solve four important problems related to OO software development.


Download ppt "(C) 1998 Tendril Software Inc. www.tendril.com1 StructureBuilder Tendril Software Inc. OOPSLA ‘98 Demo Neeraj Sangal, President Tendril Software Karl."

Similar presentations


Ads by Google