Custom Graphs and Reports

Plugins are special Perl Scripts that interact directly with Understand, they come in two flavors, Graphs and Interactive Reports. They can reference the entire Project, or a specific entity, depending on what the author intended. They can be as simple or complex as your imagination. There are API Tutorials that walk through creating Custom Graphs and creating Interactive Reports. If you haven’t already, we suggest you start there. More details on the Perl API Getting Started with the Perl API.

Be aware that often generating graphs for large projects can be very resource intensive, and in some cases the system can be non-responsive for a long period of time while the graphs are generated.

To install a plugin, simply drag the .upl file into the Understand GUI, or you can manually place it in one of the following locations:

Windows – e.g. C:\Program Files\SciTools\conf\plugin\User\IReport
Mac – e.g. /Users/username/Library/Application Support/SciTools/plugin/IReport
Linux – e.g. /home/username/.config/SciTools/plugin/IReport


Download these graphs by right clicking and selecting “Save As”. After installation project level graphs can be run by selecting Graphs->Project Graphs -> [Plugin Name]. Entity Specific graphs can be run by selecting the entity and then Graphs -> Graphs for [Entity Name] -> [Plugin Name].

  • Graph Template: This graph provides a template and documentation for writing your own graph plugin. For more sample graphs download

  • Project Invocation: This graph creates the call trees for all functions/methods in the project. It is very large, looks like spaghetti, and can be very slow. Use at your own risk.

  • Flowchart: This is a version of the Function/Method Control flow graph that uses the Perl API

Interactive Reports

Download these reports by right clicking and selecting “Save As”. After installation project level reports can be run by selecting Reports->Project Interactive Reports -> [Plugin Name]. Entity Specific reports can be run by right clicking on the entity and selecting Interactive Reports -> [Plugin Name].

  • IReport Template: A small script that shows how to exercise all of the IReport functionality. A very useful starting place for making your own reports.
  • High Complexity Report: Gives a list of the most complex functions in your project.
  • Change Impact Report: See what impact changing a particular entity will have on the codebase.
  • Variable Initialization: Reports where variables in a function are initialized.
  • Struct Report: Show structures and where they are used.
  • Artistic Style: Works with the open source project astyle to reformat and beautify your code. More details about using the plugin here: Tip – Beautify your code
  • Duplicate Code Finder: Find lines of code that have been duplicated across your code base.
  • Batch Graph Generator: Automates generating different Understand graphs. More details here.
  • Cloned Functions: Identify functions that are similar or identical.