SML logo The assembler comprehension and migration specialists


FermaT Workbench

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.
FermaT Workbench Toolbar - the initial system interface.
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 Details.  The 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 of use.
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 -  is 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.
Inventory Report
The Inventory Report has been designed to provide both summary and detailed information on the code contained within a Fermat project. 
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.
Assessment Report
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 analysed.
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.
Complete Analysis Workbench including all functions open.
Back


Copyright © Software Migrations Limited 2007-2021 - All rights reserved