17
1 Dynamic Assembly, Dynamic Assembly, Assessment, Assurance, Assessment, Assurance, and Adaptation via and Adaptation via Heterogeneous Heterogeneous Software Connectors Software Connectors Nenad Medvidovic with Marija Rakic and Barry Boehm University of Southern California Santa Fe, September 12,

1 Dynamic Assembly, Assessment, Assurance, and Adaptation via Heterogeneous Software Connectors Nenad Medvidovic with Marija Rakic and Barry Boehm University

  • View
    222

  • Download
    0

Embed Size (px)

Citation preview

1

Dynamic Assembly, Dynamic Assembly, Assessment, Assurance, and Assessment, Assurance, and

Adaptation via HeterogeneousAdaptation via HeterogeneousSoftware ConnectorsSoftware Connectors

Nenad Medvidovic

with Marija Rakic and Barry Boehm

University of Southern California

Santa Fe, September 12, 2000

2

OverviewOverview

• ADL-based architectural modeling – C2SADEL• explicit components and connectors• stylistic constraints• message-based interaction

• Tool-supported architectural analysis – SAAGE, UML/Analyzer, and AAA• topological constraints• component interfaces and behaviors• non-functional properties• refinement into design• implementation generation

• Infrastructure for architectural prototyping, implementation, execution, and runtime manipulation

3

Flexible Gauge PlacementFlexible Gauge Placementand Visualizationand Visualization

Allow dynamic, automated oruser-initiated gauge placementand architecture visualization.

Allow dynamic, automated oruser-initiated gauge placementand architecture visualization.G

oa

l

Treat gauges as first-classarchitectural entities that can be

inserted at arbitrary locationsand times in an architecture.

Treat gauges as first-classarchitectural entities that can be

inserted at arbitrary locationsand times in an architecture.M

eth

od

Light-weight, flexible, extensiblearchitecture prototyping and/or implementation infrastructure.

Explicit treatment of components,connectors, ports, events...

Hierarchical application ofarchitectural concepts on complex

components and connectors.

Light-weight, flexible, extensiblearchitecture prototyping and/or implementation infrastructure.

Explicit treatment of components,connectors, ports, events...

Hierarchical application ofarchitectural concepts on complex

components and connectors.

Te

chn

ica

l B

as

is

Comp2

Comp1

Comp3

Conn1Conn1

Arch1Arch1

GaugeGaugeViewerViewer

spawn

request

userrequest

notify

4

Gauges in Action:Gauges in Action:Detecting Component MismatchDetecting Component Mismatch

Comp1 provides opY pre: PY

post: QY

Comp2 provides opZ pre: PZ

post: QZ

Comp3 requires opX pre: PX

post: QX

“opX” “opY” (PX PY) (QY QX)

(PX PZ) (QZ QX)

5

Gauges in Action:Gauges in Action:Integrating OTS ComponentsIntegrating OTS Components

• Gauges to measure functional suitability of a partially modeled component to an architecture

• interface match

• behavior match

• interaction match

Partial ArchitecturePartial Architecture OTS Component LibraryOTS Component Library

6

SpellChecker

FontDialog

GUIdriver

ColorDialog

Canvas

WordCounter

WordCounterversion 1

WordCounterversion 2

WordCounterversion 3

MVC top

MVC bottom

• Gauges to measure different aspects of new component versions:

• correctness• performance• robustness• reliability

of the new version w.r.t. the old version

Gauges in Action:Gauges in Action:Reliable Upgrade of ComponentsReliable Upgrade of Components

7

Gauges in Action:Gauges in Action:Ensuring Consistency among Heterogeneous Semantic ModelsEnsuring Consistency among Heterogeneous Semantic Models

• Component

• Static modeling (e.g., invariants and pre-/post-conditions)

• Dynamic modeling(e.g., statecharts or CSP)

ColorDialog

FontDialog

ActiveDocumentRepository

FileRepository

SpellCheckRepository

SpellChecker

WordCounter

component ActiveDocReposComp is { state { text: String} interface { req ir_updatetext: UpdateText( txt: String); req ir_filesave: FileSave( fileName: String);}operations { req or_update_text: {let txt: STATE_VARIABLE;

post (txt \greater 0)} req or_file_save: { } } map {ir_filesave -> op_file_save(fileName ->name, text->txt);}}

Document Created

Document modified Document

saved

Document deleted

Consistent?

8

Gauges in Action:Gauges in Action:Measuring Shared Properties of Heterogeneous ConnectorsMeasuring Shared Properties of Heterogeneous Connectors

• Properties of connectors influence the properties of large, distributed systems

• Throughput

• Load

• Security

• Reliability

• Performance

Machine 2

Machine 1

E F

A

D

CB

G

9

10

Component

RequestNotification

Notification()Notification()

ListIterator

Thread(f rom lang)

ConnectorThread

Object(f rom lang)

Object(f rom lang)

Hashtable(from uti l)

Message

source

param etersFIFOPort

SimpleArchitecture

Sim pleArchitecture()Sim pleArchitecture()

ComponentThread

Object(f rom lang)

C2Object

myself

BinarySemaphor

available : boolean

Connector

bottom top

WorkerThreadSemaphor

localSem

waitingSem

LinkedList

top

bottom

Architecture

0..*

1

+workerThreads

0..*

+arch 1

sem

SynchronizedFIFO

FIFO

messageFIFO

componentFIFO

Brick

messageFIFO

r

n

Technologies:Technologies:Implementation InfrastructureImplementation Infrastructure

– Supports explicit components and connectors– Aids transition between architecture and its implementation– Allows arbitrary insertion of gauges to monitor different aspects of an application at runtime

Lightweight and extensible

–Version for embedded devices – extremely lightweight, supports distributed applications, multiple address spaces

11

MappingMappingfrom C2SADEL to UMLfrom C2SADEL to UMLGoal:Goal: Couple UML with ADLs to EnableCouple UML with ADLs to Enable

Round-Trip Architecture-Based Software EngineeringRound-Trip Architecture-Based Software Engineering

12

Technologies:Technologies:SAAGESAAGE

• Integrated environment for transforming C2-style architectures into UML

13

SAAGESAAGEScreenshotScreenshot

14

Technologies: Technologies: UML/AnalyzerUML/Analyzer

15

Technologies:Technologies:AAAAAA

16

CollaborationCollaboration

• UCI: C2 – component/connector based style• UCI: ArchStudio – dynamic architecture

manipulation• UCI/CU: Ménage – versioned architectural

artifacts• CU: Software Dock – distributed resource

configuraion and deployment• Under exploration

• Columbia/WPI (Kaiser/Heineman)• ISI (Neches)• Teknowledge (Balzer/Wile)

17

• Gauges to measure different aspects of new component versions

• Measuring functional suitability of COTS components to an architecture

• Ensuring consistency among heterogeneous semantic models of a component

• Measuring shared properties of heterogeneous connectors

•Reliable upgrading of software components (without losing the functionality of the old version)•Assessing suitability of COTS components to the given system•Identifying mismatches before the system is built and deployed will save both time and effort in the long run•Properties of connectors influence the properties of large, distributed systems

• (1,2,3) Gauges to measure the functional suitability of a partially modeled component to an architecture

• (4) Gauges for determining design- and integration-time development risks based on the non-functional properties of interacting components

• (5) Gauges to measure the consistency between heterogeneous semantic models of a component

• (6,7,8) Gauges to measure different aspects of new component versions

• (9,10,11,12) Gauges for measuring shared properties of heterogeneous connectors

USC gauges New Ideas

Impact Schedule

6/01 12/01 6/02

1,2 ,6 ,9 ,10 5,7 ,11 3,4 ,8 ,12

userrequest

Impact Schedule

Comp2

Comp1

Comp3

Conn1Conn1 notify

Arch1Arch1

GaugeGaugeViewerViewer

spawnrequest