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 � 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 ADT Tier components providing more "convenient" APIs to xArchADT Convenience Tier ...... Analysis, Simulation, and other tools without user interfaces. No-UI Tools Tier ...... UI-based tools and UIs for Visio ArchEdit UI Tools Tier upper layers tools. File Manager/Invoker Management Tier
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 Architecture Visua lized In Box- Visua lized In Concepts to be And-Line-like xADL-like Visualized Description Description Components Box Box Connectors Line Box (different type) Links (Implicit) Line Input to Graphviz Component-> Component-> Component Connector; Connector-> Component � Handling of direction: order of appearance � Different shapes for components and connectors � Handling of link: use Visio’s built-in link
AWACS Structure <componentType id="MAINRDMX_TYPE"> � AWACS </componentType> ...... – 40+ component <connectorType id="CONNECTOR_TYPE_1"> </connectorType> types <component id="MAINRDMX1"> <type href="#MAINRDMX_TYPE"/> <interface id=”MAINRDMX1_I_AOCPCAU1”/> – 120+ components </component> <connector id="Connector_02"> – 200+ connectors <type href="#CONNECTOR_TYPE_1"/> <interface id=”Interface_B_02”/> </connector> – 400+ links <link id="Link_MAINRDMX1_02"> <point> – 10000+ lines of <anchorOnInterface href="#MAINRDMX1_I_AOCPCAU1"/> </point> xADL code <point> <anchorOnInterface href="#Interface_B_02"> </point> </link> ......
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, architecture analysis, architecture evolution
Recommend
More recommend