Software Visualization

Software Architecture Visualization

A next-generation software visualization system that scales to millions of lines of code.

View our demo for a quick look at our award-winning software visualization system.

The growing complexity of large software systems makes it more difficult for developers to test and analyze the interrelationships between elements of source code. CodeSonar's visualization features are designed to optimize visual inspection and analysis of software, offering real-time, fluid transitions between views at different levels of abstraction.

High Performance and Scalability

A key element of the visualization tool is its ability to handle large code bases (over 10 million lines of code). Data sets of this size present both technical and cognitive challenges, which have been addressed from the ground up.

  • Smooth, real-time navigation:
    Zoom, pan, expand, collapse, and more, even as program sizes grow into the millions of lines of code.
  • Layered data presentation:
    Detail is progressively revealed as you zoom in, and abstracted as you zoom out. A 'link bundling' option effectively eliminates the visual clutter of individual links in high-level views while preserving connectivity information.
  • Display only the elements you are interested in:
    Choose arbitrary portions of the program to examine in dedicated Focus areas; hide links and nodes that are not currently relevant.

Visualizations can be laid out to reflect the structure imposed by the file system. Tapered edges indicate calls from functions contained in one node to functions contained in another, with tapering indicating the direction of the call. Information about selected elements — in this case a C source file — is displayed in a dedicated panel. (Click for larger version).

Screenshot: Hierarchies and Relationships

Flexible Layouts

CodeSonar® lets you visualize the data you want to see in the layout you want to see it in.

  • Multiple layout options:
    Choose from a cluster, radio, flow, and others.
  • Explore the way you want:
    Top-down, bottom-up, outward from a specific point, or anything in between.
  • Visualize custom data:
    Users can readily apply the visualization infrastructure to other kinds of data.
  • Here the user has selected a layout that arranges the call graph with callers to the left of their callees, and is examining one of the possible call paths to a function associated with a CodeSonar warning report. The Info panel contains a link to side-by-side source listings, which in turn are highlighted to show the functions and call sites making up the selected call sequence. (Click for larger version)

    Screenshot: Paths Through the Call Graph

    Interactive Navigation Features

    Navigation through visualized structures is enhanced by further interactive features.

    • Close-coupling:
      The displayed source listing and summary information automatically update to match selections in the visualization panel.
    • Search capabilities:
      Find program components by name, add selected search results to the current view, and zoom in on individual results.
    • Annotations:
      Annotate any node in the visualization, and share annotations with other users.
    • Sharing:
      CodeSonar's hub-based architecture seamlessly supports multiple visualization users.

    Visualization layouts and source code are closely coupled. When a node (in this case representing a function) is selected in the visualization panel, the source code panel automatically updates to display the corresponding location in the relevant file. (Click for larger version)

    Screenshot: Close Coupling Between Layouts and Source Code