SciTools Understand, the Developers’ “Swiss Army Knife” for maintaining, measuring, and visualising code bases

Quickly interpret large or complex legacy code bases, often with poor documentation.
Visualize complex legacy code, perform impact analysis, and deliver powerful metrics.


Understand your code

Accessed via a streamlined Information Browser, SciTools Understand provides a comprehensive overview of your software in a quick and easy format. Rapid insight into your code base is enabled through a wide range of metrics, customisable reports, graphs, a set of dependency analysis functions and accurate search facilities. Combined with a customisable, fully-featured programming Interface, this is the best programming editor for maintaining and understanding code.

Code Graphs

Generate a range of graphs that can dynamically be renegerated based on graph specific settings, such as nesting level or displaying code, or by expanding/contracting entities.

Control Flow
Calls and/or Called By
UML Sequence

Code Metrics

Context sensitive metrics generated as part of the standard project analysis

Review metrics at the project level or at a granular level by folder, file, or function

Configure Architectures to view metrics for custom code components/modules

Report defined metric boundary violations with CodeCheck

Custom Architectures

Configure custom Architectures that match project structure requirements or by any other requirement. Grouping options can include by development teams, code origin (third party code, OSS, library), security level, or any other focus.

  • Generate graphs highlighting dependicies between nodes including calls, includes, uses
  • View metrics per Architecture node
  • Configure CodeCheck analysis per Architecture node


Highlight coding and syntax violations

Assist in identifying violations of common coding standards

Configure and report boundary violations of metrics

Develop custom checks that can support custom coding guidelines

Bug Hunter

Now available for Understand are a set of advanced static analysis checks for C/C++. The new checks identify complex code problems including memory leaks, access to pointers that have been freed, and use of uninitialized values.

Dangling Pointer
Memory Leak
Stack Address Escape
Uninitialised Value

Division by Zero
Null Pointer Dereference
Undefined Call
Virtual Call

In addition to highlighting where a critical violation may occur, Understand Bug Hunter provides step by step details of the path taken through the code to reach that state.

Control flow version diff
(Added content in green, deleted in red)


Compare entities within a project and display a diff view of the differences

Compare files/folders, review changed, added or removed files and display a diff of changed files

Compare source code revisions, generate diff views of modified entities or graphs displaying the changes between revisions