(Build b789) – 29 Jun 2015
- Fix some line annotation weirdness.
- Fix some line annotation issues on file save.
- Fixed line count metrics for lines containing both code and comments in free format.
- Added option to print form feed inline instead of starting a new page.
- Fixed printing issues in files containing control characters.
- Fixed bug where reference information following 'end enum' was sometimes incorrect. Also, added support for Cray Fortran extension where enums can be named.
- Added a key bindings page for graphs.
- Fix issue with Show Inter Child Edges Default not applying to the collapsed start entity/architecture when the graph is first generated.
- Fixed failure to activate some new graph windows when the option to sort tabs alphabetically is enabled.
- Remove progress bars for graphs because of window resizing issues. Instead, show busy cursor when the mouse is over a graph that is still generating.
- Show python class attributes in UML class diagram when showing class details.
- Allow UML Class Diagram to be generated from a Python package.
- Check for binary content before trying to analyze a file.
When using Understand it is possible to get to a point when you have quite a few windows open and want to be able to “browse” through the windows quicker and easier. The Window Selector is the perfect choice for this.
To open the Window Selector, choose ‘View->Window Selector. Notice that it shows several graphs and a number of source files in the list. I can easily click on any of these or use my keyboard to access them, and quickly see the file or graph that I am interested in.
Notice that the list does not show me the Entity Filter, Information Browser, or any of the Understand windows that I may also want to choose from. To change that, simply click on the Show: drop down arrow and select the option that best suits your needs. For me, I like to see ‘All Windows’, which then gives me the view shown below on the right.
There are also options available to be specific about how the items are sorted, how short or long the Filename is, and even a ‘Filter’ field at the bottom of the window.
Hopefully the Window Selector will make browsing your open windows and documents a little easier.
On a side note…there is a simplified version of the Window Selector that can be accessed quickly with the keyboard shortcut ‘Ctrl+Tab’. This temporarily opens a separate window that acts the same as the Window Selector but without all the options. The window closes when a file is selected.
If you find yourself frequently adding boilerplate text, changing the same kind of text, or repeating something over and over again in the editor, macros may be your new best friend. You can record your actions in the editor, and then save them and replay them at whatever location you want. This is much more than copy and paste, you can record arrow key movements, keyboard shortcuts, deleting, actual typed text, and much more. Then you can add keyboard shortcuts to each of those recorded macros. Give it a shot!
We will be releasing Understand 4.0 with build 772. An updated license is required, which is free as long as your maintenance is up-to-date. To check the status of your maintenance or request the updated license, please email us at firstname.lastname@example.org
We like to add new features to Understand as soon as they are finished, that way you don’t have to wait. So, as with our previous releases, Understand 4.0 is a collection of new and existing features. Below is a list of the features that have been added since Understand 3.1 was released, or that will be included in 4.0:
- UML Sequence Diagrams
- Eclipse Plugin
- Refactoring Tools
- Editor Themes
- The Understand Theme is now selected by default if you haven’t modified the styles
- Entities are much more visible in the default theme
- Control Flow Cluster Graphs
- Relationship Graphs
- Cluster Graphs Customization Options
- These options are accessible via the Tools Menu under Options->Graphs->Cluster Graph Styles
- MISRA 2012 Support in Codecheck
- Various metrics added for supported languages
- Java API
- A minimalistic but functional Java API was added while creating the Eclipse plugin
- The documentation is in the install folder under doc\manuals\java
- Java 8 Support
- Entity Locator Overhaul
- Editor Macro Support
- C++11 and C++13 Support
- Visual Studio 2012/2013 C++ and C# project files
- Licensing Changes
- All licenses now show the Maintenance Expiration Date
- Single Developer Licenses are now tied to a specific email address
Your code has tons of important relationships in it and we want to help you find find them. With Understand 4.0 we’ve added several new graphs that let you track the relationship between two specified entities. For example if are only interested in how two functions interact with each other in a call or callby tree you can now see it. Right click on the first entity and select “Graphical Views->Calls Relationship” or Called-By Relationship. You will then be prompted to specify the second entity by clicking on that entity name in any open Understand window. The final graph shows only the call trees between those two entities.
Here is the call tree graph for the function _docall. If I am only interested in the relationship between _docall and the highlighted function “fatal” there is a lot of extra information in my way.
With the new graph I can get the desired information in a much more condensed manner:
There are also options to highlight, aggregate and hide nodes. For instance I can aggregate the functions by file for an even more informative view:
These new relationship graphs are available for calls, includes, overrides and base/derive relationships. What entities will you explore with this?
Build 771 adds the new UML Sequence Diagram graph.
A Sequence Diagram is an interaction diagram that shows how processes operate with one another and what is their order. A sequence diagram shows object interactions arranged in time sequence. It depicts the objects and classes involved in the scenario and the sequence of messages exchanged between the objects needed to carry out the functionality of the scenario.
A sequence diagram shows, as parallel vertical lines (lifelines), different processes or objects that live simultaneously, and, as horizontal arrows, the messages exchanged between them, in the order in which they occur. This allows the specification of simple runtime scenarios in a graphical manner.
In Understand this graph is available for functions and methods that call member methods.
A new version of the control flow graph has been added that allows much more interactivity. You can access this graph by right clicking on a function or method and selecting Graphical Views->Cluster Control Flow. The new graph lets you collapse and expand subsections of the graph by double clicking in the bounding box of that area. You can also hide parts of the graph that you are not interested in.
Here is the same function with the cluster control flow graph on the right, and the regular control flow on the left.
Note how parts of the graph are clustered together, double clicking in that area collapses it:
This extra interactivity gives you the ability to work with much larger graphs while still only focusing on the areas that are important to you
Understand now has a selection of predefined themes that let you quickly change the look and feel of the editor. These themes can be accessed under Tools->Options->Editor->Styles. The Predefined: section at the top of the page lets you select the theme you want, and you can customize the theme to your liking.
Here are what several of the themes look like:
If you like most of a predefined theme but want to “tweak” a few items, make sure to take a look at the options available for each supported language.
For Application Styles, go to Tools->Options->User Interface->Application Styles and select your custom options there. Note that the ‘Use Editor Colors’ button is very useful for quickly matching the Editor Styles to the Application Styles.
Happy Coding and Color Customizing!
We have recently added a great new feature to Understand to make any of your Refactoring needs easier. To change the name of a function, method, class, etc., right click on the entity name and select ‘Refactor->Rename’.
Type in the new name that you want to change it to and either select ‘Apply Changes’ or select ‘Preview Changes’ to see everywhere that the name will be selected.
This ‘Preview’ shows what the file looks like currently and what it will look like with the changes. Notice at the bottom it also shows all the locations where the changes will be made.
There are several other options in this Refactoring Tool including an ‘Extract’ option.
Sometimes a different type of search that provides more information can be a lot more useful than just a simple search.
Take a look at the ‘Entity Locator’, available by going to ‘View->Entity Locator’.
The Entity Locator consists of sortable columns of information. Additional columns can be added by clicking on the plus icon in the top right of the Locator, allowing for a custom view.
Each column also has quite a few options available by clicking the dimple icon or right clicking on the column header. Several options are shown in the image below, including the ability to ‘Freeze Columns’ (similar to the ability in spreadsheet applications).
In the image below, the first two columns are frozen and the other columns can be scrolled horizontally while still seeing the frozen columns.
Let us know if you have any questions and enjoy the Entity Locator.