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

StructureBuilder Tendril Software Inc

  • Upload
    mingan

  • View
    27

  • Download
    0

Embed Size (px)

DESCRIPTION

StructureBuilder Tendril Software Inc. OOPSLA ‘98 Demo Neeraj Sangal , President Tendril Software Karl Lieberherr , Northeastern University (presenter). Overview. Problems Addressed The Concept: Interaction Graphs The Tool: Structure Builder (SB) Generation of executable code from - PowerPoint PPT Presentation

Citation preview

Page 1: StructureBuilder Tendril Software Inc

(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)

Page 2: StructureBuilder Tendril Software Inc

(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

Page 3: StructureBuilder Tendril Software Inc

(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

Page 4: StructureBuilder Tendril Software Inc

(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

Page 5: StructureBuilder Tendril Software Inc

(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

Page 6: StructureBuilder Tendril Software Inc

(C) 1998 Tendril Software Inc.

www.tendril.com 6

Problem one addressedordinary program

interaction1

interaction2

interaction3

SB program

TANGLING

Page 7: StructureBuilder Tendril Software Inc

(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

Page 8: StructureBuilder Tendril Software Inc

(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

Page 9: StructureBuilder Tendril Software Inc

(C) 1998 Tendril Software Inc.

www.tendril.com 9

ordinary program

interaction1

interaction2

interaction3

SB program

TANGLING Interaction Tangling

Page 10: StructureBuilder Tendril Software Inc

(C) 1998 Tendril Software Inc.

www.tendril.com 10

ordinary program

interactionsummary

interaction properties

class diagram

SB program

TANGLING Transportation Tangling

Page 11: StructureBuilder Tendril Software Inc

(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

Page 12: StructureBuilder Tendril Software Inc

(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

Page 13: StructureBuilder Tendril Software Inc

(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

Page 14: StructureBuilder Tendril Software Inc

(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

Page 15: StructureBuilder Tendril Software Inc

(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

Page 16: StructureBuilder Tendril Software Inc

(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

Page 17: StructureBuilder Tendril Software Inc

(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

Page 18: StructureBuilder Tendril Software Inc

(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

Page 19: StructureBuilder Tendril Software Inc

(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..*

Page 20: StructureBuilder Tendril Software Inc

(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

Page 21: StructureBuilder Tendril Software Inc

(C) 1998 Tendril Software Inc.

www.tendril.com 21

Sequence Diagram

Page 22: StructureBuilder Tendril Software Inc

(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)

Page 23: StructureBuilder Tendril Software Inc

(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

Page 24: StructureBuilder Tendril Software Inc

(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

Page 25: StructureBuilder Tendril Software Inc

(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)

Page 26: StructureBuilder Tendril Software Inc

(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)

Page 27: StructureBuilder Tendril Software Inc

(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

Page 28: StructureBuilder Tendril Software Inc

(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

Page 29: StructureBuilder Tendril Software Inc

(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

Page 30: StructureBuilder Tendril Software Inc

(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

Page 31: StructureBuilder Tendril Software Inc

(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++

Page 32: StructureBuilder Tendril Software Inc

(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.