The FermaT Workbench consists of a number
of integrated tools including a Function Catalogue; Function Call Graph;
Data Catalogue; Interactive Program Flowchart; Interactive Editor;
Interactive Data Tracker; Batch Data Tracker and Report Generator.
Each of these tools can be accessed from the
workbench toolbar, either through an icon or a menu option.
The Function Catalogue
provides detailed information on each module or file
within a particular Fermat Project, and provides the user with the
following information - Function Name; Function Type (source, macro, or
copybook); Hierarchical Structure; Current Version; Structure;
Dependencies and Basic Metrics.
Selecting a Function in the Tree with a single
mouse click will show all the details for that Function in the Function
function Catalogue provides a consolidated view of the Assembler
inventory, identifying all different aspects of that inventory e.g.
Macros, copybooks etc, their interrelationships and a measure of frequency
Function Call Graph -
The calling structure of modules collected within a
Fermat Project can be viewed graphically in the form of a Function Call
Graph. This initial view provides a high-level picture of the entire
project and graphically shows the overall complexity of the
interrelationships of the modules within the project.
The Data Catalogue -
provides end users with a complementary perspective of
a program’s data, by showing the structure of the data items contained in
the project, and their usage across other modules. Information about the
various data items contained in the Data Catalogue includes: Data item
name; Associated ‘child’ data items; Data type; Number of occurrences;
Size and Initial value.
The Data Catalogue is linked with the Interactive Editor, its
Interactive Data Tracker and the Interactive Program Flowchart, enabling
a programmer to track the usage of a particular data item either directly
in the code or through a flowchart.
Interactive Program Flowchart
- Fermat’s powerful Interactive Program Flowchart is
linked to all the other Fermat functions, providing an up-to-date view of
the structure and logic flow of the Assembler programs, which can be
displayed in a matter of seconds. Using this graphical representation of
the code an end user can quickly and easily identify the various processes
and decision points within a program.
If a Data Item has been selected in the Data Catalogue or the
Interactive Editor, then this item
is automatically highlighted in the Program Flowchart.
The Interactive Editor -
is a powerful, language-sensitive text editor. It
distinguishes between comments, instructions and data items and is fully
integrated with the other workbench tools.
The Interactive Editor can be used to amend the source files and comes
complete with the usual features of a text editor. Being integrated into
the workbench toolbar, the editor reacts to the module selection process
in the Function Catalogue automatically, as does the Data Catalogue and
the Interactive Program flowchart.
The Interactive Data Tracker
built into the Editor and enables the developer to track data usage
through a program's data items,
temporary work fields and even misused fields. Data usage is
tracked from a given point in the code by identifying the lines of code
that either lead to, or are impacted by, one or more selected data items.
The results are shown in the Text Editor and the Program Flowchart.
Business Rule Extraction
- also known as Code Slicing, is built into the workbench. It enables
developers to perform backwards or forwards slicing of a data element from
a particular point in the assembler module. Comprehensive analysis is
performed on the assembler module to fully understand the data flow of the
module and all control dependencies. The developer can perform a backwards
slice to highlight code which is executed to generate the value of this
data element at this point in the module, a forward slice highlights code
that this data element affects within the module.
A developer can also perform a bi-directional code slice of a data
element which is a combination of both a backwards and forward code slice,
this will highlight all code executed in affecting the data element, from
this the developer and analyst can determine the business rules
incorporated with the module.
This ability to highlight which code which is executed is a very
powerful facility in assembler, as a data element can be referenced in any
number of ways, such as off-set addressing, which is not immediately
apparent to the developer.
Dead Code Candidates - During the import process the assembler module
is comprehensively analysed for dataflow and control dependency. This
process automatically highlights dead code within the module. Dead code is
code that cannot be reached logically from within the module, but with the power and flexibility of the assembler language, this code maybe
executed directly from elsewhere within the system. There are
various reasons why dead code would be found in legacy assembler
applications but normally this is a result of "quick" system patches
historically implemented to
meet urgent business requirements.
The import process also highlights "deleted"
codei n a different colour, this is code that from the control dependency analysis will not be
executed due to the value of a compare and branch instruction never
executing the "deleted" code
Batch Data Tracker - is a specialist tool within the workbench to enable analysts to locate the
usage of defined data items within a project.
The Batch Data Tracker is a Microsoft Access application in which the
assembler listings are parsed to generate Access tables of all defined
data items with their associated comments. The analyst searches these
tables using the Batch Data Tracker for data items that match the Boolean
search criteria. Once all required data items are selected, a Global Scan
is performed against the Assembler source listings, all data items found
are highlighted in the text editor and flow charter, and impact and
assessment reports produced.
Report Generator - The Fermat Analysis
Workbench has two primary reports, the Inventory Report and the Assessment
report. However, the underlying structure of the data enables the use of
almost any reporting tool that can import text files.
The Inventory Report has been designed to provide
both summary and detailed information on the code contained within a
An Inventory Report takes a single Fermat project
as its source, or it can generate a report based on a collection of Fermat
projects held under a high-level ‘workspace’ folder.
The structure of the underlying repository enables the end user to create Customer specific reports quickly,
and using almost any available reporting tool, from MS Access to Crystal
Reports to a SQL Server reporting engine.
The Assessment report enables the results from the
Global Data Impact Scanner to be considered across many projects to create
a wider impact study than just the project that is currently being
This provides the user with a data impact facility
across the whole of the Assembler inventory, and to collate the results
into a single report. Once the impacted modules have been identified, the
Fermat Analysis Workbench can be used to carry out a detailed analysis of
the modules and to make any code changes that may be necessary.