Imagix 4D
                              Version 9.1
                             Release Notes


#####################################################################
#####################################################################

Release 9.1

Version 9.1 of Imagix 4D extends the tool's analysis of source code
and related data sources, with enhanced support for C++ 14 / 17,
Java 8, Microsoft Visual Studio 2017 and CTC++ test coverage data.
Variable and task flow checks have improved with faster performance
and new options.  Metrics and reports have been added for measuring
and analyzing stack size.  The calculation and display of additional
metrics has been extended at the architecture and flow chart level.
Document generation and printing have been enhanced, especially for
exporting graphs to Visio.  And various gui improvements have been
added, including zooming of graphic displays.  9.1.1 includes
usability enhancements and minor bug fixes in a number of areas,
especially loading of project data, Delta Analysis, and a number of
information displays, especially the Calculation Tree.  9.1.1 also
includes a number of new plugins, and further updates the C/C++ source
analyzer and related compiler configuration files, especially for g++.

==========================
Data Collection
==========================

Support for C++ 17 (and some C++ 14) extensions has been added to
the C/C++ source analyzer.  Likewise, support for Java 8 try statement
syntax has been extended in the Java source analyzer.  These changes
in Imagix 4D's source analyzers will be automatically applied the next
time you analyze your source code.

The compiler configuration file for code compiled with Microsoft Visual
Studio has been updated to support Visual Studio 2017.  Likewise, the
.inc files for gcc-based compilers have also been updated.  To apply
these changes, you'll need to modify the updated files for your
environment, as always.

Several other compiler configuration files have been updated, the
fujitsu_cross.inc has been updated to cypress_cross.inc, and .inc files
have been added for Microsoft WinCE and Microchip XC16.

The gui process for defining a project's data sources through the
Project > Data Sources... dialog has been modified, to provide more
user control over when the data sources are analyzed.  This makes it
easier to define multiple data sources and to delay the actual analysis
of the source files until the definition is complete.

==========================
Testwell CTC++ Support
==========================

Integration with CTC++, a dynamic test coverage tool, has been added.
CTC++ XML Results files are now available as a profile data source,
once a data source have been defined for C and/or C++ source code.

In the integration, the test coverage results are automatically
correlated with the source code they refer to.  Coverage is displayed
in the metrics displays and the new Function and Call Coverage report,
and is incorporated into the flow chart, file editor and diff tool
displays.

==========================
Flow Check Reports
==========================

The variable and task flow check reports have been enhanced, resulting
in faster performance.  The Variable Flow Between Tasks report has a
new option to show all variable uses, even when variable use only occurs
within a single task.  For variable use that is protected under some
critical regions but not others, that use is now indicated as P rather
than P/U.

==========================
Software Metrics
==========================

Measurement and analysis of stack size has been added.  The memory
requirements for each function are calculated - both the local memory
needed by each function, and the aggregate memory required along its
most memory intensive path of function calls.  Reports are available
for identifying those aggregate paths, and for understanding the
memory consumption by variable.  This is all added through a plugin,
/user/plugins/StackSize.tcl.  The plugin can be modified to
specify data type sizes and data packing for your embedded targets.

In the Subsystem Architecture diagrams, if the architecture is edited
by moving symbols or subsystems to different subsystems, the metrics
are immediately recalculated so that the impact of the change can be
studied from a quantitative perspective.  In addition, the ability to
define custom subsystem metrics has been added.

In the Flow Charts displays, cyclomatic complexity, depth and several
other metrics are now available at the decision node, so that the
interior complexity of that node's inner loops can be understood.

==========================
Document Generation / Printing
==========================

The .vdx graph output for Visio export has been redesigned, so that the
resulting graphs can be more easily edited once they've been imported
into Visio.

For generating ASCII or RTF documentation, a new alternative is available,
enabling new sections to be create for each 100 symbols.  This results in
individual documents that are shorter, making them more manageable.

==========================
GUI
==========================

The ability to zoom out and back in on the various graphic displays
has been added.  This complements the perspective provided through the
Mapper tab.

==========================
Licensing
==========================

For floating licenses, the Imagix license manager has been extended to
support multiple editions from a single license manager.  If multiple
editions are available in an environment, users will be able to select
which edition they prefer at the time they start a session.

To utilize this feature, the 9.1 license manager needs to be installed,
and the Imagix 4D clients need to be running version 9.1 as well.  For
older clients that aren't able to select an edition, the 9.1 license
manager will assign the highest edition currently available.


#####################################################################
#####################################################################

Release 9.0

Version 9.0 of Imagix 4D adds a major new function, the Review Tool.
The Review Tool supports guided reviews of your software, checking
for conformance with checklists that you have selected, creating
documentation and an audit trail of your review results.

Among the checklists available with 9.0 are a set of rules from the
Common Weakness Enumeration standard, enabling you to review your
source code for issues related to software security.

The Review Tool automates many of the steps in the review process.
Some of these apply Imagix 4D's various Variable Flow Checks and Task
Flow Checks.  As part of the 9.0 release, these checks have been
enhanced to run faster and handle larger project sizes.

9.0.1 adds checklists for the 2.9 and 2.10 versions of CWE.  It also
enables the Review Tool to be used under the demo license, updates
the msvc_win.inc compiler configuration file for Visual Studio 2015,
and refines the contents of Delta Analysis reports.  9.0.2 adds
Imagix-Delta Analysis checklist supporting systematic reviews of
changes identified Delta Analysis.  It also adds support for Visual
Studio 2017 and contains some fixes/refinements to the Variable
Dependencies report.

==========================
Review Tool
==========================

There are a number of initiatives, such as CWE, MISRA, CERT-C and ISO
xxx, to improve the quality, reliability and security of software.
These initiatives each specify a set of rules, proscribing the aspects
of the structure, implementation or behavior of software, providing a
checklist against which to evaluate source code for conformance with
the standard.

The Review Tool supports a guided review of your software with respect
to such checklists. With the tool, you're able to methodically identify
those specific portions of your software that pertain to the checks you
have elected to review. Imagix 4D's general analysis and visualization
functionality help you to assess whether those specific portions are a
concern or violation.

Using the Review Tool in a team environment, concerns and assessments
can be recorded by reviewers and then commented on by the software’s
authors.  An audit trail for documentation or submission is naturally
created as part of the process.

In addition to guiding you through this process, the tool automates
much of the identification and assessment activity, as well as the
documentation.

==========================
CWE Checklist
==========================

The Common Weakness Enumeration (CWE) standard is increasingly being
used to review software, in order to improve its security, quality and
reliability.

Some CWE rules can be fully tested automatically via static analyzers.
At the other extreme are rules that don't apply to C, C++ or Java code.

In the middle are a large number of rules that are most efficiently
tested by static analysis augmented by source code analysis and
inspection.  When used with the Review Tool, the CWE checklist targets
these rules to extend testing and documenting compliance with CWE.

==========================
Data Flow Analysis
==========================

The Calculation Tree and the Variable Dependencies report both display
data flow and dependencies among variables.  In the 9.0 version, these
have both been enhanced by adding a direction option.  Previously, only
upstream (or fan-in) dependencies could be analyzed and displayed.  An
option now allows downstream (or fan-out) dependencies to be displayed.
Further description of the program flow has been added to the displays.

In addition, performance has been improved for both, as part of the
overall speed and size improvements to the data flow analysis.  As a
result, the Calculation Tree is more responsive, and can handle larger
projects.

==========================
Reports
==========================

The performance of all of the Variable Flow Check and Task Flow Checks
reports has been improved.  In 9.0, the reports run significantly
faster and can handle larger projects.

In addition, the Uninitialized Variables Read report has been extended,
adding filters to include or exclude local variables, heap locations
and referenced variables of library functions.  There is also a new
option to show an explanation for each result.

==========================
Project Size
==========================

For fast, high level analysis of C and C++ software, the 9.0 version
has added the ability to specify less comprehensive projects.  When
enabled through the File > Options... > Data Collection > Project
Location and Resources dialog, you're able to specify the level of
detail a project contains when you create a new project.  The light
and minimal project types reduce the information collected about your
software and speed the processing of the source code.

As noted above, in 9.0 the data flow check reports run significantly
faster and can handle larger projects.

==========================
Delta Analysis
==========================

Delta Analysis has been expanded to analyze projects generated with
the -trkmem option.

==========================
Subsystem Architecture
==========================

A wizard for copying subsystems enhances the editing functionality
within Subsystem Architecture (SA) diagrams.  A text format option
has been added for printing SA diagrams.


#####################################################################
#####################################################################

Release 8.1

Version 8.1 of Imagix 4D expands support for Microsoft Visual C++
code, by adding analysis of type libraries identified through #import
directives and .NET CLR components accessed through the #using
directive.  Document generation has been expanded by the addition of
Subsystem Architecture information into documents.  Imagix 4D's unique
Delta Analysis has been enhanced by user interface refinements.

8.1.1 extends Uninitialized Variables Read's analysis of data flow
through standard library functions (see ../imagix/user/cc_lib/libc.inc),
and improves performance of Mismatched Critical Regions.  8.1.2 updates
Japanese language support. 8.1.3 includes a number of minor enhancements
and corrections to data collection (including 4 new .inc files), flow
check and include optimization reports, document generation and batch
mode commands (including support for generating projects through through
the command line). 8.1.4 adds support for Java 1.8 extensions, updates
the MSVC import settings to support 2015, enhances Delta Analysis
change identification and reporting, and includes a number of minor
enhancements and corrections to data collection, and graph and data
displays.

==========================
Data Collection
==========================

Under Microsoft Visual C++, COM type definitions can reside in binary
type libraries. These definitions are made available to the source code
through the Microsoft-specific preprocessor directive #import.

Likewise, under the Common Language Runtime (CLR) component of the
.NET framework, Microsoft Visual C++ provides an alternative approach
for supporting the use of symbols defined in other executables.  The
#using preprocessor directive supports referencing symbols defined in
binary CLR .dll, .exe, .netmodule and .obj files.

Previously, support for symbols defined in these binary files required
the use of unique, pre-generated .inc files for each of the binaries.
Under Windows, Imagix 4D can now extract the symbol definitions
directly from the binary files, and automatically generate .inc files
for use in other environments, such as Linux or UNIX.

See the "Support of Microsoft Visual C++" section of the online user
guide for more information.

==========================
Document Generation
==========================

Automated document generation now includes the ability to document
Subsystem Architectures.  A section is created in the document for
each architecture that is defined at the time the document is generated.  

As with all other aspects of document generation, the default contents
are defined through the /user/user_doc.txt file.  Fine-grained
control is possible through the .dgn DocGen sheets.  The sample sheet
/user/doc_gen/sample.dg_ has been extended with the settings
for the new architecture sections.

For document generation via batch commands, new commands have been
added to define and delete architectures as part of the batch process.
See /user/user_cmd.txt for details.

==========================
Delta Analysis
==========================

Several aspects of the Delta Analysis interface have been improved,
including symbol name and name searches, the appearance of the Delta
Analysis reports, and even the process of opening a Delta revision.

==========================
Reports
==========================

The Uninitialized Variables Read report now marks the use of variables
passed by pointer or reference to unknown functions, and indicates the
assumption that those variables are read.

Where multiple critical regions are involved, an option has been added
to the Variables Set in Multiple Tasks to omit identifying a variable
use as unprotected if it is protected by at least one critical region.


#####################################################################
#####################################################################

Release 8.0

Version 8.0 of Imagix 4D adds a major new feature, Delta Analysis.  It
enables the differences of software revisions to be analyzed at a
structural rather than merely at a source code level.

8.0 also significantly extends the functionality of the tool for
architectural analysis, in particular adding a Design Structure Matrix
(DSM) view.

These two enhancements work together, so that the 8.0 version of Imagix
4D supports analysis of software changes or variants at an architectural
level.

In addition, version 8.0 includes a number of enhancements in the areas
of usability, performance, precision and customization.

8.0.1 fixes a problem with the Grep Search tool in the Windows version,
adds some MSVC 2013 support, and addresses a potential infinite loop
that can occur in certain calculations that are project-data dependent.
8.0.2 enhances the Variable Dependencies report, also adding symbol and
string searches to all of the reports, improves layout of the Subsystem
Analysis diagram and DSM, and corrects several minor issues.  8.0.3 adds
info into the Mismatched Critical Regions report, corrects a potential
issue with the Windows license server, and contains a few other minor
enhancements and fixes.  8.0.4 adds info into the Variable Flow Between
Tasks report and contains a few other minor enhancements and fixes.
8.0.5 contains minor fixes and enhancements to a number of items,
including the JNI Calls report, the Diff Tool, and the installation
process.

==========================
Delta Analysis
==========================

Delta Analysis adds the ability to compare different versions of
software at a structural level.  At any point in a project, you're
able to create a revision.  The revision stores information about the
functions and variables as they then exist in the software - both their
control structure and their file and class context.  You can later
compare any stored revision to the current structure of the software.
As an alternative, you can do the comparison between the current
structure of your project and the current structure of any other
project that you have created.

Changes are shown in reports and graphs.  In views ranging from
Subsystem Architecture diagrams down to Function Call Trees, you're
able to identify symbols and relationships that have changed between
the revision and the current project.

Delta Analysis also contains an integrated Diff Tool.  While the
overall analysis is done at the structural level and is very much
more than just a file diff, there will be times when you want to drill
down and examine the source code differences that have resulted in the
changes.

The common application for Delta Analysis is in tracking the impact
of changes in source code development and maintenance.  Comparing the
structure of newer versions of the software with older versions can
be used to confirm that the latest changes to the source code are
indeed desired.  Some of the reports can be used as a basis for QA
activities; their systematic listing of structural changes can help
focus testing activities.

However, Delta Analysis can be used anywhere that there are multiple
variants of the same basic code.  Two branches originating from the
same base can be compared, as can a single set of code with different
combinations of conditional compile flags, or even the same base of
source code using header files from different compilers.  To apply
Delta Analysis, you would create a project for the one variant,
create a revision, modify the project settings to capture the second
variant, and then run the Delta Analysis.  Or you could just create a
separate project for each variant, and run the Delta Analysis between
the projects.

==========================
DSM and Architecture Analysis
==========================

In 8.0, the architecture views become more central to Imagix 4D.
The new Design Structure Matrix (DSM) view complements the existing
Subsystem Architecture (SA) diagram.  DSMs focus on the dependencies
between subsystems rather than the hierarchy of subsystems.  The
same architecture definition used by the SA diagrams are used by DSMs.
The insights gained from DSM analysis can be used for modifying the
architecture in an SA diagram, and the results will be reflected in
both architecture representations.

In examining dependencies in a DSM, the full drill-down functionality
of Imagix 4D is available.  For example, by right-clicking on a high
level dependency displayed in a cell of a DSM, you're able to display
the underlying function calls and variable uses that make up that
dependency.

The SA and DSM graphical views and analysis are supplemented by nine
new architecture metrics, including Subsystem Stability, Average Usage,
Abstractness and Class Fan-Out, as defined by Robert C. Martin.

When used together with Delta Analysis, DSMs (and SA diagrams) provide
high level perspective on the differences between the revision and the
current project.

==========================
Data Collection
==========================

Path settings entered in the Project > Data Source dialog can now
include environment variables.  Setup of projects containing multiple
data sources is simplified by the ability to delay analyzing source
code until all of the data sources have been specified.

Support for the latest versions of compilers, in particular Microsoft
Visual Studio C/C++ and the gnu gcc compilers, has been added to the
source analyzer executables and to the compiler configuration files
(../imagix/user/cc_cfg/xxx.inc).

The process for automatically generating a compiler configuration file
for a specific gcc-based compiler, through the ../imagix/bin/imagix-gnu
process, has been updated to work with less user interaction under
Windows.

==========================
Data Content
==========================

Under Windows, directory and file names are now displayed using the same
capitalization found in the Windows Explorer.  The option to disable
case sensitivity for files names has been eliminated from the Project >
Data Sources dialog.

Enum literals are now included with the data variables, making it easier
to identify where they are read.

==========================
Graph Windows
==========================

An additional view, File Imports, is available for exploring import
relationships among Java files.

Analysis and visualization is improved.  More of the graphs use curved
lines to improve readability.  For the views where Display > Indicate
Metric Data settings indicated metrics values in comparison to user
specified thresholds, a new setting enables the values to be represented
relative to the other symbols in the graph.

==========================
Reports
==========================

Two reports have been added to the data flow check reports.

Use of Variables indicates direct use of global, static and member
variables for each function in the project.  To indicate whether a
report makes use of Imagix 4D's data flow engine, the function reports
have been separated into Function Cross Reference and Function Flow
Checks.

Variable Dependencies shows calculations that effect the value of each
global, static and local variable, summarizing information that is
available on a variable-specific basis through the Calculation Tree
tool.

Detailed tracking of pointer references is reflected in all the flow
check reports, which also provide added information about auto task
creation and critical region definitions. 

In addition, the Variables Set in Multiple Tasks has been expanded.
New analysis options provide many alternatives for targeting
specific situations of variable sharing.

A new option enables the Useless Assignments to explain why each
reported assignment is useless.

The File Summary and Class Summary reports have been phased out, as
the information they contain has been

==========================
Metrics
==========================

New metrics have been added.  These nine new subsystem architecture
metrics, including Subsystem Stability, Average Usage, Abstractness
and Class Fan-Out, based on the definitions by Robert C. Martin.

For Delta Analysis, metrics have been added to analyze the extent of
differences between the current version of a project and the revision
that has been loaded.  These metrics are calculated at the subsystem
level, are revision specific, and are therefore only available through
the Display > Indicate Metric Data dialog in a Delta Subsystem Architecture
Graph window.

Display of metrics in other Graph windows has been enhanced.  For the
views where Display > Indicate Metric Data settings indicated metrics
values in comparison to user specified thresholds, a new setting enables
the values to be represented relative to the other symbols in the graph.

==========================
Performance Improvements
==========================

Performance improvements span gui and command line operations.
Benchmarks include the time for drawing a large graph (reduced up to
30%), for calculating metrics (up to 50%), and for generating the
flow check reports (up to 30%).

==========================
User Customization
==========================

The ability to extend Imagix 4D through custom plugins has been
enhanced and simplified.  Metrics, reports, checks, data imports
and data exports can now be defined in separate individual script
files and easily installed.  A description of the API, along with a
series of examples, can be found in the ../imagix/user/plugins
directory.

==========================
Printing
==========================

Support for export of Visio-compatible .vdx files has been added for
some of the graphic displays where it was not previously available,
and the content/layout has been improved.  Support for export to
Visio via .csv files (for Visio 2002 and earlier) has been phased
out.

==========================
System Administration
==========================

For Windows versions, temporary assignment of a license to a specific
machine in preparation for it being taken off-line (as described at
www.imagix.com/user_guide/free-floating-license.html) now includes
the ability to specify the check period, up to 45 days.


#####################################################################
#####################################################################

Release 7.4

Version 7.4 of Imagix 4D enhances the layouts used in many of the
Graph windows to more quickly and clearly communicate the dependency
information being displayed.  In the Flow Chart windows, new layout
alternatives are available.  The release also revises the appearance of
many of the list windows and other less graphic displays.  Tracking of
calls from Java code into C++ code through the Java Native Interface
(JNI) has been added.  7.4.1 adds support for gcov coverage data,
updates gprof support to not require an external C++ demangler, expands
support for CodePages in Japanese environments, and includes a few
other minor enhancements along with some bug corrections.  7.4.2 adds
new controls for manually manipulating the graphs.  7.4.3 adds support
for node-locked licenses under Linux.  7.4.4 adds support for C++11
and addresses some licensing issues.  7.4.5 expands tracking of calls
by function pointer.  7.4.6 corrects a client-server licensing bug
that can occur under Windows.  7.4.7 adds support for a Win64 version
of Imagix 4D, see the Platform Support note below.  7.4.8 adds context
sensitive information screens at power-up and when loading code, adds
a pair of source checks for array initialization, and contains a large
number of minor enhancements and bug fixes for items ranging from
analyzing grep results to printing in Visio format to Windows project
locations.


==========================
Graph Windows
==========================

The layout of symbols and their dependencies in the Graph windows has
been enhanced.  Available for most of the views, the new layouts
improve readability and understandability by displaying related symbols
more closely together and by minimizing crossed lines.  Previous layouts
are still available through the Other selection in the menu button at
the bottom of the Graph windows.

Supporting the Subsystem Architecture views, new editing actions appear
in the context sensitive menus.  These include the ability to cut, copy
and paste subsystems, and to add functions and variables from displays
outside of the Graph window itself.

==========================
Calculation Tree Windows
==========================

The enhanced layouts used in the Graph windows are also applied to the
Variable Dependencies view of the Calculation Tree windows.

==========================
Flow Chart Windows
==========================

Two layout alternatives have been added for flow charts. A Structure
view presents the control flow of a function using the same structured
layout as the compact view, but includes the actual source code snippets
and/or function call lists to provide more detail.  A Logic view
emphasizes the program logic underlying the control flow.

==========================
Java Support
==========================

For combined Java and C++ projects, release 7.4.0 adds resolution for
Java Native Interface (JNI) calls made from the Java code into C++ code.

==========================
Reports
==========================

The Out of Step (Z) Variables report has been enhanced.  As an option,
the report identifies design patterns for what might be considered
acceptable use of out of step variables.

==========================
UI Changes
==========================

The drag and drop functionality for manually editing the layout of
graphic displays by moving graph symbols has been re-assigned to the
left mouse button.

==========================
Platform Support
==========================

64 bit versions of Imagix 4D have been added for both Windows and
Linux, taking advantage of the larger memory address space available
in order to support extremely large projects.  The limitation of the
64 bit versions is that they use more memory even for smaller projects.
Therefore, unless you are working with extremely large projects, we
recommend that you use the 32 bit version of Imagix 4D.

For Windows, there are separate installers for the 32 and 64 bit
versions, so you'll need to decide which version to install.

For Linux, a single Linux installation of Imagix 4D supports both 32
and 64 bit systems.  This run as a 64 bit application on those systems
that support it, but you can change that default behavior by modifying
the ../imagix/bin/imagix script.


#####################################################################
#####################################################################

Release 7.3

Version 7.3 of Imagix 4D adds a new visual approach for understanding
and optimizing the overall architecture of a software system.  The
release also includes analysis of Java method calls made through the
reflection API.  Among the user interface enhancements are the
addition of a mapper tab for tracking the current location within a
large source file or graph, and a revised layout of the various
information displays.  7.3.1 integrates metrics into the subsystem
architecture view, adds an option for controlling the scope of the
Unused Variables report, and corrects a couple of minor bugs. 7.3.2
corrects a potential problem in document generation, along with a
couple of minor bugs.

==========================
Subsystem Architecture Views
==========================

A new Subsystem Architecture diagram provides a high / abstract level
view, supporting activities ranging from understanding unfamiliar code
to analyzing subsystem dependencies to improving software structure.
The new diagrams are based on the Subsystem Interface Dependency View,
described by Jeff Garland and Richard Anthony in Large-Scale Software
Architecture, A Practical Guide Using UML.

Diagrams can be generated to represent either the physical (directory >
file > class > function/variable) or logical (namespace/package >
class > function/variable) hierarchy of a software subsystem.  The
resulting views can be studied to understand the as-is hierarchy along
with the interfaces between subsystems as represented by the current
physical or logical boundaries.

The diagrams can also be modified, through drag and drop user interface
actions, to analyze the effect of alternative encapsulation approaches
on improving the maintainability of the software.

NOTE :: In order to generate Subsystem Architecture diagrams for your
software, you'll need to first regenerate the Imagix 4D project data
representing your source code (Project > Regenerate Project Data) in
order to assure complete and accurate diagrams.

==========================
Java Support
==========================

Release 7.3.0 adds an advanced analysis for Java method calls through
the reflection API (java.lang.reflect). The analysis locates all
calls to "invoke()" in the project and then attempts to trace back to
the methods that have been selected as the target for that dynamic
call. It then creates a separate relationship in the Imagix database
from the location where the method was selected (the so-called
requester of the dynamic call). This relationship is called
"DynamicCalls".

To activate this analysis, run the menu Reports>Reflection Analysis.
This establishes the DynamicCalls relationships that you can now
visualize in call graphs. The analysis also produces a report that
lists any locations of invoke where the analysis was not able to
determine the method to was selected.

In addition, two language configuration files have been added to make
it easier to configure Imagix 4D for your environment.

==========================
Reports and Metrics
==========================

Two function metrics have been added - Number of Parameters, and
Number of Return Statements.  These can be displayed in the Function
Metrics tool, as well as the various windows where metrics for specific
functions are displayed.

When exporting variable metrics through a batch command, the default is
now to omit metrics for local variables.  See ../imagix/user/user_cmd.txt
for instructions on including local variables.

Additional controls have been added for specifying which root functions
to apply in automatically generating tasks for the Task Flow Checks.

==========================
UI Changes
==========================

The location and appearance of some of Imagix 4D's query and information
display tabs has been modified to improve information accessability.
These main window changes will be readily apparent to experienced users.
The most significant of these is that the Analyze dialog has been turned
into a permanent main window tab.  An additional tab, Mapper, has been
added to provide context and navigation for graphs that extend beyond
the current graph window.  The Mapper also provides navigation and
context of file editor contents.

In addition, release 7.3.0 includes a Japanese language interface
for Japanese compute environments.


#####################################################################
#####################################################################

Release 7.2

Version 7.2 of Imagix 4D enhances the appearance and functionality of
the Graph windows.

==========================
Graph Windows
==========================

The visualization of symbols and their dependencies in the Graph
windows has been revised.  For most of the views, an additional
display option, 2D Chart, has been added to the existing 2D Graph
and 3D Graph options.  For these same views, a new layout option,
From Selected, is available whenever a single symbol is selected in
a particular graph.

The appearance of selected / highlighted symbols and relationships
has also been modified, so that color coding can be used to identify
the types of selected symbols and relationships.

A second black background color for graphs has been added to support
a range of ambient environments.  The default background color for
graphs has been switched to grey, and is recommended for existing
users as well.


#####################################################################
#####################################################################

Release 7.1

Version 7.1 of Imagix 4D includes a range of enhancements.  A new view,
UML Task Collaboration Diagram, has been added for analyzing how tasks
communicate through shared variables in multi-tasking or multi-threaded
systems.  The Analyze queries have been expanded, especially for the
analysis of classes and groups.  A new approach for loading code into
Imagix 4D has been added, using the contents of a user-generated
makelog containing compiler invocations to populate the required data
source definitions.  Support for Microsoft Visual Studio 2010 projects
has been added, and new user settings allow more precision in specifying
the related Visual Studio environment when loading Visual Studio
projects into Imagix 4D.  A new memory management mechanism supports
flow check reports and metrics for much larger projects.  A re-released
version of 7.1.0 eliminates a false positive warning about wish85.exe
by the Avira virus checker under Windows.  A later re-release under
Windows updates the digital signature certificates.

==========================
Graph Windows
==========================

A UML Task Collaboration Diagram view has been added.  This is based
on the COMET methodology described by Hassan Gomaa.  The view uses the
same task definitions as the Task Flow Check reports, defined through
the Project > Task Definitions... dialog. 

In the UML Class Diagram view, inherited members can now be displayed,
and a new association / relationship has been added to study the
specific class members inherited from one class to another.  Control
of this is through the Display > Set Format... dialog.

==========================
Analyze
==========================

Among the new Analyze queries for classes are several in the Class
Inheritance section of the menu.  The resulting graphs go beyond simple
class-level inheritance, providing insight into the member-level
inheritance and overrides that occur between a class and its base
classes.

==========================
Grouping
==========================

The user interface for defining and invoking groups has been redesigned
to make it more intuitive and more consistent with the rest of the tool.  
The creation, modification and deletion of group definitions has been
moved to a single dialog, available under the Project menu as well as
in individual Graph windows.  Additionally, automatic definition of
groups to represent the members of a file or class is available as
a menu item when right mouse clicking on a file or class, if the
view in the currently active Graph window includes functions.

Controlling whether a specific group is active in a given Graph window
is now handled through the separate Group > Activate Groups... dialog
in each Graph window.

==========================
Data Collection
==========================

A new approach has been added for loading source code into Imagix 4D.
This approach still involves dialogs that specify the C and C++ source
files and their associated -I, -D and -U flags.  But the dialogs can
now be populated automatically by extracting information from a makelog.
If you capture the make-issued commands into a log file when you compile
your source code, this approach is able to process that makelog, isolate
the compiler invocations, and identify the source files and flags passed
to the compiler.  From this, a series of data source dialogs are
completed, one for each group of source files sharing similar flags.

Microsoft Visual Studio 2010 .vcxproj projects can now be processed by
Imagix 4D, either directly as MSVC Project data sources, or indirectly
as MSVC Solution data sources, where the .sln solution files refer to
.vcxproj project files.

More explicit settings for the version and location of the Visual
Studio environment associated with the .vcproj, vcxproj or .sln files
have been added to the Project > Data Sources... dialog.  The version
setting causes some variation of the macro __IMGX_MSVC_NET_VER_xxxx__
to be defined, and therefore the appropriate path to be taken through
the msvc_win.inc compiler configuration file.  The location setting is
used to find appropriate Visual Studio generic property sheets, from
which additional macro definitions are extracted.

NOTE: Once projects have been updated to these more explicit settings,
any regeneration of project data must be done using 7.1.0 and higher
versions of Imagix 4D.  Older versions of Imagix 4D can still be used
for opening and analyzing the projects.

The C/C++ source analyzer has been enhanced to support Microsoft's /clr
language extensions, including spaced keywords and implicit boxing.

==========================
Software Metrics
==========================

An option has been added controlling the calculation of the Welker
Maintainability Index, controlling whether the index is calculated
using three metrics or four, as defined in his 2001 paper.  See
http://www.crosstalkonline.org/storage/issue-archives/2001/200108/
200108-Welker.pdf  The option fourth metric, comment density, is
calculated differently then previously, so results will differ
from previous releases of Imagix 4D.

Paging has been added to the Metrics windows, and an option to export
the metrics for all symbols or just the visible symbols has been added
to the windows' Print dialog.

==========================
Reports
==========================

A new report, Calls Via Pointers, has been added to the Function Flow
Checks.  The report identifies all functions that call via a function
pointer.  Where available, it lists the possible target functions for
a call as well.

==========================
Document Generation
==========================

Settings have been added for controlling both the total character width
of a generated document, and the width of individual columns used for
displaying symbol names.  As with other document generation settings,
these values are defined either through the Document... > Settings...
dialog, or through the DocGen sheets.

==========================
Batch Commands
==========================

Two batch commands have been added.  cmmdCalcMetrics helps nightly
build jobs prepare an updated database for quick user access.
cmmdDebug aids in command file development.  Detailed descriptions
and examples are contained in the Batch Mode Commands section of the
User Guide.

The two batch commands, cmmdReportImport and cmmdReportImportMultiple,
added in release 7.0, have been renamed cmmdReportExport and 
cmmdReportExportMultiple for clarity.  Reports exported through these
commands can then be imported during an interactive session.  Batch
mode will continue to recognize the original command names as well.

==========================
System Administration
==========================

A memory mechanism has been added to support the generation of metrics
and flow check reports for larger projects.  The mechanism, described
in the new Project Resources section of the User Guide, is controlled
through the Tools > Options > Data Collection > Project Resources tab
in the Options dialog.



#####################################################################
#####################################################################

Release 7.0

Version 7.0 of Imagix 4D includes a major enhancement of Document
Generation functionality, significant extension of the Analyze feature,
the addition of directory level metrics, and user interface and
performance enhancements.  7.0.1 improves the compiler configuration
file for the 2008 and 2010 versions of Visual Studio, eliminates a
spurious warning when loading in code, corrects a problem generating
certain documents, and addresses some minor feature and user interface
quirks.  7.0.2 eliminates a document generation failure and adds some
minor enhancements, makes minor corrections in a couple of the Flow
Check reports, and adds and updates some compiler configuration files.

==========================
Document Generation
==========================

The Document Generation functionality of Imagix 4D has been greatly
enhanced, by 1) extending the information included in the generated
documents, 2) adding user control over the contents and order of the
documents, and 3) upgrading the document's appearance under RTF and
especially HTML output.

The documents now provide much more comprehensive information about
file and program elements.  For example, documentation about a file has
increased from one graph (showing the file's include hierarchy) to a
series of up to 11 graphs, revealing aspects of the file's interface,
internal control hierarchy, dependencies and usage. Information
generated about classes and functions has been similarly expanded.

With such a comprehensive set of information to choose from, users may
want to control what information actually appears in generated
documents, and how it is organized.  ../imagix/user/user_doc.txt
contains instructions and a template controlling the default contents
and organization.  ../imagix/user/doc_gen/sample.dg_ still provides a
sample DocGen sheet for fine tuning the contents, organization and
format for a given document.  This sample has been expanded to include
the new controls.

One impact of the new controls is that the automated documentation
generation has usefulness in more applications.  Two applications in
particular are served.  Imagix 4D generated documents can serve as a
platform for structured code reviews.  On a file, class or symbol
level, you're able to automatically create a document with extensive
details and analysis of the code being reviewed; through the layout
controls, you can optimize the document for your standard review
process.

Secondly, for Change Impact or Problem Analysis documents, you can
easily generate a record of your findings as you use Imagix 4D to
examine issues in the control flow or dependencies of your software.

One change in the user interface to support this increased range of
documentation applications is that the Document dialog can be invoked
in a number of ways throughout the gui.  To generate document about
your entire project, invoke File > Document Project on the main menu
bar.  Invoking File > Document Graph in one of the Graph windows will
result in the Document dialog being focused on the current graph. And
you can right click on any symbol anywhere in the gui to generate
documentation about that symbol.

==========================
Analyze
==========================

The Analyze feature in Imagix 4D has been significantly expanded. Many
new automated Analyze queries have been added, for all symbol types
including files, classes and functions.  The presentation of the
queries has also been restructured, to make it easier to locate the
appropriate query for what you're examining.

As a result of these changes, the Analyze feature assumes a much more
central role in the overall use of Imagix 4D.  The user interface has
been adjusted to support this new role.

==========================
Metrics
==========================

A new level of metrics has been added.  Metrics are now generated at
the directory level.  Over 20 directory level metrics are available,
ranging from file counts to cyclomatic complexity.

Complex types, such as pointers or arrays, built from a class or a
class's members are no longer included in the counts of a class's
members.  This can result is lower values for the Total Members and the
Number of Member Types metrics for classes.

==========================
UI Changes
==========================

The graphic user interface has been updated in the 7.0 release.  Some
of the changes are in appearance and are immediately obvious.  There
are changes supporting new functionality, for example the expanded
invocation of the Analyze feature and the Document Generation function,
as described above.  Some changes in behavior are also immediately
obvious.  Rather than following the mouse as it moves, focus in the
main Imagix 4D window is now tied to a specific tab and needs to be
explicitly moved by a mouse click, a Ctrl-Tab to switch tabs, or an F6
to switch notebooks.

For users of the 6.x version of Imagix 4D, the change which might be
most significant is in the role of the Symbol panel.  Now, in addition
to providing info about the focus symbol, the panel also serves as the
major navigation / focusing mechanism of the tool.  In almost all
display windows, mouse left clicks retain their old actions, but also
focus on Symbol panel on the clicked symbol.  New icon buttons at the
top of the Symbol panel make it easy to navigate on from this initial
focusing of Symbol panel, to focus or open Graph windows, Flow Charts,
etc on the current focus of the Symbol panel.  In addition, the Cross
Reference tab in the panel serves as an easy way to browse through
cross reference info about your software.  Right-clicking in the
History tab then allows you to map where your browsing has taken you.

Another change involves comboprojects, which are formed by combining
multiple individual projects together.  Without duplicating the data
associated with each individual project, these enable you to analyze a
wider span of your software.  In previous versions of Imagix 4D, these
were referred to as superprojects, and were created through a command
line executed in the Command window.  With version 7.x, this has been
replaced with a more intuitive dialog-based definition, available
through the Combine>> button on the Open Project dialog (File > Open
Project).

==========================
Batch Commands
==========================

Two new batch commands, cmmdReportImport and cmmdReportImportMultiple,
have been added.  These support the generation of reports that can then
be re-imported into Imagix 4D through Reports > Import.  The net result
is that time-consuming reports can be generated as part of a batch
process, and then quickly loaded and viewed through the gui at your
convenience.

==========================
Compatibility Issues
==========================

Projects are completely compatible between 6.6 and 7.0 versions of
Imagix 4D.

Version 7.0 contains more user settings than 6.6, and so settings
specified under 7.0 will be lost when returning to the 6.6 version of
the tool.  Under certain versions of Linux and Unix, font settings are
interpreted differently between 6.6 and 7.0.  Therefore, when switching
between the two versions, you may need to modify the font settings to
optimize readability.

Document generation controls have been significantly extended under
7.0.  Version 6.x DocGen sheets (../imagix/user/doc_gen/xxxx.dgn) are
read and processed under 7.0, but it is recommended that you convert
you DocGen sheets to the 7.x format to take full advantage of the 7.0
enhancements.