Posted by & filed under Announcements.

Structure101 has several great tools for analyzing and refactoring your code base, and they have just finished adding the ability to import Understand projects into their tools. You should definitely check it out.

As an extra incentive, they are offering a free license to the first 3 Understand users who demo one of their tools and send an exported image such as the one below of any part of their code or an Open Source project. Just send it to and tell them Kevin sent you ๐Ÿ™‚


To be fair to another great partner, Lattix can also import your Understand projects and is a great tool for organizing and refactoring your code, so give them a look.

Posted by & filed under Documentation.

With build 596 we’ve added support to Understand for Objective-C and Objective-C++, and we would love your feedback on it.ย  This support is added as part of the new strict analyzer, so make sure your project is fully configured to get an accurate parse. Please point Understand at your Objective-C code, and if you run into any problems or questions, shoot us an email –



Posted by & filed under Announcements, Documentation, Tips.


Many users have asked us in the past if Understand could have better support for Templates and Overloaded functions. We are excited to announce that this is now a reality. Our engineers have worked hard to add a completely new C++ parser to Understand, which is available for Beta testing in build 586.

Our current C++ parser was written with the goal of being able to use fuzzy logic to handle incomplete, non-compiling code gracefully and as accurately as possible. It does a great job at that and will continue to be an important part of our toolset. Unfortunately that same feature caused severe difficulties in parsing templates and recognizing overloaded functions.  The new parser is more strict than the old parser and requires a more accurate project definition. If you plan on using it, please follow the instructions from this post to ensure your project is as correct as possible:  Improving Project Accuracy (C/C++)

To access the new parser, just check the new checkbox on the Languages screen when creating a new project or in the Project Configuration dialog.

We welcome and appreciate your feedback and comments on this new parser – please send it to us at

Posted by & filed under Announcements, Documentation, Tips.

Key Bindings can be accessed via Tools->Options->Key Bindings  this page lets you search for key binding, either by name or by the actual keystrokes. This page also has all of the key bindings in one place for easy browsing. There is also a separate page for each Component(Category) of key bindings in the navigation pane.

We hope these options will make life easier for those who rely heavily on keyboard navigation.


Posted by & filed under Announcements.

We are happy to announce we have partnered with Bangalore based Meteonic to better serve our growing customer base in India. Meteonic has years of experience in the static analysis industry and will do an excellent job with Understand.  As always, our goal is to provide you the best software value, and the best customer support you have ever experienced. They join our growing list of localized partners who help us provide faster support to our international customer base.

In India? Give them a ring:

Tel: +91-9980070704, +91-080-40874900

Posted by & filed under Documentation, Tips.

After printing the Class Dependencies Report (Reports->Dependency->Class Dependencies), we see some headers, with relating numbers that might be confusing as to what exactly they mean. The Dependency Browser can be very useful in seeing the actual dependencies and what they relate to, so I am going to use the Java sample project (getopt) that comes with Understand, the csv file, and the Dependency Browser, to explain the dependencies shown. 
The Dependency Browser shows the Class: GetoptDemo on the left side, and it depends on Getopt and LongOpt (shown on the right of the Dependency Browser, and also in the ‘To Class’ column of the csv file).  In Getopt there are 13 References, and LongOpt there are 12 References.  Both of which are shown in the References column and on the right side of the Dependency Browser.


Read more »

Posted by & filed under Announcements, Documentation.

python-logo[1]Understand now fully supports Python access to its underlying database! The new Python API allows you to write your own scripts that can create custom reports, generate your own metrics and in general make Understand deliver exactly what you want it to.

Complete instructions for setting up and using the API are here:

Getting Started with the Python API

Happy Scripting!

Posted by & filed under Announcements.

Build 571 contains a completely re-written version of โ€˜undโ€™, the command line interface for Understand.

The commands have been standardized and the tool should be much easier to use. Because of the extensive changes, this new version is not backwards compatible with older versions of und. The old und will still ship and has been renamed ‘undlegacy’ – current users will need to change the name of the binary for scripts to continue to work.

In general the syntax for running commands are similar to Subversion and should be much more intuitive than previous versions.

The new version also includes a cool new interactive mode that lets you specify a database and then continually run commands in it, similar to MySQL.

The help documentation has been flushed out extensively and should be much more useful – just run und help for a complete overview of how to use this great new tool.