Visualizing Software Architecture with Off-The-Shelf
Transcript of Visualizing Software Architecture with Off-The-Shelf
Visualizing Software
Architecture with Off-The-Shelf Components
Jie Ren, Richard TaylorInstitute for Software ResearchUniversity of California, Irvine
OutlineOverviewBackgroundIntegrate off-the-shelf componentsVisualize static structureVisualize dynamic executionRelated workConclusion
OverviewMotivation:– 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, xADLC2 Architecture Style– Components, connectors– Interface: top, bottom– Events: request, notification
xADL 2.0 Architecture Description Language– Instance– Structure and Type– Configuration Management Support
Background: ArchStudioxArchADT
Visio ArchEdit
File Manager/Invoker
ADT Tier
Convenience Tier
No-UI Tools Tier
UI Tools Tier
Management Tier
UI-based tools and UIs forupper 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
customizabilityGraphviz (from AT&T Research)– the appearance of the resulting graph
drawings – tool usability: speed, scalability
Integrating ComponentsIntegrate 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 EditorEnhance Visio to edit architectural constituentsFunctionalities:– 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 notationVisualizing architecture descriptionSupporting complex architecture
Visual NotationsTemplate, Stencil, and Master Meta masters for component type, connector type, and link typeOne master for each typeCustomization of masters
Visualize Architecture Description
Use Graphviz to layout constituents of an architectureVisio reads the result and positions the components and connectors
Notion of A->B
Handling of direction: order of appearanceDifferent shapes for components and connectorsHandling of link: use Visio’s built-in link
Architecture C oncepts to be Visua lized
Visua lized In B ox-And-L ine-like Description
Visua lized In xADL -like Description
C omponents B ox B ox C onnectors L ine B ox (different type) L inks (Implic it) L ine Input to Graphviz C omponent->
C omponent C omponent-> C onnector; C onnector-> C omponent
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
Visualization SummaryGeneral purpose graphical editorVisualize architecture descriptions, using architect’s graphical notationsGroup, sub-architecture, browseAnimation of execution
Related WorkVisualization 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