TCAT/Java, Ver. 3.2
© Copyright 1999-2006 by Software Research, Inc.
These Release Notes describe changes and additions to
TCAT/Java, ver. 3.2.
Download either of two versions of TCAT/Java:
DEMO version, which does not require a license key.
EVAL version, which requires a
This release includes these new features:
- Applet Coverage from eValid Browser.
With eValid, ver. 3.x C1 coverage data can be obtained from
instrumented Java Applets.
- New GUI.
This release includes a completely rebuilt user interface
that simplifies user activities.
- Workspace Model.
This version uses a workspace model, somewhat similar to MS Visual Studio,
to maintain your projects.
Each project contains a set of files that you wish
to instrument or compile into the test build.
- Settings Simplified.
Customizing instrumentor and compiler settings has been made simpler.
And, instrumentor and compiler settings can now be retained for each project.
- Mouse Access to Functionality.
Most of the product functionality are accessible with left and right mouse
clicks to any of the objects in the project workspace.
- File Management Simplified.
It is now easier to manage source files.
For example, you can now easily
add new files to instrument in the current project,
remove files, or
selectively instrument/compile source files.
APG Feature Added
The current releases of TCAT C/C++ Ver. 3.2 and TCAT/Java Ver. 3.2 include the
All Paths Generator (APG).
APG's aim is to give C-C++ and Java programmers instant information about the
relative structural complexity of individual functions and modules/objects.
The new APG feature is accessed from buttons on the
TCAT C/C++ or TCAT/Java Digraph toolbar.
The data generated always relates to the current function or module and
gives the following information:
- Total number of segments (edges).
- Total number of nodes (fixed internal states).
- The cyclomatic complexity of the object.
- The total number of 1-trip paths in the program.
- The shortest and longest paths in the program.
- The highest level of iteration in the program.
- The number of basis paths (those with no iteration).
- The number of iterative paths based on the depth of repetition.
In addition, the APG outputs include a complete enumeration of
all of the equivalence classes of program flow, up to a repetition
count within the looping structure.
Studies have shown a high correlation between the APG-generated total path
count and the discovery rate of errors for that particular module.
Click here for more
information on APG.
DEMO Version Characteristics
The DEMO version does not require a separate license key; it has a key that
is valid for a period up to 10 days [it is refreshed regularly].
The DEMO version has these restrictions:
- Only the first 5 modules [functions] in any build are processed.
- Coverage reports apply only to the modules that are processed.
- Digraph diagrams are available only on modules that are processed.
Three complete examples, Fib, MetalWorks 1.3, and SwingSet 1.2.2, are included to fully illustrate product operation.
Runtime Buffering Options
We supply versions of jrun.class that are buffered with various buffer
lengths. You have to copy the correct jrun[?].class file into your copy
of jrun.class to get the right effect; the default version is jrun.class = jrun1.class.
The supplied versions buffer at the level of 1, 10, 100, 1000, 10,000, 100,000 and infinite buffering.
Buffering is accomplished based on the total number of hits made of segments.
Selecting the Correct Version of the TCAT/Java Runtime.
The various versions of runtime that are available are named as follows:
| Hits per Buffer || Class Name
| 1 || jrun1.class
| 10 || jrun10.class
| 100 || jrun100.class
| 1000 || jrun1000.class
| 10,000 || jrun10000.class
| 100,000 || jrun100000.class
| Infinite || jruninf.class
These jrun classes are installed into the $SR/program directory,
where $SR is your TCAT/Java installed directory.
Limitations and Restrictions
TCAT/Java will process virtually any compatible Java program without difficulty.
However, there are some restrictions that users should be aware of.
From Prior Versions
- The current Java Development Kit (JDK)
must be installed to use the TCAT/Java instrumentor
The instrumentor calls the javac command
to convert submitted Java files *.java into the corresponding
instrumented class files *.class.
- Enter ijava -TCAT-help
from the command line to see the command line options available
from this version of the TCAT/Java for Windows instrumentor.
- TCAT/Java for Windows supports Java 1.02. and Java 1.1 and Java 1.2 (SWING/JFC).
- S0 and S1 (module entry and module call-pair) instrumentation are not supported.
- The instrumented Java code must be executed as either a standalone application
(i.e. java myapp.class) or in the appletviewer.
Execution in the Java Virtual Machine of a web browser is available through eValid.
- When executing the instrumented code in the appletviewer the class file of
the applet and the TCAT/Java runtime classes must be in a directory that
is listed in the current CLASSPATH.
- The file "mdf.pro", generated during instrumentation, must be in the same
directory as the instrumented Java class file.
When using nested method calls as a condition (i.e. one method
being passed as a parameter into another method that eventually
returns a boolean value) it is necessary to enclose the whole condition
The example below is taken from the demo/jfc/Swingset example:
(file: ExampleFileFilter.java, Line 145:
This link http://www.soft.com/Support/ReleaseNotes/tcatJ32readme.html describes how to setup and use TCAT/Java. This document also contains step-by-step instructions to instrument Sun's Metalworks 1.3, an example included in TCAT/Java.