170 likes | 355 Views
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
E N D
Dynamic Assembly, Assessment, Assurance, and Adaptation via HeterogeneousSoftware Connectors Nenad Medvidovic with Marija Rakic and Barry Boehm University of Southern California Santa Fe, September 12, 2000
Overview • 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
Allow dynamic, automated oruser-initiated gauge placementand architecture visualization. Goal Treat gauges as first-classarchitectural entities that can beinserted at arbitrary locationsand times in an architecture. Method Light-weight, flexible, extensiblearchitecture prototyping and/or implementation infrastructure. Explicit treatment of components,connectors, ports, events... Hierarchical application ofarchitectural concepts on complexcomponents and connectors. notify request Gauge Viewer Technical Basis spawn userrequest Flexible Gauge Placementand Visualization Arch1 Comp1 Conn1 Comp2 Comp3
Comp 1 Comp 2 Conn 1 Comp 3 (PX PZ) (QZ QX) “opX” “opY” (PX PY) (QY QX) Gauges in Action:Detecting Component Mismatch Comp1 provides opY pre: PY post: QY Comp2 provides opZ pre: PZ post: QZ Comp3 requires opX pre: PX post: QX
Gauges in Action:Integrating OTS Components • Gauges to measure functional suitability of a partially modeled component to an architecture • interface match • behavior match • interaction match Partial Architecture OTS Component Library
Gauges in Action:Reliable Upgrade of Components • 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:Ensuring Consistency among Heterogeneous Semantic Models • Component • Static modeling (e.g., invariants and pre-/post-conditions) • Dynamic modeling(e.g., statecharts or CSP)
Gauges in Action:Measuring Shared Properties of Heterogeneous Connectors • Properties of connectors influence the properties of large, distributed systems • Throughput • Load • Security • Reliability • Performance
Technologies:Implementation Infrastructure Lightweight and extensible • 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 • Version for embedded devices – extremely lightweight, supports distributed applications, multiple address spaces
Mappingfrom C2SADEL to UML Goal:Couple UML with ADLs to EnableRound-Trip Architecture-Based Software Engineering
Technologies:SAAGE • Integrated environment for transforming C2-style architectures into UML
Collaboration • 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)
userrequest request spawn Gauge Viewer notify USC gauges New Ideas • 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 Impact Schedule Arch1 Comp1 Conn1 Comp2 Comp3 Schedule Impact • 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