(c) 1998 tendril software inc. structurebuilder tendril software inc. oopsla ‘98 demo neeraj...
Post on 22-Dec-2015
216 views
TRANSCRIPT
(C) 1998 Tendril Software Inc.
www.tendril.com 1
StructureBuilderTendril Software Inc.
OOPSLA ‘98 Demo
Neeraj Sangal, President Tendril Software
Karl Lieberherr, Northeastern University (presenter)
(C) 1998 Tendril Software Inc.
www.tendril.com 2
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
(C) 1998 Tendril Software Inc.
www.tendril.com 3
C1
C2 C3
C4
C5
Interact-1
Interact-2 Interact-3Interact-4
OOAD
Implementation
C1
C2 C3
C4
C5
Motivation
Requirements
(C) 1998 Tendril Software Inc.
www.tendril.com 4
C1
C2 C3
C4
C5
Interact-1
Interact-2 Interact-3Interact-4
OOAD
Structure Builderlet‘s you operate atinteraction level
C1
C2 C3
C4
C5
Motivation
Requirements
(C) 1998 Tendril Software Inc.
www.tendril.com 5
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
(C) 1998 Tendril Software Inc.
www.tendril.com 6
Problem one addressedordinary program
interaction1
interaction2
interaction3
SB program
TANGLING
(C) 1998 Tendril Software Inc.
www.tendril.com 7
Problem one addressed
ConsequencesNo need to distribute interactions manually over several classes
Work at level of interactionsNo need to identify interactions from tangled code during maintenance
The interactions are explicit
TANGLING
(C) 1998 Tendril Software Inc.
www.tendril.com 8
Problem one addressed
Related to Aspect-Oriented Programming (AOP)Xerox PARC, Demeter Research Group, OOPSLA ’92AOP
Solves complex tangling problems StructureBuilder
Solves two specific tangling problems: Interaction tangling and transportation tangling
TANGLING
(C) 1998 Tendril Software Inc.
www.tendril.com 9
ordinary program
interaction1
interaction2
interaction3
SB program
TANGLING Interaction Tangling
(C) 1998 Tendril Software Inc.
www.tendril.com 10
ordinary program
interactionsummary
interaction properties
class diagram
SB program
TANGLING Transportation Tangling
(C) 1998 Tendril Software Inc.
www.tendril.com 11
Problem two addressed
• UML interaction diagrams are difficult to keep up-to-date with the code.
UPDATE
(C) 1998 Tendril Software Inc.
www.tendril.com 12
INTERACTIONDIAGRAMS
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
(C) 1998 Tendril Software Inc.
www.tendril.com 13
Problem three addressed
• Code for object interactions includes much low-level object transportation code
v
v Class A
Class Z
TRANSPORTATION
(C) 1998 Tendril Software Inc.
www.tendril.com 14
Problem four addressed
• Code for object interactions includes much context-dependent information that makes the code hard to maintain
CONTEXT DEPENDENCY
(C) 1998 Tendril Software Inc.
www.tendril.com 15
UML Class Diagram
LibrarySystem Book
0..*
books
User
users
0..*
HashTable or Vector:Find operation looks verydifferent at code level.
CONTEXT DEPENDENCY
(C) 1998 Tendril Software Inc.
www.tendril.com 16
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
(C) 1998 Tendril Software Inc.
www.tendril.com 17
Solution (continued)
• Programs look like designs– UML class diagrams – Interaction graphs are similar to UML sequence
diagrams
(C) 1998 Tendril Software Inc.
www.tendril.com 18
Interaction Graphs• Nodes
– Participants/classes: labeled by an access path
• Edges– Message sends
• Local variables– Communication between participants
• Properties– Context of actions
(C) 1998 Tendril Software Inc.
www.tendril.com 19
UML Class Diagram
LibrarySystem Book
0..*
books
User
users
0..*
Copy
CheckOutItem
copies
0..*
copybook
items
0..*
(C) 1998 Tendril Software Inc.
www.tendril.com 20
Sequence diagram
books.Find
copies.Find
users.Find
user.addItem
CheckOutItem.new
items.Add
copy.unAvailable
librarySystem
user
CHECKOUT
(C) 1998 Tendril Software Inc.
www.tendril.com 21
Sequence Diagram
(C) 1998 Tendril Software Inc.
www.tendril.com 22
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)
(C) 1998 Tendril Software Inc.
www.tendril.com 23
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
(C) 1998 Tendril Software Inc.
www.tendril.com 24
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
(C) 1998 Tendril Software Inc.
www.tendril.com 25
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)
(C) 1998 Tendril Software Inc.
www.tendril.com 26
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)
(C) 1998 Tendril Software Inc.
www.tendril.com 27
Interaction Graph
• Defines properties of actions
• Provides complete specification
• But: is incomplete without a UML class diagram
(C) 1998 Tendril Software Inc.
www.tendril.com 28
Differences Interaction Diagrams - Interaction Graphs
• Interaction Graphs – Computationally complete– Have properties containing code and context
information– Each action keeps track of input/output
(C) 1998 Tendril Software Inc.
www.tendril.com 29
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
(C) 1998 Tendril Software Inc.
www.tendril.com 30
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
(C) 1998 Tendril Software Inc.
www.tendril.com 31
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++
(C) 1998 Tendril Software Inc.
www.tendril.com 32
Next: demo
• Summary so far: StructureBuilder introduces a generalization of sequence diagrams to solve four important problems related to OO software development.