(c) 1998 tendril software inc. structurebuilder tendril software inc. oopsla ‘98 demo neeraj...

Post on 22-Dec-2015

218 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

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.

top related