Blog

Archive for the ‘Documentation’ Category

CodeCheck Validation

Monday, January 30th, 2012

Some customers have asked us to provide test files for validating the output of CodeCheck feature. For example, Avionics teams using DO-178B can use it for Tool Qualification.  The attached file includes a test suite for each of the CodeCheck Checks, as well as a script that uses our Perl API to automatically run each of the Checks on the corresponding test suite. Before running the script, modify the paths at the beginning to point to the appropriate location, then simply run it from the command line with uperl codecheck_validation.pl

As always, let us know if you run into any questions or problems – support@scitools.com

Codecheck Validation Tests: DOWNLOAD

Objective-C Support

Tuesday, January 17th, 2012

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 and your Objective-C code, and if you run into any problems or questions, shoot us an email – support@scitools.com

 

image

C++ Template and Overload Support (Beta)

Wednesday, October 12th, 2011

screenshot.15

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 support@scitools.com

New Key Binding Options

Wednesday, October 12th, 2011

We’ve made a few changes to how keyboard shortcuts are managed with build 586.

Key Bindings can still be accessed via Tools->Options->Key Bindings  but this page now 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. The other change was to add a separate page for each Component(Category) of key bindings in the navigation pane.

While these are relatively small changes, we hope they will make life easier for those who rely heavily on keyboard navigation.

keybindings

Class Dependencies Report

Wednesday, September 14th, 2011

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.

dependenciesReferences

(more…)

New Python API

Monday, August 29th, 2011

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.

Getting Started

The Python API runs on your 3.x installation of Python, you can grab it from here if you need to install it.

Once you have Python installed you need to tell it where the Understand module is. The easiest way to do that is to add/modify the PYTHONPATH environment variable to include the module location, which is SciTools/bin/<System>/python. Also if you did not add Understand to the Path variable during installation, you will need to add the SciTools/bin/<System> directory to PATH.

Finally, to use the API you will need to put ‘import Understand’ in your script.

Documentation

The most up-to-date documentation will ship with Understand and can be accessed from the Python Console with:
   import understand
  help (understand)
A more readable version can be obtained with the python ‘pydoc’ command, which can generate an html version of the documentation. We also try to keep a current version of the Python documentation on the Manuals page.

Sample Scripts

The documentation includes some samples. More detailed example scripts are shipped with Understand in the SciTools/scripts/python folder.

Happy Scripting!

Clustered Call Graphs

Monday, August 29th, 2011

The new interactive Clustered Call Graphs show the function call graph, organized by file. There are several variants of this graph: Call, Call-by, Butterfly and Internal Call. They can also be accessed from the function, class, file or architecture level. These graphs can all be accessed from the Graphical View right click menu for the entity.

Cluster Call Butterfly Graph


Butterfly

Cluster Callby Graph

image

Cluster Call Graph

image

Cluster Call Internal Graph

image

(more…)

Macro Definitions – Improved!

Monday, August 29th, 2011

imageThere is a new option for identifying and defining missing macros. The new tool shows what macros are not defined as well as how and where they are referenced. This makes it easy to see which missing Macro definitions would have the largest impact on your project.

(more…)

Parse Improvement Tool

Tuesday, April 5th, 2011

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.

(more…)

Line and Statement Counting Metrics

Monday, March 22nd, 2010

Understand has many different metrics, including a large number that focus on counting the number of statements and lines of code, including Lines of Code (LOC or SLOC), Lines with Comments (CLOC), empty lines (BLOC), Number of Statements, Number of Executable Statements, etc.

The short C/C++ example below shows how each line and statement contribute to these metrics in Understand. You can view the larger version here.