Visualizing Softw are Architecture w ith Off-The-Shelf Components - - PowerPoint PPT Presentation
Visualizing Softw are Architecture w ith Off-The-Shelf Components - - PowerPoint PPT Presentation
Visualizing Softw are Architecture w ith Off-The-Shelf Components Jie Ren, Richard Taylor Institute for Software Research University of California, Irvine Outline Overview Background Integrate off-the-shelf components
Outline
Overview Background Integrate off-the-shelf components Visualize static structure Visualize dynamic execution Related work Conclusion
Overview
Motivation:
– To facilitate construction of large software – To explore issues in reusing OTS Components
Validation
– Integrating ArchStudio, Visio and Graphviz – AWACS simulator
Contribution
– demonstration of the effectiveness of development with COTS components – exploration of different integration technologies – the software architecture visualization solution
Background: C2, xADL
C2 Architecture Style
– Components, connectors – Interface: top, bottom – Events: request, notification
xADL 2.0 Architecture Description
Language
– Instance – Structure and Type – Configuration Management Support
Background: ArchStudio
xArchADT Visio ArchEdit File Manager/Invoker ADT Tier Convenience Tier No-UI Tools Tier UI Tools Tier Management Tier UI-based tools and UIs for upper layers tools.
components providing more "convenient" APIs to xArchADT Analysis, Simulation, and other tools without user interfaces. ...... ......
Background: Visio and Graphviz
Microsoft Visio
– popularity, support, functionality, and customizability
Graphviz (from AT&T Research)
– the appearance of the resulting graph drawings – tool usability: speed, scalability
Visio for ArchStudio
Integrating Components
Integrate ArchStudio and Visio
– Running ArchStudio within Microsoft JVM – Interoperation with Sun JVM through RMI – Generic COM/Event Bridge
Integrate Visio and Graphviz
– File-based – Native COM interface
Visio as Graphical Editor
Enhance Visio to edit architectural
constituents
Functionalities:
– Create component and connector types – Create/Delete components/connectors – Connect/Disconnect components/connectors – Undo the editing operations – Group/Ungroup components and connectors – Create sub architectures
Visualization of Static Structure
Extensible visual notation Visualizing architecture description Supporting complex architecture
Visual Notations
Template, Stencil, and Master Meta masters for component type,
connector type, and link type
One master for each type Customization of masters
Visualize Architecture Description
Use Graphviz to layout constituents of
an architecture
Visio reads the result and positions the
components and connectors
Notion of A->B
Handling of direction: order of appearance Different shapes for components and connectors Handling of link: use Visio’s built-in link
Architecture Concepts to be Visualized Visua lized In Box- And-Line-like Description Visua lized In xADL-like Description Components Box Box Connectors Line Box (different type) Links (Implicit) Line Input to Graphviz Component-> Component Component-> Connector; Connector-> Component
AWACS Structure
<componentType id="MAINRDMX_TYPE"> </componentType> ...... <connectorType id="CONNECTOR_TYPE_1"> </connectorType> <component id="MAINRDMX1"> <type href="#MAINRDMX_TYPE"/> <interface id=”MAINRDMX1_I_AOCPCAU1”/> </component> <connector id="Connector_02"> <type href="#CONNECTOR_TYPE_1"/> <interface id=”Interface_B_02”/> </connector> <link id="Link_MAINRDMX1_02"> <point> <anchorOnInterface href="#MAINRDMX1_I_AOCPCAU1"/> </point> <point> <anchorOnInterface href="#Interface_B_02"> </point> </link> ......
AWACS
– 40+ component types – 120+ components – 200+ connectors – 400+ links – 10000+ lines of xADL code
AWACS Visualization
Support Complex Architecture
Group Sub
Architecture
Architecture
Browser
Visualize Dynamic Execution
Instantiation Events Listener
Visualization Summary
General purpose graphical editor Visualize architecture descriptions,
using architect’s graphical notations
Group, sub-architecture, browse Animation of execution
Related Work
Visualization in other ADLs
– Developed from scratch – Few support both static and dynamic visualization
Integrating Commercial Products
– Goldman/Balzer: PowerPoint – Coppit/Sullivan: Package Oriented Programming
Other forms of software architecture visualization
– Grundy/Husking: SoftArch – Reverse Engineering Community
Conclusion
Integrating COTS into a visualization
solution
Contribution: demonstration, integration,
solution
Choosing components: open source, easy
customization, business factors
Further work: event filtering/track,