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.upl (3.6 KB) : This graph provides a template and documentation for writing your own graph plugin. For more sample graphs download

  • invocation.upl (4.3 KB) : 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.upl (16.5 KB) : 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.upl (6.6 KB) : A small script that shows how to exercise all of the IReport functionality. A very useful starting place for making your own reports.
  • highcomplexity.upl (2.8 KB) : Gives a list of the most complex functions in your project.
  • change_impact.upl (3.3 KB) : See what impact changing a particular entity will have on the codebase.
  • var_init.upl (971 Bytes) : Reports where variables in a function are initialized.
  • struct_report.upl (2.2 KB) : Show structures and where they are used.
  • astyle.upl (11.7 KB) : 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.upl (10.8 KB) : Find lines of code that have been duplicated across your code base.
  • batch_graphs.upl (9.9 KB) : Automates generating different Understand graphs. More details here.
  • cloned_functions.upl (6.9 KB) : Identify functions that are similar or identical.
  • _delta.upl (44.7 KB) : Identify various difference between two versions of a project.