Posted by & filed under Tips.

Have you ever looked at a call tree and wondered “is somefunction()” in there?

B453, which you can download now,  introduces a new “incremental search” feature to the Information Browser that makes answering questions like that a snap.

To use it hit select where you want to start searching from and then hit the Ctrl-F key while in the IB or click on the 2008-07-23 23.46 icon.

That brings up a search box on the bottom of the IB:

2008-07-23 23.48

Read more »

Posted by & filed under Documentation.

Metrics have always been very tightly coupled with software engineering. Love them or hate them, there is usually no avoiding them. In Understand 2.0 we’ve significantly increased our ability to provide useful metrics about your project. 

The metrics capabilities vary depending on what version of Understand you are using: Understand Engineer provides high level project metrics, Understand Pro lets you explore and export project and entity level metrics, and Understand Analyst lets you do all that, create custom graphs, and even compare how metrics are changing over time (trend analysis). 

All of this Metrics capability is accessed through the new Metrics menu.



image image image

Read more »

Posted by & filed under Announcements, Release.

At the beginning of July we released Understand 2.0. It represented the culmination of about 3 years of work where we maintained and improved Understand 1.4 while simultenously developing a brand new version of Understand.

Our goal for 2.0 was to make a tool that is a “must have” if you are maintaining code (and who isn’t??). 

Read more »

Posted by & filed under Announcements.

Concurrent to Understand 2.0’s movement from beta to release we are also announcing some product structure changes.

2.0 adds a lot of features, but not all those features are of interest to all engineers.  Or if of interest, then some do not need the same level of functionality.  And not all features require the same support (one of our major expenses).  And, frankly, some of those features are worth more to some customers than others (I’m not going to hide that we do hope to make some more money).

To make sure that customers can buy tools closer to their exact needs Understand 2.0 is offered in four different levels. The “lowest”, Understand Engineer offers what 1.4 offered.  So the segmentation mainly involves new features only. The four levels are:

  1. Understand 2.0 Non-Commercial
    This version has all features of the highest Understand level, but only supports C/C++/Java and C#.
    We are still finalizing license agreements for this version, but it is intended for use by students and open source developers.
    If you wish to be notified when it is available, just e-mail  We can supply temp codes to permit use until the final shrinkwrap agreement for this version is finished.  The eventual license will be an annual license.
  2. Understand 2.0 Engineer
    This version supports C/C++/Java and C#.  Understand Engineer provides similar capabilities to Understand 1.4 including the excellent navigation, graphics, maintenance editor, reporting and project metrics. 2.0 adds combined language analysis, basic change analysis, single scenario maintenance estimations and metrics charts/graphs.  Our standard for this version was that it be better than 1.4 but cost the same. One key difference, Understand Engineer will not be offered with a floating license. For that, get Pro or Analyst.
  3. Understand 2.0 Pro
    This version comes in two language variants – L1 (C/C++/Java/FORTRAN) and L2 (L1+Ada, PL/M, Jovial). It provides all the capabilities of Understand Engineer, but offers advanced snapshot based change analysis, a full set of metrics, broader metrics charting capabilities, and multi-scenario maintenance estimation.  We envision Understand Pro as what a team would typically outfit an engineer with if they are trying to create a rigourous programming environment.
  4. Understand 2.0 Analyst
    This version also comes in L1 and L2 language variants. It provides Pro capabilities, plus advanced multi-snapshot change analysis and change metrics, detailed multi-time metrics charting, and multi-scenario/multi-plan maintenance estimation. We’ve also placed API development in Analyst, although scripts or API programs built with Analyst can be used by Pro or Engineer versions of Understand 2.0 .  We envision Analyst as what an IVV, QA, Test team members would use, and also as something a team operating in a rigorous environment would have a license or two available as team members rolled through IVV/metrics analysis/change analysis roles.

THe exact differences can best be seen by running 2.0 and alternating Run Levels via the Help menu.  Or you can check out the feature comparison matrix on our revised website.

What about 1.4 licenses?   Understand for C++, Java, FORTRAN map to Understand 2.0 Pro with their respective languages and API usage enabled.  Understand for Ada, JOVIAL and PL/M licenses map to Understand 2.0 Analyst licenses with their respective languages enabled.  Combined language analysis is avialable but will consume a legacy license for each language. No new license is needed, your existing ones will work.   If you want to have your licenses upgraded to L1 or L2 language packs then our folks can help with quotations for that.

What about TrackBack?   TrackBack is a cool product that helps us every day. We are fully committed to TrackBack and plan near term improvements for it.  But it will be part of Understand 2.0 going forward.  We just think it is something that every engineer should have.  It will be in each Understand 2.0 kit.  Customers who have TrackBack but not Understand will be sent a download link for updating separate from Understand.

I’ll caveat that the features between the versions can change, and probably will, once we get feedback from customers and experience selling this way.

Posted by & filed under Announcements.

If you are using Understand 2.0 I encourage you to update with each release. It is a young version and has a number of bug fixes and improvements introduced each week.

In particular, if you are a Unix user you will want to at least update to B448 released today. It has a fix in it for the problem of lost application settings (fonts, font sizes, window locations, etc…) on systems that have daily or more frequent clearing of their /tmp directories.


Ken N.

Posted by & filed under Tips.

Probably the most welcome improvement in this weeks B447 build is the release of significant improvements in our auto-completion facility in the Understand 2.0 editor.

The improvements are:

  • It exists.
    It sort of did before but you had to hit ESC and it was just offering up a dumb lexical scan of the open file.
  • It is fast.
    It quickly offers options as you type. If you find that irritating you can turn of the auto part in the Editor options dialog.
  • It has key bindings. If you turn off automatic completion then get a completion offering via ESC and CTRL-SPACE.
  • It is smarter. The completion list is based on the parse scope to that point plus what you have typed. It is aware of members and data fields (as appropriate to the language you are editing). 2008-06-12 21.35

    2008-06-12 21.36

You, the user, as well as our own engineering staff have been asking for a good auto-completion for a long time. And with this release we feel it finally matches or exceeds the capabilities of some of the other popular IDEs.  It won’t stop here. We have plans to improve it in a variety of ways, including the use of code templates so you can tab between parameters and variables needed by the code brought in by the completion.

Your feedback and suggestions are welcome.


Posted by & filed under Uncategorized.

I’m writing this post using data and charts directly made by the the new “Metrics” menu of Understand 2.0.  It provides metrics browsing and charts directly inside of Understand 2.0.    How does this differ from our upcoming Measure tool?  Primarily in scope and flexibility. With Measure you can custom design charts and comparisons and automatically report them, plus a few zillion other things.  But the new “Metrics” menu provides quite a bit of useful information with pretty much zero learning curve.


I made a snapshot. This told me this basic information about B447 versus B446:

2008-06-11 23.40

1,719 classes in B447, while 1487 were in B446.  We’ve been busy (-:

Here is an Understand 2.0 generated chart of the line volume information for B447:


Read more »

Posted by & filed under Tips.

Beginning with Build 445 we released a new find/replace option in Understand that

can be found under Search->Replace in Files

The “find” part of “find and replace”  works exactly like “Find in Files”.

2008-05-13 13.12

Read more »

Posted by & filed under Tips.

I keep a general watch on what is changing so I know where features are schedule wise, what engineers are working on, and also so I can spot check for appropriate solutions to some of our thornier problems (no bubble sorts please!).   I usually do this by doing a compare of my current source tree against a snapshot of the last public build. I then organize it by staff.

Here is the typical two pane diff view:

2008-05-02 22.11

Trouble is, I’m traveling and my laptop has a small screen. Notice how the rightpane text is cut off?  Also, when I look at diffs I’m usually just looking at the right side. Fortunately, Understand 2.0 has a way to show just the right side, see all the text and make efficient use of my smaller screen. Just hit the 2008-05-02 22.13 button and you will see only the right side.

Read more »

Posted by & filed under Tips.

One common task when maintaining software is looking at routines that are close copies of one another. Close… but not quite the same.  You might do this in refactoring or just in looking at a section of a routine that is doing what you want, and is working right, while what you wrote isn’t.

Understand 2.0 adds two new features in to directly address this dilemma:

  • Comparing entities – pick any two entities and textually compare them
  • Comparing arbritray text – paste in any text, compare them

Read more »