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.


Posted by & filed under Announcements, Documentation.

Improve Parse With Understand 2.6 Build 560 we’ve added a powerful new tool for creating C/C++ projects. The Parse Improvement Tool helps you quickly find missing include paths for your project which will lead to more accurate parsing and project information. Previously Understand relied on you knowing exactly where the include files were and specifying the path. Now there is a tool to help you find those missing files.

Read more »

Posted by & filed under Announcements.

With this weekend’s release of Understand 2.6 Build 551, we are pleased to announce support for the COBOL language.  We’d love your feedback on it, and if you have some sample code you would like us to look at, we’d love to see it.

Grab it at


Posted by & filed under Announcements, Release.

With this week’s Build 529, we’ve also incremented the major release version of Understand to 2.6.  The changes released in 2.6 represent over a year or so of development, and we felt the new features big enough to warrant a version bump.

New in Understand 2.6 are:

  • 64 bit Linux installation kit. This is a native kit, and does not require 32 bit compatibility libraries.
  • UML Diagram. Class diagrams are now available for the Project and individual classes.image
  • Treemaps. A new way to visualize metrics.image
  • Codecheck. Implement coding standards and easily browse results.image

For more information on these new features. Click below to see the details.

Read more »

Posted by & filed under Tips.

As of build 523, the .udb extension on Windows is associated with Understand and when a .udb file is double clicked it will open the Understand Project. Some users have asked for similar functionality with code files. In the past if you setup Understand to open a code file, by default it would open a new instance of Understand. As of build 525 it will open up in the existing instance of Understand instead of a new one. Keep reading for instructions on registering Understand to open code files.

Read more »

Posted by & filed under Announcements, Documentation.

If you’ve been looking for a way to visualize your high level code layout and intra-project dependencies, this is it. Watch this short video to get a taste of how useful these graphs are.

Posted by & filed under Announcements.

Dr. A. Gunes Koru and Dr. Khaled El Emam’s latest paper in IEEE Software, titled “The Theory of Relative Dependency: Higher Coupling Concentration in Smaller Modules”, turns conventional thoughts on where to test upside down by showing that smaller modules, not larger or more complex modules, can provide more effective testing payback in terms of defects eliminated:


Recent studies have repeatedly found that smaller modules are proportionally more defect-prone. In this article, the authors formulate and test a hypothesis stating that smaller modules are proportionally more coupled, given that dependencies caused by coupling have been consistently associated with defect-proneness. Strong evidence supports this hypothesis. Furthermore, refactoring exacerbates this effect. On the basis of this study’s highly consistent results, the authors state the empirically based theory of relative dependency. That is, in large-scale software systems, smaller modules will be proportionally more dependent compared to larger ones. These findings have two implications for practice. First, we now have an empirically supported mechanism explaining the observations that defect concentration is higher in smaller modules. Practitioners can use this mechanism as evidence while seeking resources and support to revise or amend their organizations’ quality assurance and quality control practices. Second, particularly for the projects that refactor extensively, such as those using agile methods, focusing defect detection activities on smaller modules will increase their efficiency and effectiveness even more.

They used Understand to generate the C++ measurements of many large open source projects.  We donate licenses of Understand to worthy research projects frequently. We’ve e-mailed many times with Dr. Koru to support his efforts and are pleased his work was accepted by IEEE.

The team extensively used the DIT (Depth Inheritance Tree) and CBO (Coupling Between Objects) that Understand provides.

We’ve noted a few ideas for product enhancements from reading their article.

Posted by & filed under Announcements, Release.


This weekend we released Understand 2.5 (build 507).  Its main changes include:

  • Instant Search – a new feature which permits instant searching in even the largest bodies of code. Indexing starts after parsing ends. It operates in the background without holding up any other activities. When complete the search box in the upper right instantly answers your queries.
  • Dependency Graphs –  these replace our old dependency graphs with new layout, saving, and cool clustering, save, undo, and redo options. They use a much updated layout engine, which we will roll into our other graphs and use to create new ones in the coming months.
  • Simplified LicensingUnderstand 2.5 includes all languages and all features. The only licensing difference, in terms of price, is the use of floating or specific developer licenses.  Understand 2.5 does use a new license – your old one will not run it permanently. Instead, it will operate for 30 days, giving you time to request a replacement license if you are under maintenance. This is done directly from Understand or via our website.
  • Pricing –  we have removed all levels and language variants. Understand 2.5 has it all. This will be our path going forward with new features as well.  The new price is a little higher and the only differentiation is if you need a Single Developer or Floating License.   If you are under maintenance you can update to Understand 2.5 without any cost. Nor will the higher price affect your maintenance going forward. It will remain 18% of your purchase price annually.
  • TrackBack Removed – this will be missed by many users, but we needed to focus on core analysis capabilities.
    Take heart, the engineer who wrote much of it will be taking it open source very soon. Look for an announcement here. To be notified by e-mail send a request to
  • Menu Revamping – menus were moved about and standardized to be more in common with most applications. Additionally, edit menu items are now contextual with editor and graph operations. As an application ages, menus become complex and suffer from bloat. We wanted to simplify and reduce clutter.
  • License Manager GUI with Improved Diagnostics – our old license manager does not need to be updated. If it is updated, or for new installations, a new License Manager GUI simplifies operation. Additionally, the server and clients have many more diagnostics embedded to diagnose any licensing manager problems.
  • And many hundreds of bug fixes and minor improvements.

We know change can make winners and losers. We’ve tried to make every user a winner with Understand 2.5. If we failed for you, let us know how, and we will try to sort it out and make you as happy as we can.