dynamic assembly, assessment, assurance, and adaptation via heterogeneous software connectors

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,

Upload: hoai

Post on 02-Feb-2016

62 views

Category:

Documents


0 download

DESCRIPTION

Dynamic Assembly, Assessment, Assurance, and Adaptation via Heterogeneous Software Connectors. Nenad Medvidovic with Marija Rakic and Barry Boehm University of Southern California Santa Fe, September 12, 2000. Overview. ADL-based architectural modeling – C2SADEL - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Dynamic Assembly, Assessment, Assurance, and Adaptation via Heterogeneous Software Connectors

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

Page 2: Dynamic Assembly, Assessment, Assurance, and Adaptation via Heterogeneous Software Connectors

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

Page 3: Dynamic Assembly, Assessment, Assurance, and Adaptation via Heterogeneous Software Connectors

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

Page 4: Dynamic Assembly, Assessment, Assurance, and Adaptation via Heterogeneous Software Connectors

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)

Page 5: Dynamic Assembly, Assessment, Assurance, and Adaptation via Heterogeneous Software Connectors

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

Page 6: Dynamic Assembly, Assessment, Assurance, and Adaptation via Heterogeneous Software Connectors

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

Page 7: Dynamic Assembly, Assessment, Assurance, and Adaptation via Heterogeneous Software Connectors

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?

Page 8: Dynamic Assembly, Assessment, Assurance, and Adaptation via Heterogeneous Software Connectors

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

Page 9: Dynamic Assembly, Assessment, Assurance, and Adaptation via Heterogeneous Software Connectors

9

Page 10: Dynamic Assembly, Assessment, Assurance, and Adaptation via Heterogeneous Software Connectors

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

Page 11: Dynamic Assembly, Assessment, Assurance, and Adaptation via Heterogeneous Software Connectors

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

Page 12: Dynamic Assembly, Assessment, Assurance, and Adaptation via Heterogeneous Software Connectors

12

Technologies:Technologies:SAAGESAAGE

• Integrated environment for transforming C2-style architectures into UML

Page 13: Dynamic Assembly, Assessment, Assurance, and Adaptation via Heterogeneous Software Connectors

13

SAAGESAAGEScreenshotScreenshot

Page 14: Dynamic Assembly, Assessment, Assurance, and Adaptation via Heterogeneous Software Connectors

14

Technologies: Technologies: UML/AnalyzerUML/Analyzer

Page 15: Dynamic Assembly, Assessment, Assurance, and Adaptation via Heterogeneous Software Connectors

15

Technologies:Technologies:AAAAAA

Page 16: Dynamic Assembly, Assessment, Assurance, and Adaptation via Heterogeneous Software Connectors

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)

Page 17: Dynamic Assembly, Assessment, Assurance, and Adaptation via Heterogeneous Software Connectors

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