The Understand 2.0 you have just downloaded comes in four editions. They all use the same binary, only the license code affects their feature set.  The editions are:

  1. Understand 2.0 Engineer
  2. Understand 2.0 Pro
  3. Understand 2.0 Analyst
  4. Understand 2.0 Non-Commercial

So which is right for you?

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??). 

(Build b460) - 25 Aug 2008

ARCHITECT

  • Delay architecture resolve to improve initial project startup
  • If an architecture has been modified in the architecture builder, ensure prompt to save/discard is shown on project or application close. Also added shortcut keys.
  • Fix for crash when moving an architecture out of it's parent and then removing the parent before saving.
  • Fixed bug where moving an entity to a new architecture wouldn't remove it from the old architecture.

(Build b459) - 15 Aug 2008

ARCHITECT

  • Fixed crash when removing multiple architectures or entities.

CHANGE

  • Shorten compare context menu text

In Using Understand with an external editor - SlickEdit I explained how to hook up Understand to run with SlickEdit. As a follow up, here are the commands to setup the same Understand menu inside of EMACS, Visual Studio, and Vi. Do let me know if I made any mistakes here since I'm not an expert on these editors.

(Build b458) - 11 Aug 2008

ARCHITECT

  • Fix to enabling auto architectures
  • Fix crash in Architect Manager when selecting the Language auto arch and there is only one language loaded.
  • fix bug in Architecture where some reference archs weren't being saved correctly.

We've been working hard to improve Understand and have made a lot of new builds recently (4 this last week). I finally caught up with the build notes, so if you want some light reading, here you are:

I’ve covered making Snapshots from the Current Database and by checking out source to an alternate location in earlier posts.  Now I’m going to tell you the EASY way to do it…. Just use TrackBack.

2008-07-30 19.42

Assuming you have had TrackBack B443 or later monitoring your source trees, you can recreate the state of any monitored directory at any time. This includes file modification, file existance, file renaming, everything.

User tools are a convenient way to quickly access external tools or other applications. In an earlier post, Ken shared his SVN User Tools, which provide quick access to version control commands right inside the application.  If you use a different version control system, or want to launch another application, you'll need to know how to make your own user tools.

The Understand 2.0 editor’s “Browse Mode” makes all entities in the editor behave like links in a web browser. With a single click you can visit and update the Information Browser.

In both 1.4 and 2.0 the usual way of exploring/learning about code in the editor is via the Right Click context menu. For instance, if I want to learn about allocstrAppend() I right click on it:

2008-07-28 21.35

The Understand 2.0GUI has command line options that may prove useful to you automation and personal efficiency reasons.

To see the options, just start Understand with “-help”:

%understand -help

2008-07-24 22.56

2008-07-24 13.31

I’ve just realized that while I’ve written a bunch of posts referring to snapshots and using snapshots, I’ve never explained what they are and how they can fit into a software engineer’s workflow. Hence the “missing piece of the puzzle” clip art above.

Q: What are snapshots?

A: A snapshot is a binary store included within an Understand database. A database can hold be any number of snapshots. Each contains three things:

  1. a complete Understand database containing analysis (parse) information
  2. all source, including any include files, needed to rebuild that analysis
  3. certain cached information used to speed up working with them (metrics and file information)

Q: What are snapshots used for?

A: They are used throughout Understand 2.0 to provide details and metrics about what has changed in source code between two points of time.  The “Change”, “Metrics”, and “Estimate” menus all use snapshots intensively.

“Change” will tell you what has changed at the semantic level. For instance, what classes or types changed, versus just what files/lines changed.

“Metrics” can tell you the number of semantic changes – classes removed, changed, added, so forth.

Find recent content on the main index or look in the archives to find all content.