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
Top Related