Gain insights and improve your understanding of software
The growing complexity of connected IoT devices, and the fact that most of these devices contain a combination of legacy, 3rd-party, and new code, make it more difficult for teams to develop, augment, and maintain software. Furthermore, it's common to be asked to update an existing application, only to find yourself lacking critical insights about its system design and potential vulnerabilities, wishing there was an easy way to get an aerial view of the whole system.
CodeSonar's award-winning software visualization engine provides you with a quick way to do just that. Visualization allows you to look at code and quickly learn how it's organized and how it works. Visualization doesn't just look at a single piece of software – it shows how the different components in a software system work together – for both source and binary code.
CodeSonar allows teams to explore and see all 3 crucial aspects of a software system - showing you each subsystem, interfaces, control flow, and potential taint data sources.
Understand Your Code
View multiple metrics at once to gain a high-level understanding of your code. Visualize whole systems, including source and binaries, to get a full picture.
Large code bases (over 10 million lines of code) present both technical and cognitive challenges, which CodeSonar Visualization handles from the ground up. Details are progressively revealed as you zoom, eliminating visual clutter while preserving connectivity information. Zoom, pan, expand, collapse, and work yourself through the elements of code you're interested in.
CodeSonar lets you visualize the data you want to see in the layout you want to see it in. Choose from multiple layout options, explore the way you want (top-down, bottom-up, outward from a specific point, or anything in between), and visualize custom data relevant to your project.
Explore Bug Warnings
Easily determine which paths are susceptible to a bug by exploring warnings found by CodeSonar's static analysis engine.
Visualize Taint Analysis
Visualize notoriously hard-to-find tainted data pathways as an overlay on the code or superimposed on a graphical visualization of the program. Explore call graphs to determine taint sources and propogations of tainted data.
CodeSonar Visualization gets your team coding more quickly, saving valuable and limited development time.
GrammaTech Static Code Analysis
CodeSonar´s world-leading static analysis engine provides defect detection as well as sophisticated visualization functionality. The visualization capability can be used as a stand-alone tool to comprehend the relationship between different elements of the code base, or in conjunction with CodeSonar´s vulnerability reporting to examine the contexts associated with specific warnings.
High Performance and Scalability
The visualization tool is able to handle large code bases with more than 10 millions lines of code. Usually projects in this size are difficult to manage, because they present both technical and cognitive challenges.
Figure 1. The visualization helps 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 is displayed in a dedicated panel.
- Zoom, pan, expand, collapse, and more, even as program sizes grow into the millions of lines of code.
- Layered data presentation:
A zoom function allows to show details and abstract your code. The "link bundling" prevents visual clutter of individual links in high-level views while preserving connectivity information.
- Display only the elements you are interested in:
To examine dedicated focus areas you can choose arbitary portions of the program. It is also possible to hide links and nodes that are not currently relevant.
FlexibilityCodeSonar visualize the data, in the layout you want to see it in.
Figure 2. The shown layout arranges the call graph with callers to the left of their callees. Here the user examines one of the possible call paths to a function associated with 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 to the selected call sequence.
- Multiple layout options:
Cluster, radial, flow, and more.
- Free navigation options in the chosen layout:
Top-down, bottom-up, outward from a specified point, or anything in between.
- Visualize custom data:
Apply the visualization infrastructure to other kinds of data. Nutzer können die Visualisierungs-Infrastruktur ohne weiteres auf andere Datenarten anwenden.
InteractivityFurther interactive features enhance the navigation through the visualized structure. Die Navigation durch die angezeigten Strukturen wird mittels weiterer interaktiver Features verbessert.
Figure 3. Visualization layouts and source code are closely coupled. When a node is selected in the visualization panel, the source code panel automatically updates to display the corresponding location in the relevant file.
- Search capability:
Find program components by name, add selected search results to the current view and zoom in on individual results.
The automatic update of the displayed source listing and summary information matches selections in the visualization panel.
Annotate any node in the visualization and share annotations with other users.
Use the visualization for multiple users thanks to CodeSonar´s hub-based architecture.