© 2004 teknowledge corporation state consistency strategies for cots integration sven johann...

13
© 2004 Teknowledge Corporation State Consistency Strategies for COTS Integration Sven Johann Teknowledge Corp. / University of Applied Sciences Mannheim Alexander Egyed Teknowledge Corp.

Upload: nathaniel-taylor

Post on 19-Jan-2016

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: © 2004 Teknowledge Corporation State Consistency Strategies for COTS Integration Sven Johann Teknowledge Corp. / University of Applied Sciences Mannheim

© 2004 Teknowledge Corporation

State Consistency Strategies for COTS Integration

Sven JohannTeknowledge Corp. /

University of Applied Sciences Mannheim Alexander EgyedTeknowledge Corp.

Page 2: © 2004 Teknowledge Corporation State Consistency Strategies for COTS Integration Sven Johann Teknowledge Corp. / University of Applied Sciences Mannheim

© 2004 Teknowledge Corporation

Outline

Motivation for State Consistency Realization of State Consistency State Consistency between

Semantically Different Domains

Page 3: © 2004 Teknowledge Corporation State Consistency Strategies for COTS Integration Sven Johann Teknowledge Corp. / University of Applied Sciences Mannheim

© 2004 Teknowledge Corporation

Motivation (1) COTS software integrated into system:

passive COTS software (back-end) active COTS software (front-end)

E.g., UML Model Analysis Tool Model Analysis Tool UML Modeling Tool

(Rose) New Requirement: Only changes in UML should

be re-analyzed (incremental analysis instead of batch transformation and re-analysis of all) UML Modeling Tool (Rose) Model

Analysis Tool BUT: Rose does not want to be a service

requesting component!

Page 4: © 2004 Teknowledge Corporation State Consistency Strategies for COTS Integration Sven Johann Teknowledge Corp. / University of Applied Sciences Mannheim

© 2004 Teknowledge Corporation

Motivation (2)

UML Model Analysis Tool Model analysis tool gets notified about

Rose model changes instantly when it changed and where it changed

Solution?: Change Notification, e.g., MVC, Observer, Publisher/Subscriber

Problem: COTS software typically does not support this solution (Rose does not)

And we cannot do anything about that (no source code)

Page 5: © 2004 Teknowledge Corporation State Consistency Strategies for COTS Integration Sven Johann Teknowledge Corp. / University of Applied Sciences Mannheim

© 2004 Teknowledge Corporation

Detect a Change (1) A change notification mechanism for COTS? Observations:

Changes seem to happen by mouse clicks and keyboard events only (when)

Changes seem to happen to selected elements only (where)

We assume that selected elements have changed after every event done? Rose tells us about selected elements Our Instrumentation technology tells about

keyboard and mouse event Double-clicking a class selects the class and

opens its properties not a change

Page 6: © 2004 Teknowledge Corporation State Consistency Strategies for COTS Integration Sven Johann Teknowledge Corp. / University of Applied Sciences Mannheim

© 2004 Teknowledge Corporation

Detect a Change (2)

Better Solution: Cache the current state of element(s)

when first selected Compare cached state with latest state

after keyboard and mouse events. How do we know about state?

Rose has a programmatic API to access all properties of UML model elements (state)

=> Difference between cached state and latest state is a change!

Page 7: © 2004 Teknowledge Corporation State Consistency Strategies for COTS Integration Sven Johann Teknowledge Corp. / University of Applied Sciences Mannheim

© 2004 Teknowledge Corporation

Detect a Change (3)

Exceptions for new and deleted elements: How do we know about newly created

elements? indexing system that keeps track of things we

have seen before Deleted elements are in cache, but not in

Rose exception implies no longer available

Page 8: © 2004 Teknowledge Corporation State Consistency Strategies for COTS Integration Sven Johann Teknowledge Corp. / University of Applied Sciences Mannheim

© 2004 Teknowledge Corporation

Detect a Change (4) Non-selected elements can be changed

after all: deletion of a class in Rose also deletes all its

relationships, attributes and methods Only class was selected (not relationships,

attributes, etc.) Requires knowledge of side effects of Rose

actions that need to be handled explicitly And there are other anomalies that have to be

handled individually

=> BUT WE CAN DO IT. IN FACT, WE HAVE DONE IT FOR RATIONAL ROSE AND OTHER COTS SOFTWARE

Page 9: © 2004 Teknowledge Corporation State Consistency Strategies for COTS Integration Sven Johann Teknowledge Corp. / University of Applied Sciences Mannheim

© 2004 Teknowledge Corporation

Demo

Page 10: © 2004 Teknowledge Corporation State Consistency Strategies for COTS Integration Sven Johann Teknowledge Corp. / University of Applied Sciences Mannheim

© 2004 Teknowledge Corporation

Imagine: ESCM Model Analysis Tool for Rose- ESCM is semantically very different from UML- The graphical notation of Rose is not UML any longer

Class_Variabilities

NewClass4

NewClass2

NewClass3

NewClassname

<<abstract component>>

AttributeAbstract Component

Variability

TaggedValue

Find a way to translate UML change notifications into ESCM change notification

Bat

ch tr

ansf

orm

atio

n

Non-trival mapping(one-to-many)(many-to-many)

Page 11: © 2004 Teknowledge Corporation State Consistency Strategies for COTS Integration Sven Johann Teknowledge Corp. / University of Applied Sciences Mannheim

© 2004 Teknowledge Corporation

How to find the When and Where?

Class_Variabilities

NewClass4

NewClass2

NewClass3

NewClassname

<<abstract component>>

Abstract Component

Variability

TaggedValue

Attribute

TaggedValue

CompositeTag

Abstract Component

Attribute

Variability

TaggedValue

1) ESCM model always consistent with Rose

2) ESCM change notifications whenever there is inconsistency

Trivial: re-transform all & compare

Page 12: © 2004 Teknowledge Corporation State Consistency Strategies for COTS Integration Sven Johann Teknowledge Corp. / University of Applied Sciences Mannheim

© 2004 Teknowledge Corporation

How to find the When and Where?

Class_Variabilities

NewClass4

NewClass2

NewClass3

NewClassname

<<abstract component>>

1) ESCM model always consistent with Rose

2) ESCM change notifications whenever there is inconsistency

Better: re-transform partially & compare & update

Abstract Component

Variability

TaggedValue

TaggedValue

CompositeTag

Abstract Component

Attribute

Variability

TaggedValue

Page 13: © 2004 Teknowledge Corporation State Consistency Strategies for COTS Integration Sven Johann Teknowledge Corp. / University of Applied Sciences Mannheim

© 2004 Teknowledge Corporation

Thank You!

NewClass

NewClass2

Design critiqueDesign navigationDesign feedbackDesign sharing