solidsx: a visual analysis tool for software maintenance
TRANSCRIPT
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