solidsx: a visual analysis tool for software maintenance

1
SolidSX: A Visual Analysis Tool for Software Maintenance The Situation The Tool Overview Try it yourself! - software maintenance: over 80% of the total software lifecycle costs - software reuse: proven to reduce costs in the industry with 20-40% - software understanding: over 40% of maintenance and development costs Challenges - software understanding: over 40% of maintenance and development costs - even top programmers cannot master over 50K lines of code at once - personnel cost, software size increase, targeted time-to-market decreases Proposal - use visual analytics to enhance understanding of the software - structure (code quality metrics, dependencies, structure) - behavior (dynamic execution, test coverage, performance metrics) - process (evolution of software itself, team interactions) - simple to use, scalable, integrated tools Input code - C, C++ - Java - .NET/C#/VB SolidSX Visual Analysis Tool Code analyzers - parsers - disassemblers - metric engines Visualizations - edge bundles - treemaps - table lenses - annotated text - SQLite database - XML text files Persistent storage Fact database - compound graphs - node/edge attributes - selections - linked views: enhanced hierarchical edge bundles, treemaps, table lenses, code text - analysis: integrated easy to use static analyzers for C, C++, Java, .NET, C#, VB - metrics: code size, complexity, coupling, cohesion, fan-in, fan-out, and many more - scalability: thousands of files, millions of lines of code: real-time visualization - integration: Visual Studio (full), Eclipse (in progress) - customization: via user-written Python scripts (metrics, visualizations, interaction, batch jobs) Features Treemap view Radial view Tree browser Table lens Applications and Extensions - free trial and academic licenses - open API and SQLite database: easy to integrate with your own analyses or tools - get Java/.NET/C#/C/C++ static analysis for free (integrated with the tool) - download, install, start using in under 5 minutes (Windows) - get our open-source C/C++ anayzer (http://www.cs.rug.nl/svcg/SoftVis/Gcc) Visual Studio integration: analyze and code - first truly scalable code dependency viewer Clone detection: discover code duplicates - full integration with own clone detector Mozilla Firefox: scalability testing - 1.5 M lines, 100K nodes, 800K edges Image-based Bundles: simplified analysis - see our EuroVis’10 paper for details Sample scenario - table lens: sort by metrics, identify problematic components - treemap: correlate structure and metrics (using attribute-sorted strip layout) - radial view: explore relations of problematic components with rest of system - text view: see the actual source code details of the identified components References 1. Image-Based Edge Bundles: Simplified Visualization of Large Graphs (A. Telea, O. Ersoy, Comp. Graphics Forum, vol. 29, no. 3, 2010) 2. Case Study: Visual Analytics in Software Product Assessments (L. Voinea, A. Telea, Proc. IEEE VISSOFT, 2009) 3. Extraction and Visualization of Call Dependencies for Large C/C++ Code Bases: A Comparative Study (H. Hoogendorp, O. Ersoy, D. Reniers, A. Telea, Proc. IEEE VISSOFT 2009) www.solidsourceit.com www.cs.rug.nl/svcg Dennie Reniers SolidSource BV Eindhoven, the Netherlands Lucian Voinea SolidSource BV Eindhoven, the Netherlands Alexandru Telea University of Groningen the Netherlands

Upload: others

Post on 12-Feb-2022

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SolidSX: A Visual Analysis Tool for Software Maintenance

SolidSX: A Visual Analysis Toolfor Software Maintenance

The Situation The Tool

Overview

Try it yourself!

- software maintenance: over 80% of the total software lifecycle costs- software reuse: proven to reduce costs in the industry with 20-40%

- software understanding: over 40% of maintenance and development costs

Challenges- software understanding: over 40% of maintenance and development costs- even top programmers cannot master over 50K lines of code at once- personnel cost, software size increase, targeted time-to-market decreases

Proposal- use visual analytics to enhance understanding of the software - structure (code quality metrics, dependencies, structure) - behavior (dynamic execution, test coverage, performance metrics) - process (evolution of software itself, team interactions)- simple to use, scalable, integrated tools

Input code- C, C++- Java- .NET/C#/VB

SolidSX Visual Analysis ToolCode analyzers- parsers- disassemblers- metric engines

Visualizations- edge bundles- treemaps- table lenses- annotated text

- SQLite database- XML text files

Persistent storage

Fact database- compound graphs- node/edge attributes- selections

- linked views: enhanced hierarchical edge bundles, treemaps, table lenses, code text- analysis: integrated easy to use static analyzers for C, C++, Java, .NET, C#, VB- metrics: code size, complexity, coupling, cohesion, fan-in, fan-out, and many more- scalability: thousands of files, millions of lines of code: real-time visualization- integration: Visual Studio (full), Eclipse (in progress) - customization: via user-written Python scripts (metrics, visualizations, interaction, batch jobs)

Features

Treemap view

Radial view

Tree browser

Table lens

Applications and Extensions

- free trial and academic licenses- open API and SQLite database: easy to integrate with your own analyses or tools- get Java/.NET/C#/C/C++ static analysis for free (integrated with the tool)- download, install, start using in under 5 minutes (Windows)- get our open-source C/C++ anayzer (http://www.cs.rug.nl/svcg/SoftVis/Gcc)

Visual Studio integration: analyze and code- first truly scalable code dependency viewer

Clone detection: discover code duplicates- full integration with own clone detector

Mozilla Firefox: scalability testing- 1.5 M lines, 100K nodes, 800K edges

Image-based Bundles: simplified analysis- see our EuroVis’10 paper for details

Sample scenario- table lens: sort by metrics, identify problematic components- treemap: correlate structure and metrics (using attribute-sorted strip layout)- radial view: explore relations of problematic components with rest of system- text view: see the actual source code details of the identified components

References1. Image-Based Edge Bundles: Simplified Visualization of Large Graphs (A. Telea, O. Ersoy, Comp. Graphics Forum, vol. 29, no. 3, 2010)2. Case Study: Visual Analytics in Software Product Assessments (L. Voinea, A. Telea, Proc. IEEE VISSOFT, 2009)3. Extraction and Visualization of Call Dependencies for Large C/C++ Code Bases: A Comparative Study (H. Hoogendorp, O. Ersoy, D. Reniers, A. Telea, Proc. IEEE VISSOFT 2009)

www.solidsourceit.comwww.cs.rug.nl/svcg

Dennie ReniersSolidSource BV

Eindhoven, the Netherlands

Lucian VoineaSolidSource BV

Eindhoven, the Netherlands

Alexandru TeleaUniversity of Groningen

the Netherlands