Home
FermaT Workbench User Guide - Software Migrations Limited
Contents
1. X Y added E D C added A Y 1 y B X 3 IF Y gt 0 C D x 4 y E PRINT X Now slicing back to node B we find that B is part of the dataflow from node E Version Issued Status Confidential 2008 Software Migrations Limited User Guide 138 Software Migrations Ltd Page 149 However since X is already part of the dataflow criteria there is no need to add it We add node B to the control dependency criteria Current Slicing Criteria Dataflow Field Control Dependency node X Y E D C B added Continuing the slice backwards we now find that node A is part of the dataflow slice of field Y from node C Since field Y is already part of the dataflow slice criteria there is no need to add it and there is no need to add node A to the control dependency criteria because B will yield the same control dependency results Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 150 A B C D we y E PRINT X The results of the backwards dataflow control dependency slice will include nodes D C B and A Worked example of forwards combined slice Performing a forwards combined slice on field Y starting at node A Current Slicing Criteria Dataflow Field Control Dependency n
2. Extraction Function Description Manual Ref 1 2 New Project 6 v v v Import Files 7 1 v v M Import Listings 7 2 v M v Delete Functions 8 v y v Inventory Report 9 v v v Function Catalogue 11 v v v Call Graph 12 v v v Text Editor 14 y v v Program Flowchart 15 v v y User Annotations 16 v v v Data Catalogue 17 v v v Batch Data Tracker 18 M v v Easy Data Tracker 19 v y v Sub projects 241 v v v Generate Data Flow 23 4 v v Create Annotated Files 23 7 v v Business Rule Extraction 23 14 v Documenting Business Rules 23 15 v Export Function 24 v v v Reports 25 v v s Customising the Workbench 30 v v v Utilities 26 v v v Migration Version Issued Status Confidential 2008 Software Migrations Limited User Guide 138 Software Migrations Ltd Page 7 2 Starting the Workbench This document assumes you have loaded the Fermat Software into C FERMAT directory if you have loaded the software in another location you must edit the FERMAT Full nnn Config TempFile tab By default the contents of this file will be TempLoc c If you have installed the FERMAT software to another location on your system e g the D drive then the contents of the TempFile tab file must be changed to TempLoc d Start the Workbench by double clicking the following program file C Fermat Software Eval bin Workbench exe You could create a shortcut on your desktop to this program file
3. Trace File Data Get Data fet Data Select Functions Sub Project Functions DSAUSER RXLKPWUP The Create Sub project dialogue box requires the user to specify the name and location of the new sub project The Sub project Location can be any valid directory on the system The Sub project Name is required to be unique within the Sub project Location directory When the Workbench creates the Sub project it will create a new project and copy over all the files associated with the selected functions including dependencies such as Macros and Copy Books If the Data Flow Analysis has been performed on the selected modules then the Data Flow Tables will also be copied to the new project it will automatically execute Run Data Scanner and when complete change the current project to the newly created sub project Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 74 21 1 Creating a Sub project from the Data Tracker If the as in the above example the user has run the Batch Data Tracker previously in this project then this information can be used to create the sub project In the above example this would create a sub project containing just the modules DSAUSER and RXLKPWUP and their associated dependent macros and copy books The new Sub project would be placed in the directory C DSA Sub projects and call the new Sub project DT Process
4. Child Data Occws Size InitialvVaue Equate Equate Equate Equate PROGFMT1 Copybook The sort order for each column toggles between ascending and descending apart from the Name column which toggles between the order in which the Data Items were declared and ascending order 4 Within the Data Catalogue this means external to the Module not external to the Project as with the Function Catalogue Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 59 17 4 Synchronising the Data Catalogue and the Text Editor Text Editor FMT001A1 ma x File Edit Track Options MarkLine CodeSlice Help KK KK KR KK RK HR HR RRR RR RRR RRR RRR RRR RRR RRR RRR Show Line in Flowchart Show lt WSAVE gt in Data Catalogue FMTOO1A1 TEST PROG RHRKKKHKH HK KKK KKK KKK KEE 2 PRINT NOGEN REGEQU lt FERMAT gt lt MACR lt FERMAT gt lt MACR CSECT RMODE 24 STM R14 R12 LR R3 R15 USING FMTOO1A R13 WSA R14 WSA 4 KKK Locate amp Mark All lt WSAVE gt Find amp Mark All lt target gt Cut Copy Paste Print Selected Text Print Formatted Selected Text Mark Block of Lines Unmark Block of Lines Create User Annotation View User Annotation Delete User Annotation Show Macro Copybook View Listing Select Code Slice Criteria lt WSAVE gt Explain Code Slice Goto Label lt label gt biw Selected Dat
5. Project E FermatProjects global RefreshListings E lmport RefreshListings RefreshSource E lmport RefreshSource RefreshMacro E lmport RefreshMacro RefreshCopybook E lmport RefreshCopybook Datascan yes Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 135 Dataflow yes ExportFolder E Export Close yes Place note the final line in the startup txt file must be a complete line l e it must finish with a newline character When the workbench is started this could either be by timer or once the transfer of changed files has completed it will immediately perform the commands as requested by the Startup txt file The batch processing produces a report file in project level1 inventory directory This file is called BatchProcess_yymmddhhmm txt where yymmddhhmm is the current timestamp The report file shows what processing was performed during the batch run Example output Listings E Ilmport REFRESHLISTINGS Source E lmport REFRESHSOURCE Macro E lmport REFRESHMACRO Copybook E lmport REFRESHCOPYBOOK Datascan YES Dataflow YES Export YES Close YES 09 10 07 12 49 Import Files 09 10 07 12 51 Generate Dataflow 09 10 07 12 52 Performing Datascan 09 10 07 12 55 Done Datascanning 09 10 07 12 58 Export XML Files 09 10 07 12 58 Batch Processing Complete Version Issued Status Confidential 2008 Software Migrations Limited User Gu
6. Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Lid Page 12 7 Importing Files The Workbench can import Assembler source or Assembler listings depending on what functionality is required Assembler source can be used for static analysis only Assembler listings are required as input if code slicing and business rules processing are required 7 1 Importing Assembler Source Ca From the main menu bar select File Import Files alternatively select from the icons menu bar This will bring up the Import Files dialogue box below Import Source Select Source Folder Select Macro Folder Ps fe Select Copybook Folder E ns By Enter the locations for the components you wish to import The import source dialogue gives you the opportunity to specify directories for Source Macros and Copybooks For each type of element you should click the checkbox and enter the location required Each component type has a browse button to help you locate the directory To process the files in the selected directory and make them available for use in the Workbench press OK The workbench will import all files found in the specified locations into your project and regenerate the repository Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Lid Page 13 For an existing project any elements which already exist i
7. From Dependencies DP Process Select Functions From User File Dependencies je User File Processing Hone C Scan Welty Trace File Data Get Data Get Data Select Functions Sub Project Functions Type Function e Function DATAMAN DATAMAN DSASETP DSASETP DSAUDAT DSAUSER DSAXMEM DYNAM en ro IEFUS3 RXLKCKPT RXLKMAIN RxXLKOTUP ma rvnnrm User File Z Called By Calls All the modules in the project are displayed in the lower left panel one or more modules are selected by right clicking on the type field of the module concerned once clicked the Add to Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Lid Page 78 Subproj option appears selecting this will place the name of the module in the lower right panel If required the user can delete modules from the identified Sub Project Functions by right clicking the module name an selecting the delete option Pressing the OK button will create the sub project using the modules in the lower right panel 21 5 Creating a Sub project from a User File This option allows a user to create a sub project from a pre generated list of modules which have been compiled outside the actual workbench The user is required to enter the location of the file to process or use the browse button to right of the field Once the file has been locat
8. Get Data User File E 2 User File Processing None Scan Utility Trace File Data Get Data Select Functions DYNAM IntMac ENDSUB SysMac ENQ SysMac ESTAE SysMac EXTRACT SysMac FREEMAIN SysMac FREEPOOL SysMac GENCB SysMac GET SysMac GETMAIN UstMac ICHEACTN UstMac ICHEINTY Thank d ee IcmnicrrTeeT Version Issued Status Confidential 2008 Software Migrations Limited Sub Project Functions Type Function RXLKCKPT RXLKMAIN User Guide 138 Software Migrations Ltd Page 77 In the above example the function DYNAM an assembler module has been selected the dependency has been selected as Called By the Workbench will then search the repository to find all modules that call the module DYNAM and place the names of the modules in lower right panel If required the user can delete modules from the identified Sub Project Functions by right clicking the module name an selecting the delete option Pressing the OK button will create the sub project using the modules in the lower right panel 21 4 Creating a Sub project from Select Functions To create a sub project by selecting the modules from a list of all modules in the master project select the Select Functions radio button this will show the following dialogue box Create Sub Project m Create Option __ Sub Project Location C From Data Tracker CADSA Sub projects 7 From Call Graph Sub Project Name r
9. MVI WPRT C CLEAR PRIN MVC WPRT 1 79 WPRT An Annotation is created by selecting a number of lines in the Text Editor or a node in the Program Flowchart and invoking the Code Annotation Facility from the context menu Subsequently the Annotation is accessed by either selecting an annotated source line or an annotated flowchart node and selecting View Create Annotation from the context menu FERMAT User Annotations 1 New Index 1 OF x QUIT SAVE Each EX instruction is followed by a comment with an example of its expansion Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 56 Note Annotations may be used in combination with other marked lines see Section 14 1 Data Tracking in the Text Editor For example one or more source lines may be marked in bright red to indicate a problem area The user may then choose to annotate these same lines describing the issue Select one or more code lines in the Text Editor that you wish to annotate Right click in the selection and choose Create User Annotation Type a suitable message in the dialog box Click on SAVE Right click one of the annotated lines shown highlighted as purple by default and select Show Line in Flowchart to highlight the corresponding node in the Program Flowchart e Right click the current node in the Program Flowchart and select View Annotation The te
10. Page 112 27 Admin Utilities The Admin Utilities are invoked by selecting Admin Option from the main Workbench menu bar as below FERMAT Workbench DSA DYNAM File Tools Options Business Rule Extraction Export Reports Utilities PEGI Help view Lockout Table Reset Repository Lockout Reset Workbench If the Workbench Lock Table for the current project is empty i e no modules are locked by the Text Editor for update then the View Lockout Table will be greyed out The Projects lock table is used to ensure that no more than one user can check out a module for updating at the same time A user would check out a module for updating if he wishes to create annotations or mark lines or blocks of code and save them in the repository The lock table is checked and set by other processes within the Workbench so that these processes can complete and will not be affected by the locked out modules e Import Listings or Modules e Export Files e Creating Sub projects e Add Functions e Delete Functions e Data Scanner from Batch Data Tracker e Global Scan from the Batch Data Tracker e Easy Data Tracker e Code Slicing e Generate Data Flow e Auto Gen Business rules e Reset Source Files e Batch BRE e Create business Rule Within these processes the modules to be processed are checked against the lock table if they are present in the Lock Table a message is displayed and the process halted If not present all the modules to
11. Tool Name You try this Reference to command menu item keyboard key Reference to example data files Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited B e Page 5 1 The FERMAT Workbench System This User Guide provides a technical reference manual for the SML Workbench It is designed to explain how the Workbench is used and describes the underlying software which controls its operation The User Guide is designed to be used with two sample projects DSA and Proj01 which were supplied with your copy of the Workbench It details the features and functions of the Fermat Workbench and how the tool can be used to automatically document assembler systems and assist programmers and analysts to quickly comprehend even the most complex assembler systems 1 1 What is included With your copy of the Workbench you will have received the following files Documentation This User Guide Software This contains the FERMAT software Projects Sample projects include DSA Proj01 Both projects DSA and Proj01 are used in this guide to demonstrate various features of the workbench 1 2 System Requirements The Fermat Workbench is designed to work using Microsoft XP Windows 2000 and NT it also requires Microsoft Access 2000 or later The software and sample projects will require approximately 150MB of disk space Some of the functions in the workbench such as flowchart generation are c
12. Import Original Source x Select Source Folder CADSASouce O O H oK When selected this process will also automatically generate the OriginalSourceReport txt file as before When importing the original source the process does not rebuild the internal Workbench Repository Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 17 7 4 Importing Assembler Listings Source Macros amp Copybooks FERMAT Workbench FERMAT PROJECT File Tools Options Business Rule Extraction Export Reports Migration Utilities Help wa es 171 xi Select Listings Folder CADSALisings Select Source Folder Iv C DSA Source Select Macro Folder Iv C DSA Macros Select Copybook Folder Iv C DSA Copybooks OK As can be seen from the above dialogue box it is possible to import multiple file types at the same time Whenever listings macros or copybooks are imported into the workbench the internal repository must be updated importing files using this process means that the import of the files is performed altogether and the repository only requires updating once 7 5 Processing Listings Using listings as import enables the FermaT Workbench to perform more detailed analysis of the assembler project Listings are required for code slicing detailed impact analysis and business rule extraction as described later in this guide When source only is used as the
13. Software Migrations Ltd FermaT Workbench User Guide November 2008 Version 138 Issued Status Confidential Software Migrations Limited 3 Sandridge Park Porterswood St Albans Herts United Kingdom AL3 6PH Tel 44 0 1727 898699 Fax 44 0 1727 866212 www smltd com November 2008 Page i Table of Contents 1 The FERMAT Workbench System cccccccsssesssseeeeeeeeeeeseeeeseneeees 5 1 1 What is included acs ectcccse ace easseacentuacecaahatecsnuheacaieeacaddbetentbotbinnadtehies 5 1 2 System Requirements xsiccccsiceaiicsseriee nerd cee eines 5 1 3 Installation ANd S t UD ccceeeeeeeeeseeeeeeeeeeeeeeeeeeseeeeeeeeeeeeenteeseeaees 5 1 4 How to use this Manual sicicccicetessctediacedovesenidedtensdedeceneiedietedewenestgeliee 5 Zs Starting the WOrmkOenie i is ciscnicininirdirien asides ieieidaenieel 7 3 Using the Supplied FERMAT Projects ccccccssssssseeeeeteeeesseeeees 8 4 The Workbench Environment sscsseeeeeeeeeeeeseeeeseeeeeeeeeeeeeeeeeeeeeneees 9 5 FERMAT Proj CtS citisiccicsitecsiacicnrtomunsiocimberaremiesiveiibimnamonieiioriin 10 6 Create a New Project icine cccces cnians canon orn nescnmenewenemrasicanoranawesavencane 11 7 PE OPE Files wetecciciciencisiieiexnaencienceanckvuniianiinraianbinatiwidaciindinensaciencines 12 7 1 Importing Assembler SOUrCE ccccceeeeeeeeeeeeeeeeeeeeeeeeeeneeeeeeeeeeeeeeees 12 7 2 Importing Assembler ListingS eeeeec
14. contains the original source imported when the BRE import included both listings and source to support full life dataflow cycle see Section 27 for further details work cpb contains extracted copybooks if import was from Tracker listing or the original copybook source imported leveli annotations database list1 contains the original listing imported to the system list2 contains a working copy of the listing imported to the system It is used to mark lines of code during the code slicing BRE and Business Rules processes The reset source function copies form list1 to list2 mac contains the extracted macros if import was from listing or the original macro source imported level1 is a top level folder containing information generated by the workbench the following details the subfolders annotations this file contains the detailed information for any user annotations created by the user for this project database this folder contains a number of files which comprise the Version Issued Status Confidential 2008 Software Migrations Limited User Guide 138 Software Migrations Ltd Page 119 main repository of the workbench It also holds information on the statistics and metrics generated by the workbench as part of the import process Database contains the files comprising the workbench repository Inventory contains intermediate files for generating the
15. 21 2 Creating a Sub project from the Call Graph The user can create the new sub project from modules identified in the Call Graph in exactly the same way as the previous example by selecting the Call Graph radio button at the top left of the screen Note if the Text Editor or the Call Graph have not previously been used then these options are greyed out Pressing the OK button will create the sub project using the modules in the lower right panel 21 3 Creating a Sub project from a function s dependencies To create a sub project from dependencies means to select one or more components of the master project modules macros and copybooks and create the Sub project using modules that the components call or are called by Example of usage if you want to change the a variable of a file definition that is declared in a macro and you want to create a sub project of all the modules that use that macro for further investigation then use this option The dialogue box will display all components of the master project as below Version Issued Status Confidential 2008 Software Migrations Limited User Guide 138 Software Migrations Ltd Create Sub Project Create Option C From Data Tracker From Call Graph From Dependencies Select Functions From User File Page 75 Sub Project Location es Sub Project Name ooo User File Dependencies 7 Called By J Calls fet Data 2
16. 274 286 Module IEFUSS 236 356 415 431 Module RXLEOTUP 400 440 Example of Dead Code Analysis Report 25 3 External Module Details Report This report will generate a text file stored in the Leveli inventory folder called ExternalModuleReport03 txt and launch notepad to display it The report details any external modules called from the project The report details the called module name and the calling module Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 102 External Module Report Thu oct 02 12 33 07 2008 Project DSA IKJEFFL amp called By DY MAM CLINE RXLEUSRL Called By RXLEPROCCBALRA RXLEUSR2 Called By RXLEMLAT NCBALP RXLKUSR3S Called By RXLEMLAT MCBALRA RXLEUSR4 Called By RXLEMAIN CBALR R LKUSR5S Called By RXLKEPREPCBALRA RXSSPWwoO Called By DSASETPCLINKY DSAUSERCLINK ICHPWXOLCLINK ICHRIXO2 CLINK Example of External Module details Report 25 4 Annotation Report This report will generate a text file stored in the Leveli inventory folder called Annotation_ModuleName txt and launch notepad to display it If there are no annotations in the current module a warning is displayed The report details all the user annotation text entries for the current module Main parameter test loop Bad Key value exit Example Annotation Report 25 5 Original Source Report This report will ge
17. Copybooks Macros and Listings supplied plus any ignored files any missing or orphaned files and details of all files associated with the project The DSA project consists of 147 assembler modules The Proj0O1 project has 9 assembler modules 1 copy book and 10 macros Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Lid Page 21 10 Selecting a Module Once a Project has been selected you may select a Module to work with A Module in the Workbench relates to a physical file imported into a FERMAT Project There are two project level Tools in the Workbench that allow you to select the Current Module e The text based Function Catalogue e The graphical based Function Call Graph Once a Module has been selected as the Current Module by either of these Tools the Module name will appear alongside the name of the current Project in the Workbench Toolbar s title bar From then on any module level Tool that is opened or is already open will relate to this Current Module 1 i e the rest of the Tools Text Editor Program Flowchart and Data Catalogue Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Lid Page 22 11 The Function Catalogue Open the Function Catalogue from the Workbench Toolbar either by selecting Tools Function Catalogue from the menu or by pressing the Function Catal
18. The Program Flowchart sisieun aipa 50 15 1 Synchronising the Program Flowchart and the Text Editor 53 15 2 Printing from the Program Flowchart amp Function Call Graph 54 User PAO AU OMS ants ce ricsensrante ra ssrnercarensteneteunterarseieenasenibermestiuseeuevainds 55 The Data Catalogue sciicctcsctecstescivccteusiccstesctececestccetesctucecessectedeeccsteies 57 174 The Data TreGesinossiinoniiois oisnean a eeni aea siets 57 17 2 Data Defined in Copybooks and Macros ccccccceeeeeeeeeeeeeeeeeeeeeees 58 17 3 Data Glaus igniter dicta eres ern eee 58 17 4 Synchronising the Data Catalogue and the Text Editor 59 The Batch Data Tracker vicissssiscsssictiessercanssincsiccsdensaceniaceanesdanedeandarsions 61 18 1 The Global SCANnN6l isccasccnjecascsagecsassagetiducsacnteansseadnantenstaieiancaareeaatiadans 65 18 2 Cleat Tracker Files sisertrrixccernereriuier e a aahi 66 18 3 Scan Macros CopybookSs weg cone tecere cers crguncereaewtem crested eeendeemteceund 67 The Easy Data Tracker ssisccisccsscsacccdsccicseteccnavedcacisacicatietedencicsolectnesancs 68 Master Projects and Sub projects cc ssscsesseeeeeeeeeeeeeeeeeseeeeeeeeeeees 70 Creating Sub projects vincsiens ssn erentesavenians nanstccindsasusisawenenrasinecennuisinnencaind 72 21 1 Creating a Sub project from the Data Tracket cceeeeeeeeeeees 74 21 2 Creating a Sub project from the Call Graph ccceeeeeeeeeteeeee
19. Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 8 3 Using the Supplied FERMAT Projects The sample FERMAT Projects DSA and Proj01 are required in order to demonstrate the FERMAT Workbench functions as described in this User Guide A FERMAT Project is a directory named after the Project itself containing a number of valid subdirectories and Ferma files Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 9 4 The Workbench Environment The FERMAT Workbench environment is represented to the user in the form of a Workbench Toolbar from which all Workbench Tools are invoked FERMAT Workbench FERMAT PROJECT DATAMAN File Tools Options Business Rule Extraction Export Reports Migration Utilities Admin Help wal lr lll The current release provides the following set of Tools to assist the Assembler programmer with code comprehension v Function Catalogue v Function Call Graph v Text Editor v Program Flowchart v Data Catalogue v Batch Data Tracker v Easy Data Tracker v Business Rules Extraction y Export Function v Reports v Utilities This User Guide has been designed to introduce you to each of these Tools in turn as quickly as possible Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Lid Page
20. WSAVE WBITO WBITI WBIT2 WBIT3 PROGFMT1 an icon according to its type The following data User Guide 138 Software Migrations Ltd Page 58 a Data Structure green cylinder icon Data Structures are non atomic Data Items which contain others and may be nested ar a Data Element red cylinder icon Data Elements are atomic Data Items and thus may not be nested Note that an Assembler Equate is shown as a Data Element with a trailing E 17 2 Data Defined in Copybooks and Macros The Data Catalogue may contain external Data Structures where the data in a module is defined in one or more Copybooks and or User Macros Such an external Data Structure is indicated by a red X in the top right corner of the Data Structure icon with a trailing C or U to show whether it was defined in a Copybook or a User Macro respectively Note To enable the Data Catalogue to display details of externally declared data without having to import the relevant copybooks macros into the FERMAT Project the Workbench Toolbar Options Project Settings menu allows you to specify the path to your copybook and macro libraries 17 3 Data Details The Data Details pane currently includes one page the Data List This corresponds directly to the Function Catalogue s Function List page The Data List displays the selected Data Item s immediate children Data List Name Type FMTOO1A4 Structure
21. g Eie Type a question for hep SEA X s Seek Table Display All v Fields by Name v Export Results Entry Type Display Seek Status Module Name FieldName Field Type Field Comment a C NAME Type String P Unmatched DYNAM CH Qo POINTER INTO PARM STRING COMMENT Unmatched DYNAM DF go BASE ADDRESS FOR DFDSECT C DATATYPE Unmatched DYNAM KTE go KEYWORD TABLE ENTRY Unmatched DYNAM MSG go BASE ADDRESS FOR DFDSECT2 _ Unmatched DYNAM MSG d C10 Search Stri Unmatched DYNAM RB a0 BASE ADDRESS FOR REQUEST B Unmatched DYNAM SUBT go Unmatched DYNAM TP go BASE ADDRESS FOR TEXT POINT Word Search Unmatched DYNAM TU go TEXT UNIT lea Unmatched DYNAM VTE go VERB TABLE ENTRY Unmatched DYNAM wa go BASE ADDRESS FOR WORK ARE erie Unmatched RXLKMAIN ABENDCHK c8 ABENDCHK VALUE NO DFT Begins With Unmatched RXLKMAIN ABENDKE Y ce ABENDCHK KEYWORD Unmatched AXLKPWUP ACEE F4 ACEE ADDR FOR RACINIT Unmatched DSAUDAT ACT c3 ACTION TYPE Unmatched AXLKPWUP ACTIBL go Unmatched AXLKRVUP ACTIBL go Unmatched DSAUSER ACTIBL ao Unmatched AXLKPWUP ACT2BL ao Unmatched DSAUSER ACT2BL ao Unmatched AXLKPWUP ACT3BL go Unmatched DSAUSER ACT3BL ao Unmatched DSAUDAT ADDRACEE F4 ACEE ADDR Include Entry gt gt Unmatched DSAUSER ADDRACEE F4 ACEE ADDR C Contains Entry Description Unmatched DSASETP AD
22. gt Text Editor update Disabled Tools gt Delete Functions Disabled Tools gt Regenerate Repository Disabled Tools gt Easy Data tracker gt Run Scanner When running the scan the Workbench will only mark a user copy of the modules Tools gt Batch Data Tracker gt Perform Global Scan When running the scan the Workbench will only mark a user copy of the modules Business Rules Extraction gt Import Listings Disabled Business Rules Extraction gt Import Original Source Disabled Business Rules Extraction gt Reset Source File Removes the user copy of the module Business Rules Extraction gt Batch Reset Source File Removes the user copies of the modules Business Rules Extraction gt Batch BRE Processing Disabled Business Rules Extraction gt Assessment Report Disabled Reports gt User Macro Report Check box to allow user macro lines to be marked up in modules is disabled A FermaT Workbench administrator can re instate normal project behaviour by again selecting File gt Project Read Only from the main Workbench window This will of course remove all user specific mark ups 22 1 Using a Read Only project The principal use of a read only project is to maintain synchronisation between the Fermat Workbench Project and assembler source located on the mainframe Since importing of source and listings is disabled within a read only project only a Fermat
23. 10 5 FERMAT Projects Each FERMAT Project contains a collection of Assembler files typically representing an Assembler system or sub system The Project also contains all the working files produced and required by the Workbench Before the Workbench Tools can be used on a particular Assembler system the source and or listing files must be imported into a FERMAT Project See section 7 FERMAT Projects may be stored anywhere that is accessible by the machine running the Workbench i e either locally or on a shared network drive The Workbench supports a hierarchy of projects in the form of Master Projects and associated sub projects See section 20 Master Projects and Sub projects for further details Start the Workbench by double clicking the following program file C Fermat Software Eval bin Workbench exe Or create a shortcut on your desktop to this program file Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 11 6 Create a New Project From the main menu bar select File New Project alternatively select the lar from the icons menu bar This will bring up the New Project dialogue box below New Project Project name Location Ic Enter the required project name in the Project Name and then enter the location where the project is to reside or use the browse button to navigate your system and select the required location
24. 80000110 80000120 80000130 60000140 80000150 60000160 80000170 60000180 80000190 80000200 60000210 80000220 60000230 60000240 80000250 a C T Message Selected Data ltem Pointer Position When a module is opened in Read Only Mode all the Text Editor Functions are available to the user including marking lines and blocks to aid comprehension but the changes made to the module cannot be saved In order to make changes to a module save and store annotations marked lines etc the module must be opened for Update To open a module for Update Select Tools Text Editor Update as below Version Issued Status Confidential 2008 Software Migrations Limited User Guide 138 Software Migrations Ltd Page 32 FERMAT Workbench PROJ01 FMTO01A1 File Tools Options Business Rule Extraction Export n Function Catalogue Function Call Graph Text Editor Text Editor Update Program Flowchart Data Catalogue Delete Functions Regenerate Repository Easy Data Tracker Batch Data Tracker Inventory Report Close All When a module is opened for Update this is recorded in the Workbench internal lock tables any module locked for update will not be available for Text Editor Update for any other user or for other system wide functions that require access to locked module Note the internal lock tables function on a project wide basis If a user attempts to open
25. 91 23 12 AutoGen Business RUES isisisi ipsis n 92 23 13 View Business Rule LiSt sssssssssssssssesssesssessssssesseseeseeeaeaes 92 23 14 Business Rules Extraction Code Slicing within the Text Editor 93 23 15 Documenting Business Rules cccceeeeeeeeseeeeceeeeeeeeeeseesneeeees 94 23 16 To Enter a Business Rule csessssssssssssssesssssesssesssssssssseeees 95 23 17 To View Existing Business RUI S cccceeeessssseceeeeeeeeeseeenneees 97 Status Confidential 2008 Software Migrations Limited Page ii User Guide 138 Software Migrations Ltd 24 25 26 27 28 29 30 31 32 33 34 35 36 Version Issued Export FUNCION sisese EEE EEE EEE 98 REPON S ccsdiccicicicitisinies caccesetesisadiasicsnivcinbelivadenunivuiiiabicaniscsiendlccolectioasies 99 25 1 Function Catalogue Details Report cccceeeeeceeeeeeeeeeeeeeteeenneeees 99 25 2 Dead Code Details Report eeeeceeccccceeeeeeeeseneeeeeeeeeeeeeesesneeeees 101 25 3 External Module Details Report cccceeessssscceeeeeeeeeeeeesseeeees 101 25 4 Annotation REport cccccccceeeeeeeeeeeeneeeeeeeeeeeeeeecneeeeeeeeeeeeeeenaaees 102 25 5 Original Source Report xyes acetic ccenshes cebenetetesuncn cede edetensbe telene laces 102 25 6 User Macro Report oxiacsceiet ered ieeseraterta nets etaneicenenddeeese 103 AS Mr Mme 00 lg 2 amp eum rere eT r
26. Catalogue s Function Tree The Function Call Graph centres on the selected Module If the Function Call Graph is hidden from view simply click its button on the Workbench Toolbar to give it focus When you performed the last action you may have noticed that not only did the Function Call Graph centre on the Module selected in the Function Catalogue but the Workbench Toolbar now displays the name of the selected Module in its title bar Furthermore if you have already opened some of the other Tools you will see that they now display details of the selected Module This is because by double clicking a Module in the Function Tree you have changed the Current Module Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Lid Page 30 13 Selecting the Workbench s current Module The previous sections described the Function Catalogue and Function Call Graph these two Tools are used to select the Current Module against which the Text Editor Program Flowchart and Data Catalogue will synchronise if opened or are already open To select a Function Module Macro or Copybook gt From the Function Catalogue double click a Function in the Function Tree Only an internal one it makes little sense to make an external Module current because no information is known about it gt From the Function Call Graph double click a Module in the main graph window If instead y
27. Dataflow Anne Analyst 03 10 2008 16 03 45 Deleted Entries Module Function User Dae Time DSAUSER Text Editor Ry Coder 03 10 2008 In the above example the Module DATAMAN has previously been selected for deletion and placed in the lower panel The module DYNAM has also been selected and will be placed in the panel deleted entries Selecting Delete all for User will place every locked module for the user on the highlighted line in the Deleted Entries panel Entries can be removed from the list of entries to delete by right clicking on the module name and selecting restore as below User Guide 138 Version Issued Status Confidential Val 2008 Software Migrations Limited Software Migrations Ltd Page 115 Lockout Table Module Function User Dae Tme DYNAM Text Editor 4 Programmer 03 10 2008 16 06 49 DSAUDAT Batch Generate Dataflow Anne Analyst 03 10 2008 16 03 45 ICHRIX01 Batch Generate Dataflow Anne Analyst 03 10 2008 16 03 45 IEFU83 Batch Generate Dataflow Anne Analyst 03 10 2008 16 03 45 RXLKMAIN Easy Data Tracker REMOTE2 03 10 2008 16 05 26 RXLKPROC Easy Data Tracker REMOTE2 03 10 2008 16 05 26 RXLKPWUP Easy Data Tracker REMOTE2 03 10 2008 16 05 26 RXLKRYUP Easy Data Tracker REMOTE2 03 10 2008 16 05 26 RXLKSECU Easy Data Tracker REMOTE2 03 10 2008 16 05 26 RXLKPURG Batch Generate Dataflow Anne Analyst 03 10 2008 16 03 45 Deleted Entries Module Function _
28. Flowchart amp Function Call Graph The diagrams contained in both the Program Flowchart and Function Call Graph can be printed from the File Print menu of the Tool By default the entire diagram will be printed on a single page though by experimenting with File Print Setup you can scale the diagram to your own requirements From the Print Setup dialog choose the Printer button to access the Windows Print Dialog where you can select the printer page orientation and number of copies etc What may not be immediately obvious is how you can print just the section of the diagram you are interested in i Select the part of the diagram you wish to print with the Select cursor i e rubber band it ii Press Ctrl C to copy it to the Windows clipboard iii Press Ctrl A to select all of the diagram iv Press the delete key and confirm deletion of all elements of the diagram v Press Ctrl V to activate the paste cursor and click anywhere in the graph window to paste the selected part of the diagram back in the window vi By default the selected part of the diagram will be scaled to print on a single page Note to restore the original flowchart call graph click on the Refresh button i amp ii iii amp iv FERMAT Program Flowchart FMTO01A1 FERMAT Program Flowchart FMTOOIAT Eile View Tools Help Eile View Tools Help FA aia ej BA alol el CD Are you sure that you would ike to del
29. Labels Prompt for User Comments Change User Comments Using this facility is it possible to select the current mark line parameter change its colour and assign labels and user comments When a line is highlighted in the text editor with the Display Fermat Comments selected the Fermat comment line will include the user defined comments Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Li Text Editor FMT001A1 File Edit Track Options MarkLine CodeSlice Help CLOSE RDSOUT 80000430 lt FERMAT gt lt ML gt lt 1 gt lt comment type 1 gt IM R14 R12 12 R13 60000460 lt FERMAT gt lt ML gt lt 0 gt lt gt BR R14 80000480 lt FERMAT gt lt ML gt lt 2 gt lt user entered comment for line type 2 gt LA R4 WREC START OF WORD 80000510 lt FERMAT gt lt ML gt lt 1 gt lt comment type 1 gt CLI 0 R5 C SEPARATOR 80000530 BE L10B YES 20000540 The same facilities are available for setting the colours and labels for marked blocks of code using the Set Current Marked Block option The Mark Line option on the tool bar provides a quick way to select the mark line type to be used for highlighting a line 14 8 Print Function The Workbench provides a print function that will output the entire module or selected text as it appears on the screen including all colour highlights of marked lines blocks and annotated code To print the entire module
30. Page 100 Function Report Tor Project DSA Report Function Types Modules User Macros system Macros Capybooks Entry Points ona Module TOt 1011 Exec 754 mMecabe 89 DYNAM CListing Tot 1698 Exec LO Mccabe 92 calls From R amp LKCKPT Module R amp LEMLAL N Module calls Ta IKIEFFLS Module Cexternal BEGIN System Macro Cexternal j DYNALLOC System Macro Cexternal j FREEMAIN System Macro Cexternal j GETMAIN System Macro Cexternal j IEFZE400 system Macro CExternal IEFZB4D2 system Macro CExternal j IKIEFFDF system Macro Cexternal j INDEX system Macro Cexternal j LINK system Macro Cexternal j SAVE system Macro External BEGINSUB Internal Macro DICBTABL Internal Macro DICBT ABZ Internal Macro ENDSUB Internal Macro KENT Internal Macro SENT Internal Macro SUBINDEX Internal Macro VENT Internal Macro Example Function Catalogue Details Report Version Issued User Guide 138 Status Confidential Val 2008 Software Migrations Limited Software Migrations Ltd Page 101 25 2 Dead Code Details Report This report will generate a text file stored in the Leveli inventory folder called DeadCodeReport txt and launch notepad to display it The report details any dead code candidates found in the project following the Generate Dataflow process The report details module name and the lines of code affected Dead Code Report Thu oct 02 12 29 41 2008 Project c s dsa Module DSAXMEM 242 254
31. Selected Data Item Pointer Position This example shows the Copybook FMT001W1 referenced on Line 614 of the Module FMT001A4 Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 40 Text Editor FMT001A4 FERMAT Macro Copybook Display 1 FMT001W1 This is dummy sample copy book WIOT1 i For explanitory use only WIOT2 LEP S SLES SSS ES ESS SS ST TP TT ET ST TT ST EEE EE WIOT3 WKTOT WZTOT1 WP1 WP2 WNEWDAT1 WNEWAMT1 INTEREST WNEWRATE INTEREST RATE WNEWAMT2 AMOUNT FMT001W1 WXDAT1 CL DATE 1 Message Selected Data ltem Pointer Position 280 18 FMTOOTW1 14 5 View Listing If listings have been used as import to the Workbench then selecting the View Listing will open a pop up screen that will display the original listing the display will start on the line selected in the Text Editor This function is particularly useful for debugging where the user may be required to analyse the object code to understand displacements and lengths of elements The following example shows the original listing when line 180 is selected in the Text Editor for module FMT001A4 Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited sas Software Migrations Ltd Page 41 Migration Utilities Admin Help Find Track Document Options O Page 6 Micro Focus Assembler version 3 0 18 07 21 04 Listing as of 06 16 05 0
32. User__ __Date_ Time DSAUSER Text Editor Ry Coder 03 10 2008 In the above example the module DATAMAN will be removed from the Deleted Entries panel and restored to the lock table When the administrator has completed the list of lock table entries to be removed pressing the OK button will execute the command The Administrator can reset all the locks for a project by selecting the Reset Repository Lockout which will display a confirmation dialogue box as below the administrator must select the YES button to proceed with the process FERMAT Workbench Reset Repository Lockout Continue The Reset Workbench option is available to reset the Workbench s temporary control files in the event of unplanned or abnormal termination of the Workbench which would leave these temporary in an unknown state Version Issued User Guide 138 Status Confidential Val 2008 Software Migrations Limited Software Migrations Ltd Page 116 The symptoms encountered where it would be necessary to reset the workbench is where no users can start a new function in the Workbench the Workbench appears to hang Resetting Workbench will reset the temporary control files and users can continue as before When executed by the administrator the Reset Workbench will display the following confirmation dialogue box FERMAT Workbench LD FermatWorkbench Reset Version Issued User Guide 138 Status Confidential 2008 Software Migra
33. Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Sara Software Migrations Ltd Page 164 36 Feedback and Support Your comments and suggestions are very welcome as user feedback is the essence of a quality product If you need any assistance while evaluating the Workbench or would like to comment on the product please contact the SML Support team by email Support enquiries support smltd com All other enquiries enquiries smltd com The FERMAT Workbench incorporates the licensed product Graph Editor Toolkit copyright 1992 2000 Tom Sawyer Software Berkley California All rights reserved Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd
34. Workbench Administrator can import additional modules into the project by first switching off the read only indicator importing new modules or listings as required and then re enabling the read only indicator Alternatively periodic importing of new and updated source listings macros and copybooks can still be performed on a read only project using the Fermat Workbench Batch Processing facility Version Issued Status Confidential 2008 Software Migrations Limited User Guide 138 Software Migrations Ltd Page 84 A read only project will allow modules to be viewed and will allow the use of the Data Tracker and code slicing facilities to identify scope and impact of changes The information gathered can then be used to create a sub project containing the modules identified This sub project can then be used to perform any required detailed analysis since it will not have the read only indicator set Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 85 23 Business Rule Extraction This process is only available when assembler listings with all macros fully expanded are imported into the workbench The use of full assembler listings enables the Import Listings process and subsequent Generate Dataflow process to perform sophisticated Dataflow and Control Flow analysis of assembler modules to understand how the assembler actually works This process ge
35. and the Text Editor so that you can see both In the Editor Clear All Marked Lines F6 and Clear All Return Points F12 Text Editor FMT001A1 Edit Track Options MarkLine CodeSlice Help e RMODE 24 Ba ea s Help STM R14 R12 12 R13 IR R3 R15 USING FMT001A1 R3 R13 WSAVE 4 R14 WSAVE R14 8 R13 R13 WSAVE DDIN INPUT RDSOUT OUTPUT R10 GETREC READ FIRST RECORD LAB110 R10 GETREC READ NEXT RECORD RS WCLC1 INDEX WORD CHANGED WLAST 1 0 R4 LAB120 NO RDSOUT WPRT YES WRITE PRINT LINE WPRT C CLEAR PRINT LINE WPRT 1 79 WERT Re WERT ADDRESS PRINT LINE Re 2 R5 RE SKIP OVER WORD LAB130 a Re C ADD SEPARATOR ee RE 1 RE INDEX OVER SEPARATOR TEE dol R7 WMVC2 STORE PAGE NUMBER STORE TASI Message Selected Data Item Pointer Position From within the Text Editor select a line right click and choose Show Line in Flowchart from the context menu The Program Flowchart will centre on the node that contains the selected line From within the Program Flowchart with the select cursor double click a flowchart node The Text Editor will display the first line of code in the selected node Alternatively right click ina Program Flowchart node and choose Show Line in Editor Version Issued User Guide 138 Status Confidential Val 2008 Software Migrations Limited Software Migrations Ltd Page 54 15 2 Printing from the Program
36. be processed will be placed in the lock to prevent others Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 113 checking out the module in update mode until the process has finished at which time the locks will be deleted Selecting View Lockout Table if available will present the user with the following dialogue box Lockout Table Module Function User Daes Tme DYNAM Text Editor 4 Programmer 03 10 2008 10 55 01 DSAUDAT Batch Generate Dataflow Anne Analyst 03 10 2008 16 03 45 DSAUSER Text Editor Ry Coder 03 10 2008 16 06 49 ICHRIx01 Batch Generate Dataflow Anne Analyst 03 10 2008 16 03 45 IEFU83 Batch Generate Dataflow Anne Analyst 03 10 2008 16 03 45 RXLKMAIN Easy Data Tracker REMOTE2 03 10 2008 16 05 26 RXLKPROC Easy Data Tracker REMOTE2 03 10 2008 16 05 26 RXLKPWUP Easy Data Tracker REMOTE2 03 10 2008 16 05 26 RXLKAYUP Easy Data Tracker REMOTE2 03 10 2008 16 05 26 RXLKSECU Easy Data Tracker REMOTE2 03 10 2008 16 05 26 RXLKPURG Batch Generate Dataflow Anne Analyst 03 10 2008 16 03 45 Deleted Entries Module Function User Dae Time The Table displays the contents of the project lock table providing details of the module name the user id who has locked the locked the module it also displays the date and time the module was locked out As a normal user no other functionality is available within the Admin menu if selected a warni
37. cet eee reee dc Ere E acu ted Ea EA cheat dawdeeeadeesbeddesdenexe 130 Si Rec SUUN eeeeer eee see or E er eee ree eee eer ee 130 31 4 Life Cycle Example iicicisc0 022 occ pccesiees eens acelin tetew edie ade duatdawnededceadneneds 130 SM MUN ccs Be ea eee Ee 133 Batch Import POG CSS NG i teicininns canenicresanesnenewarionrsanencienacnauenewerauenane 134 Workbench Deployment cccsssseeeseeeeeeeeeeeeseeeeeeeeeeeeeeeeeeeeneeeenneees 136 Understanding Dataflows amp Controls sseeeeeeeeeeeeeees 141 34 1 Whatis a Datahow a cciciscicctecisoeecdsaxececas enteentubucamauorthereademsenucedaiess 141 34 2 What is a Control dependency ccceceeeeeseseceeeeeeeeeeeeeeeseneees 141 34 3 Example ee eee ee ee eee eee reer 143 eo RM 6211 e cee eS eRe ST nee ery 145 34 5 MVM isc she tere wccalareett aaae rre E ar EEEa A REEE TEE 155 34 6 Example 4 ccicrisiieriii eanais ips eeta rania 157 34 7 Example os cect se ceoes cecee ce seec oes ccs wre ice oes inina aniren E aiei riB EEE 159 34 8 Example Orren oe e a a 161 Supporting Different Assembler Languages cccccsssssssseeeee 163 Feedback and Support eicsitsscisntaenicscisniaaninanstaneeenviiniaaneaantiendantncwens 164 Status Confidential 2008 Software Migrations Limited Page iii User Guide 138 Software Migrations Ltd Page 4 Key to standards used within this document Normal descriptive text Important Term Emphasised words
38. import the Fermat Workbench will scan all the modules macros and copybooks and establish linkage between these entities the Workbench will determine that a module calls certain macros and that macros can call other macros or modules but cannot determine which module is actually called as the macro assembler language is conditional When listings are used as import using the PCONTROL GEN MCALL ON compile directives all macros are fully expanded including nested macros As part of the import process the FermaT Workbench scans the listings searching for linkage between modules in the macro expansions and populates the repository with this information providing a complete linkage map of the assembler application Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Lt Page 18 8 Delete Functions Once a Fermat Project has been created and the repository populated with the imported Assembler source or listings macros and copybooks the user can remove unwanted functions from the project by deleting functions Select Tools Delete Functions from the main menu on the Workbench The Workbench will display the following dialogue box Delete Functions Functions Delete Functions SysMac CALL UstMac DXPUT SysMac CLOSE 5 SysMac DCB UstMac DMAC UstMac DMACOI UstMac DMACO2 UstMac DXPUT AsmMod FMTO0140 AsmMod FMTOO1AT AsmMod FMTOOIA2 AsmMod FMTOO1A3 A
39. inventory reports together log and error files generated by the import process UserName a folder is created for each user to contain the intermediate and temporary files for controlling such things as flowchart highlighting and function and data catalogue details Level2 is a top level folder containing information generated by the fermat2 function of the workbench the following details the subfolders BRE the folder contains details of the business rules identified and stored by users in the workbench dataflow this file contains the dataflow files created by the generate dataflow functions and is used to identify code slices and auto generate business rules work is a debug file for any modules which fail to transform successfully using the generate dataflow process and is used by SML to isolate problems Tracker contains information used and generated by the Batch and Easy Data Tracker process Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 120 30 Customising the Workbench The Fermat Workbench uses several tables to improve the quality of the information produced from the scan process Some of these tables can be customised by the user If these tables are not customised then the information displayed by the tools will not be complete For example If the code uses a macro USRMAC1 to call external modules then if the tabl
40. it s already there and we don t need to add node E to the control dependency since it is not a decision point and cannot therefore have any further dependencies Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd A ved y B X 3 IF Y gt 0 C D y E PRINT X Page 153 The results of the forwards dataflow control dependency slice will include nodes C D and E This gives the following slicing results for combined slices from each node DF CD DF CD DF CD Start B W F W Both Node A CDE CDE B E CDE C A DE ADE D CA E CAE E DCBD DCBA Version Issued Status Confidential 2008 Software Migrations Limited User Guide 138 Software Migrations Ltd Page 154 Gathering the results from the dataflow slices control dependency slices and the combined slices gives the follow full set of results DF DF DF CD CD CD DF CD DF CD DF CD Stat BW FW Both BW FW Both BW FW Both Node A C C CDE CDE B E E E CDE C A A D D A DE ADE D E E G CA E CAE E DB DB DCBD DCBA The effect of the criteria expansion in the combined slice can clearly be seen in this table The combined slice consistently produces more results than the other types of slice Version Issued Status Confidential 2008 Software Migr
41. items have been selected a Global Scan can then be performed against the Assembler source listings all data items found are highlighted for use in the text editor and flow charter the impact of a change can then be easily identified and quantified The Batch Data Tracker is invoked from Tools option of the main menu select Batch Data Tracker as below FERMAT Workbench DSA File BEHS Options Business Rule Extraction Export Reports ai Function Catalogue a Function Call Graph Delete Functions Regenerate Repository Easy Data Tracker gt Batch Data Tracker gt Clear Tracker Files Inventory Report Close All Run Data Scanner Perform Global Scan Assessment Report The first requirement is to Run Data Scanner Select Run Data Scanner Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 62 This starts a process that parses all the assembler modules in the project and populates the Access tables with the data items and any associated comments This only needs to be rerun when new or updated modules are imported so the option will be disabled until a run is required Once the Data Scanner has completed select Tools Batch Data Tracker Configure Seek Tables from the drop down list as before You will now be presented with the Configure Seek Tables Access Screen as below W FERMAT Seek Table Utility v3 1 C dsa
42. may not be immediately apparent to the developer The Business Rules Extraction processes are selected from the main menu bar as follows FERMAT Workbench DSA File Tools Options S T uea Sa Import Listings Batch Generate DataFlow Batch Reset Source File Assessment Report AutoGen Business Rules The following is a description of the options available 23 3 Import Listings Import Listings this process is used to import the assembler listings as detailed in section 7 2 Importing Assembler Listings 23 4 Generate Data Flow Generate Dataflow this is the process of representing the assembler code in WSL applying the transformations and performing the Dataflow and control flow analysis required for identifying dead code performing code slicing or extracting Business Rules Selecting this option will generate the Data flow and Control Flow analysis tables for the currently selected module 23 5 Reset Source File When using Assembler listings as import to the workbench two copies are kept of the listings One the current is used to mark highlights and annotations etc and the other is the original listing This process is used to reset the current selected module back to the original Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Lid Page 88 listing resetting it and therefore losing any highlights or annotations For a read only project only the hig
43. provides details of which hits where found in each module and the reason for the hit Now view the affected modules in the text editor to see the hits highlighted in the source Close the reports Open the Function Catalogue Double Click on the Module DSAUSER to make it the active module Open the Text Editor Click on the source in the Text Editor Press Shift F8 To find next marked line Shift F8 will find the next etc Right click and select show in Flowchart The flowchart will now be started and centred on the highlighted code Perform the same on the module RXLKPWUP and ZICHO01 The Batch Data Tracker will locate highlight and report on the searches detail the hits in each module and provide an assessment of the work that would be involved in making a change the workbench will provide a more detailed assessment when the Batch Data Tracker is used in combination with the Business Rules Extraction batch BRE Processing detailed later in this guide 18 2 Clear Tracker Files This process will clear any tracker files held in the projects repository this option is used in conjunction with creating sub projects described later in this manual Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 67 18 3 Scan Macros Copybooks This option is only available for projects that only contain Macros and Copybooks which are used in the Options Project
44. string to the search list in the large window There is no limit to the number of fields to search on Once the search list is complete Run Global Scan this matches the search criteria against the source modules and highlights the hits as with the Batch Data Scanner then run the assessment report as before The Easy Data Scanner is used when programmers know exactly what fields they wish to search upon and for improved performance but for increased functionality use the Batch Data Tracker Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 70 20 Master Projects and Sub projects The use of Master and Sub projects provides a convenient process for managing the Workbench projects in a system A Master project can have any number of Sub projects associated with it the benefit of the Master Sub project relationship is that any changes to the Master project are also replicated in the associated Sub projects As an example Master project ABC has 2 Sub projects which have been created called DEF and XYZ If we have a new or updated module that requires importing into the workbench the user only needs to import the module into the Master Project and the Workbench system will automatically import the new or updated module into the associated Sub projects and update their repository If the three projects ABC DEF and XYZ were not designated as Master Sub projects the
45. tables and reports have been generated and prompts the programmer or analyst to run the Global Scanner 18 1 The Global Scanner The Global Scanner uses the internal tables generated to identify and highlight the hits of the search in the assembler source for use in the text editor or flow charter Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 66 Close the Configure Seek Table Screen by clicking on the close x button Select Tools Batch Data Tracker Perform Global Scan The Global Scan performs two functions as stated it marks highlights the source for use with the text editor and flow charter it also generates the data required for the Assessment Report Select Tools Batch Data Tracker Assessment Report The browse for folder dialogue box appears select the project folder Projects DSA This process will now generate the Data Change Impact Assessment Reports The first report is a summary report detailing the number of hits number of modules and total lines of code affected The second report Module Summary by Name details number of hits in each module total and executable lines of code and complexity of the module The third report Module Summary by Hits is similar to the second report but sorted by number of hits and includes a percentage of the executable lines of code affected The fourth report Module Hits Detail
46. to Previous Marked Block Shift F7 Go to Next Marked Block Shift F8 000174 9 17 01 Listing as of 02 06 04 13 48 OPERANDS Set Return Point F9 000178 Go to Last Return Point Fil 0 1 Clear All Return Points Fi2 Clear All Highlights 000180 DS OH 4 Message Search Item Pointer Position 173 0 The Find and Track enable searching for stings and finding and marking data variables as in the Text Editor Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Saas Software Migrations Ltd Page 44 The right click function when used in the View Listing will display the following options FERMAT Listing Display FMT001A4 Find Track Document R15 WP1 00016A 140 DS OH 00016E 0700 142 CNOP 0 4 000174 00000174 144 MFI0021 EQU Focus Assembler version V2 5 19 09 17 01 Listing as of 02 06 04 13 48 DATA ADR1 ADR2 LINE LABEL OP OPERANDS 000178 41000001 000001 146 LA 0 1 000180 152 DS oH 000180 153 0 4 000180 45F03188 000188 154 BAL 15 8 000184 00000000 155 DC V FMT107 000188 58FF0000 000000 156 L 15 0 15 00018C OSEF 157 BALR 14 15 00018E 158 USRMAC2 NAME FMT108 00018E 58F039E8 0009E8 159 L R15 V FMT108 000192 47F031A0 0001A0 160 B A0024 ee A ere menr 4i View Source 4 Jei E Mark Block of Lines Message Unmark Block of Lines Search ltem Pointer Position Goto Label lt A0024 gt Sele
47. use the Print Formatted function from the drop down list on the File option on the Text Editor Menu Bar As below FERMAT Workbench PROJO1 FMT00140 FMT001A0 SEE Edit Track Options MarkLine CodeSlice Help R12 12 R13 R15 J10140 R3 WSAVE 4 WSAVE S R13 Ris WSAVE ZAP WTOTAL P O Message Selected Data Item Pointer Position Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Saas Software Migrations Lid Page 48 To print selected text select the lines to print using the Text Edit left mouse key then click the right mouse key as below FERMAT Workbench PROJO1 FMTO001A0 ss Rule Extraction HEr File Edit Track Options MarkLine CodeSlice Help STM R14 R12 12 R13 R3 R15 G FMTOO1AO Show Line in Flowchart Cut Copy Print Formatted Selected Text Mark Block of Lines Create User Annotation r Annotatior Show Macro Copybook View Listing CREDIT TRANS T Message Selected Data Item Pointer Position This process will generate a HTML file in the project level1 Username directory called module name htm which is then printed This file can then be used to be printed or emailed using standard facilities Once you have clicked on Print Formatted or Print Formatted Selected Text a printer selection dialog box will appear Version Issued User Guide 138 Status Confidential 2008 Software Migrations Lim
48. wide processes such as executing the Data Scanner will have performance degradation as the required data files need to be transferred over the LAN for execution Version Issued Status Confidential 2008 Software Migrations Limited User Guide 138 Software Migrations Ltd Page 137 Care should also be taken over where managed sub project reside as depending on the size of the Workbench Projects large amounts of data may require transferring over the LAN which would have impact on other users of the LAN infrastructure The third option for deployment of the Workbench is by deployment via Microsoft Terminal Services These environments work by having multiple windows sessions running on a server and only sending screen images key strokes and mouse clicks over the network also referred to as thin client computing In order to support multi user sessions on the same server several enhancements have made to the workbench to support multi users by making the default actions such as the text editor read only If users want to make amendments to modules they must check out the module for update This locking mechanism is implemented at a project or sub project level any processes that require access to checked out files such as importing new files impact assessments etc will be suspended and notice given as to who has checked out the file and when Once all files required for the process are available in the projects the process can th
49. 9 51 LOC DATA ADRl ADR2 LINE LABEL oP OPERANDS Search Item o Pointer Position 190 57 RL5 FNT1O6 V LITERAL USER MACRO LINKAGE USRMAC FMT107 Message Selected Data Item Pointer Position As can be seen from the above example user comments appear as in the Workbench Text Editor in green whilst lines generated in the listings such as page headers etc are displayed in Blue text By default all macro expansions lines are displayed and colour coded if required the user can turn off the display of macro expansion lines by using the Options facility on the View Listings menu This would result in following display Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Saas Software Migrations Ltd Page 42 J Ciel Find Track Document Options 00017A 58F039FC 0009FC 145 R15 FMT1O6 V LITERAL 6 Micro Focus Assembler version 3 0 18 077 21 04 Listing as of 06 16 05 09 51 LOC DATA ADRI ADR2 LINE LABEL oP OPERANDS 156 USER MACRO LINKAGE 000194 157 US RMAC1 FMT107 000142 165 U RMAC2 NAME FMT108 0001LAE 0000 169 000180 00000000 169 DC A0 OOO1BA 58F039F4 0009F4 172 L R15 FMT109 O001BE 173 USRMAC2 RET N0O NAME R15 Message Search Item Pointer Position L R1S FNT1O6 V LITERAL USER MACRO LINKAGE Message Selected Data Item Ja Painter Position 7 14 6 Analysing a Listing To aid programmers in comprehendin
50. DRACEE F4 ACEE ADDR Unmatched FRXLKMAIN ADDASSVT F4 RXSS SSVT ADDR Exclude Entry Record g ne i oeg bak of 1279 Gans Sia New Entry Field Name Type Field Comment Description etx R0 POINTER INTO PARM STRING am mm Seek Status Seek Status Comment Defined in Module lrmatched E Naw Ab Seek Table Current Entry The screen is divided into 2 sections the left hand pane gives details of the contents of the Access tables The main panel of which displays the detailed information of the items in the tables which are to be searched Searches can be carried out against the whole project or selected individual modules within a project by choosing the appropriate settings in the top 2 selection boxes As below Version Issued User Guide 138 Status Confidential Val 2008 Software Migrations Limited Software Migrations Ltd Page 63 Apply Across Module BERUF di DSAUSER Display DSAXMEM ICHRIX01 ICHRIX02 Using the display selection list the user can either list ALL the data items or only those that MATCH the selection criteria those UNMATCHED or those items EXCLUDED The listed items can be sorted by using the next selection list see below O G ad Display Fields by Name Fields by Name Fields by Type Fields by Status Fields by Comment Fields by Module The lower section of the left panel details information on any selected data item in the list providing details of the field na
51. ETP DSASETP DSASETP DSASETP DSASETP Directory ciypsa leveld listl No Exclude Data Report Title st i st SE st st Ist Ist i 21st i Ist i Ist i Ist lst Password Search PASSWORD CRASSWORD CRASSWORD CRASSWORD CRASSWORD CRASSWORD 7 CPASSWORD CPASSWORD CPASSWORDS PASS PASSWORD CPASSWORD Match Case NO Exact Match Yes Pah agag ad Pd 7000180 D207 AOSC CSEE 0005C 005EE POOOL8s 4420 C190 oo190 POOOLS9O D200 aic 1000 Go05c 0000 333 7000332 D207 2190 405C 00190 o005C File C Password Scan List txt 10 SYNTAX DSASETP USERID PASSWORD 12 TSO COMMAND TO XMIT PASSWORD CHANGE TO 17 A Q2 MESSAGE OTHERWISE IDENTICAL TO ALTU 19 THIS COMMAND DOES NOT ALTER THE PASSWORD 32 COPY PASSWORD TO ALTERNATE IN CLEAR FOR 163 EXTRACT PASSWORD FROM COMMAND PARSE 171 M C PASSWORD BLANKS cL 173 Ex RZ MPAS Mo 175 MPAS MVC PASSWORDCO J OCRL co SET UP RXSSPWGO PARM AREA USERID CURR PASS 338 MVC RXPWEWP PASSWORD SET NEW Pd 660 IKINAME PASSWORD SUBFLD IKISEPW Note the title Password Search at the beginning of the report On each matched line in the report it gives the file name and the line number and what string it was matched against Version Issued Status Confidential 2008 Software Migrations Limited User Guide 138 Val Software Migrations Ltd
52. LUTION L Terminal Servers 0000 Directory Server License Sever In this solution we have a farm of Terminal Services Servers Each server will have users allocated to it and will run the workbench the router is used to direct certain users to individual Terminal Servers The License server is mandatory for Windows 2003 and ensures users are licensed to run the software Users can be licensed per device or more practically can be based on concurrent users The directory server is used to ensure each user only runs a single session and also that in the event of a connection failure will be reattached to the same application once the connection is re established The next diagram depicts a large organisation with a global presence which have many remote workers Version Issued User Guide 138 Status Confidential Val 2008 Software Migrations Limited Software Migrations Ltd Page 140 TERMINAL SERVER FARM INTERNET SOLUTION o L Terminal Servers Directory Server Lice
53. MAT gt lt SB gt lt 1 gt lt 4 gt Y Message Selected Data ltem Painter Position Ane Wg fd s 23 11 BRE Assessment Report This report can be executed following the Batch BRE process section 23 10 this will provide 2 reports which compliment the Impact Assessment Report and detail not only the number of Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Lid Page 92 data hits in Modules but also the number of BRE hits found as a result of the bi directional code slicing performed in the Batch BRE process 23 12 AutoGen Business Rules A very powerful feature of the Workbench is the ability to perform backward code slices on Data items to identify the code executed that generates the current value of the data element During the Generate Dataflow process the workbench generates the Dataflow and Control Flow analysis tables It also generates an rpt file for each module processed which is stored in the Dataflow Folder of the Level2 of the projects data structure This file contains a number of elements required in software re engineering projects it also holds details of all data variables both Csects and Dsects that are updated in the Module The AutoGen Business Rules process will perform backward code slices on the selected modules for every data element that is updated and will store these business rules in the Business Rule Reposit
54. OUTINE O name from label SASSCALL n name from nth positional parameter SRCALL ROUTINE name from keyword parameter Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 126 Note data entry starts in column 2 30 5 udata tab This table contains macros which should be tracked through the Text Editor Data Tracker The Text Editor Data Tracker has a facility to track through data items by name By default all macros will be ignored If a macro uses data names as a parameter then they may be included in this table so that the Data Tracker will include them in the search 30 6 ulinkage tab This table contains information to define macros which call other external modules or internal sub routines Without customization then none of these calls will be identified Entries are defined as follows type data where type 1 for call to external module and type 2 for call to sub routine 1 SACALL n name from nth positional parameter 1 BEGIN MOD name from keyword parameter 2 SUB 1 sub routine call 30 7 uopcodes tab This table contains information for instructions macros to be ignored by the scan process They will be classed as standard instructions and no statistics will be gathered 30 8 UserMacro tab When the scan process is examining a file to determine if it is a valid Assembler file and if the module consists of only user macros then the file would not normall
55. Settings of the Workbench This facility allows for multiple projects to share Copybooks and Macros which reduces the size of the workbench repository and also aids on going management as only one copy of the Macros and copybooks are required to be stored Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 68 19 The Easy Data Tracker The Easy Data Tracker is a simplified version of the Batch Data Tracker and is invoked from the main Workbench menu bar as follows FERMAT Workbench DSA Function Catalogue s Function Call Graph Text Editor Text Editor Update Program Flowchart Data Catalogue Delete Functions Regenerate Repository Easy Data Tracker Batch Data Tracker Two options are available the Run Scanner and the Assessment Report The Run Scanner presents the following dialogue box x Type String nia Y Add Comment Field Name Remove Remove All Close gt Run Global Scan Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 69 The options available are to search within the comments or data name of a project for elements that contain the string being searched on same as wild cards at the start and the end of the string The comments being searched are those on the same line as a data item Press the add button to add the search type and
56. Source This is required when the Workbench is to be used as an integral part of the Applications Life Cycle and where users want to include the FermaT comments and mark ups made in the Text Editor and store these as comments in the original source of the application See section 30 for further details of using the SML Workbench in the Application Life Cycle Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Lid Page 15 The original Assembler source files can be imported at the same time as the Assembler listings by ticking the Select Source Folder option and navigating to the appropriate folder As shown in the following example FERMAT Workbench FERMAT PROJECT File Tools Options Business Rule Extraction Export Reports Migration Utilities Help sjal 5 171 ll Import Listings xj Select Listings Folder c DSA Listings E Select Source Folder Iv c DSA Source E Select Macro Folder so OE Select Copybook Folder r oK In the above example the listings and source for the DSA project are imported at the same time Once the import process is completed the Workbench will display the following message box FERMAT Workbench DSA FERMAT Workbench Exi Fie Tools Options Business Rule Extraction Export Reports Import of Listings amp Original Source Complete See c DSA evel1 inventory OriginalSourceReport txt a This messag
57. Source from 3 above 9 Data held in Workbench repository and available for use in the work bench The programmers and analysts can now analyze any modules using the Workbench for marking lines marking blocks and creating user annotations to aid comprehension 10 The Workbench Export process will merge the generated Fermat comments with the original source 11 The Original source should be changed to Update on the SCSM and the newly commented source should be copied to the Mainframe Libraries Note Amendments to the code can be carried out in the Workbench or using the customers preferred editor Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 133 31 5 Benefits The Workbench and the annotations generated from detailed analysis are encompassed in the overall software life cycle Therefore the analysis carried out on a module by an individual programmer or analyst is immediately available to all staff thus promoting knowledge sharing and raising all staff comprehension of the system Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 134 32 Batch Import Processing The FermaT Workbench provides a facility to allow unattended importing of new and updated source listings macros and copybooks into the project repository This facility works both in normal FermaT Workben
58. U 80000120 OPEN FMTOOLA3 CSECT 80000130 PUT STM R14 R12 12 R13 0000140 amp CLOSE IR R3 RLS 80000150 amp GET USING FMTOO1A3 R3 80000160 amp DCB ST R13 4 80000170 amp DXPUT LA R14 SA 80000180 5 COPYBOOK FMTo wI PROGFMT1 Message Selected Data Item WSAVE Pointer Position 17 23 WSAVE Notice that the Text Editor is Assembler aware Comments are shown in green The Text Editor is aware of the difference between Data Item symbols and non Data Item symbols useful for Data Tracking see next section Double click a Data Item in the Text Editor e g WSAVE See that it is shown as the Selected Data Item in the bottom left of the editor window Message Selected Data Item WSAVE Now double click a non Data Item such as an opcode label or comment See the message at the foot of the Text Editor informing you it is not a data item The currently Selected Data Item is not changed 14 1 Data Tracking in the Text Editor The Data Tracking facilities in the Text Editor build on the strength that the editor can distinguish between symbols in the source that are Data Items and those that are not The Data Tracker consists of v a collection of one touch find facilities that specifically work on Data Items v the facility to mark lines of source that need further work investigation v The facility to keep tabs on where you have been and where you still need to look thr
59. User File Processing None Scan Utility Trace File Data Get Data Select Functions Type Function al ABEND ATTACH BEGIN BEGINSUB CALL CALLTSSR CAMLST CATALOG CHECK CLOSE CLSDST CVT MAT ARAARKI Sub Project Functions The bottom left panel will display all the functions available in the project By right clicking on the Type field for a function provides the following options Type Function SysMac SysMac SysMac IntMac SysMac SysMac Select Functions Select CALLTSSR Select will select the Function for further processing Locate will show the following dialogue box Version Issued Status Confidential 2008 Software Migrations Limited User Guide 138 Software Migrations Ltd Page 76 Locate Function x Function Name This provides a quick way of navigating the functions within a large module enter in the first character s of the function you are searching for and the Function list will be adjusted accordingly Once the required functions have been selected the user must declare the dependency either what the function calls or what it is called by Create Sub Project Create Option From Data Tracker From Call Graph From Dependencies C Select Functions From User File x Sub Project Location CADSA Sub projects as Sub Project Name DP Process Dependencies IV Called By T Calls
60. a module in Update Mode that is already checked out by another user the following message will be displayed FERMAT Workbench xi N Module is curently being updated by another user Module DSAUSER Function Text Editor User REMOTES1 Date 27 10 2005 Time 10 12 00 The message details who has checked the module out for updating together with the time and date to view all modules currently locked use the View Lock Table command See section 26 Admin for further details Select a Module such as FMT001A1 in Proj01 from either the Function Call Graph or the Function Catalogue Open the Text Editor Update from the Workbench Toolbar Tools Text Editor Update from the menu Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Lid Page 33 If you performed the above actions then the Text Editor will have opened the source for whichever module you selected as the Current Module FERMAT Workbench PROJO1 FMTOO1A3 File Tools Options Help wli n GLE 2 FERMAT Function Catalogu ol Ea Text Editor FMTO01A3 File View Help File Edit Track Options Help cl PROJOI E MODULE FMTOOTAG MACRO FMTOOIA1 DXPUT D 80000060 FMTODIA2 MVC WPRT L D D 80000070 FMTOOIA3 PUT PRINT2 PRT 80000080 FMTOOIA4S MVC WPRT WSPACES 80000090 FMT99940 MEND 80000100 5 MACRO PRINT NOGEN 80000110 CA REGEQU REGEQ
61. a ltem Pointer Position 28 22 7 WSAVE Right clicking on the data item WSAVE will display the dialogue box selecting the option Show lt WSAVE gt in data catalogue as above will result in Data Catalogue being displayed focused on the WSAVE Data element as below Version Issued Status Confidential 2008 Software Migrations Limited User Guide 138 Software Migrations Ltd Page 60 FERMAT Data Catalogue FMT001A0 File view Help c FMTO01A0 Data List FMT00140_CSECT Name Type Occurs Lenath R3 wsave Fd tf i Initial Value Child Data Type Occurs Size Initial Value WTOTAL User Guide 138 Version Issued Status Confidential Val 2008 Software Migrations Limited Sa Software Migrations Ltd Page 61 18 The Batch Data Tracker Ensure that the current project selected is DSA for this section of this guide The Batch Data Tracker is a specialist tool within the Workbench and is used to locate and identify data items in a project to assist in estimating the impact of change on a system or for creating a sub project The Batch Data Tracker is a Microsoft Access application in which the assembler listings or source are parsed to generate Access tables containing all defined data items with their associated comments The programmer or analyst searches these tables using the Batch Data Tracker for data items that match the Boolean search criteria Once all required data
62. acking in the Text Eqitor ccccccceeeeeeesssseeceeeeeeeeeeeeeneeeees 33 14 2 Text Editors Shortcut Keys cece cceceeeeeeeeeesenaeeeeeeeeeteneeenaeeees 36 14 3 Right click function in the text eitor cece ceeeeeeeeeeeeeeeeeneeeees 38 14 4 Show MaGro COPY DOOK sic ce cies centre hencten sede ncienieen tit epciebeen dad aeee 39 14 5 View LiIStihg emetic a raaa OERE EEEE 40 This document contains intellectual property rights and copyright which are proprietary to Software Migrations Ltd The work and the information it contains is submitted for the purpose of making a proposal fulfilling a contract or as marketing collateral It is to be treated as confidential and shall not be used for any other purpose It shall not be copied or disclosed to third parties in whole or in part without the prior written consent of Software Migrations Ltd Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited USER GUIDE 138 D0C Software Migrations Ltd 15 16 17 18 19 20 21 22 23 Version Issued 14 6 Analysing a USHA sscacczacccccctscctccatnenencasscctsectnesannudasstdestasatanededdeceadneans 42 14 7 Customising the Text Egor 2i ccsceacertscesondceepsentecicserteedettacddacteaciieks 44 14 8 Print FUNCION sicrscesevens niatisaeaiereiatniacinaeniseeentaeilacad eeen reseni ennt 47 14 9 Export Function in the Text Eqitor ccccceeeeeeeseeeeeeeeeeeeeeeeeeeeees 49
63. ation This file is placed in the Export Folder of the project directory Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 99 25 Reports The Reports option on the main title of the Workbench allows for standard reports to be generated 25 1 Function Catalogue Details Report This report is used to provide a hard copy of the Function Catalogue details it will produce the following dialogue Box Function Report Function Types to Report i Modules v DATAMAN 7 DSASETP DSAUDAT E DSAUSER DSAXMEM Copybooks Iv DSAXMEM2 7 DYNAM ICHPWX01 ICHRIXO1 ICHRIX02 IEFUS3 AXLKCKPT RXLKMAIN AXLKOTUP RXLKPREP AXLKPROC AXLKPURG AXLKPWUP AXLKRVUP User Macros System Macros Entry Points Select All Functions The user can choose to what level of detail the report is to produce by selecting any of the Function Types The User can produce the report for all the modules in the project or just for selected modules Modules are selected using left Click or with Shift left Click to select a block or Control left click to select additional individual modules The report will generate a text file in the Level1 inventory called FunctionReport01 txt and will launch notepad or the associated text file viewer to display the report Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd
64. ations Limited User Guide 138 Software Migrations Ltd Page 155 34 5 Example 3 Y 4 A x lt o wA X 3 IF X gt Y THEN Z 2 ELSE Z 1 END IF PRINTZ PRINT Z Perform a backwards dataflow slice on variable Z From Node E will identify Nodes C D From Node C will identify Nothing From Node D will identify Nothing Perform a forwards dataflow slice on variable Z From Node E will identify nothing From Node C will identify Nodes E From Node D will identify Nodes E Perform a backwards control dependency From Node E will identify nothing From Node C will identify Node B From Node D will identify Node B Perform a forwards control dependency From Node B will identify Nodes C D Note There are no other valid control flow dependency starting points Perform a backwards dataflow and control dependency on variable Z From Node E will identify Nodes CDBA From Node C will identify Nodes B A From Node D will identify Nodes B A Perform a backwards dataflow and control dependency on variable X From Node B will identify Node A Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Perform a forwards dataflow and control dependency on variable X From Node B will identify Nodes C DE Perform a forwards dataflow and control dependency on variable Z From Node C will identif
65. can then be used as original source to make enhancements etc 31 4 Life Cycle Example Figure 1 diagram depicting the Life Cycle Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Assembler Source Life Cycle Mainframe functions under Source Control System e g Endevour M Assemble Source using SCM Control pre processor 2 and 3 ae Import Listings 6 Import Source 8 SML Workbench Functions Gerenate Data Flow files Export Process 10 Function Workbench Export Version Issued Status Confidential 2008 Software Migrations Limited User Guide t38 Software Migrations Ltd Page 131 Page 132 It is assumed that the assembler source is maintained on the Mainframe system by a Source Control Management System SCMS such as Panvelet or Endeavour Narrative 1 The Assembler source as filed on the Mainframe System 2 The SCSM 3 Check out the source for read access from the SCSM and assembler as normal using any conditions or pre processor 4 Generated Full Assembler Listings 5 Check out the source for read access In the Workbench 6 Import the Full Assembler Listings into the Workbench 7 Generate Dataflow files for detailed analysis within the Workbench 8 Import the
66. ch projects and also in projects which have been marked as Read only It is useful where scheduled updating of the FermaT Repository is required on a regular basis If updated source listings macros and copybooks are made available in a set of directories from an installation s source control package regular batch runs e g nightly will allow the Fermat project to be kept in step with the source control version In order to use the Batch processing facility a file called startup txt must be located in the software config directory which defines the processing options required This file should contain the following parameters Project Location of Project to update RefreshListings Location of Listings to be imported RefreshSource Location of source to be imported RefreshMacro Location of Macros to be imported RefreshCopybook Location of Copybooks to be imported ExportFolder Location of Function XML files to be exported Note that this will export the entire contents of the project Datascan yes Run data scanner after import Dataflow yes Will run the Dataflow creation only for new and updated listings which have been imported into the project during this session Close yes Close workbench down at completion of batch processing Note that at the completion of the batch process the workbench will delete the startup txt file from the software config directory Example Startup txt file
67. control left click By default none of the modules are selected the Select All Functions tick box can be checked this will display the Call Graph for the entire project Depending upon the complexity and size of the project this may result in large complex diagrams An arrow from one Module to another Module depicts the first calling the second Note that by default Copybooks and Macros are not shown on the graph for clarity but in the View menu Function Types offers you a choice of what to display including copybooks system macros user macros and unknown modules Called Modules which are external to your Project are shown on the graph with red text and with an X while modules which are loaded are shown in a parallelogram Tools Options Business Rule Extraction Export Reports Migration Utilities Hel Sla elr lE lel FERMAT F iojx 2 FERMAT Function Call Graph PROJO1 loj xj View Help File View Tools Help BA anl of p MODULE a FMT001A0 FMTOO1A1 FMTo01A2 FMT001A3 E FMTOO1AS FmT001A5 E FMT001A6 H FMT001A7 FMT200P9 FT01 FMT001A0 FMT102 FMT 103 FMT104 F105 FMT106 FMT 107 FMT001A1 FMT001A2 FMT001A3 FMT i038 FeTit0 Feriti FMT112 goni REGEQU remus XU FMT300 FMT301 FMT302 FMT303 E INNON xz ZL FMT001A5 Note that some organisations utilise a User Macro to call other Modules in place of the sta
68. cting View Source will switch the user back to the Text Editor on the corresponding source line If you are pointing at a label in the listing which is the destination of a branch statement then Goto Label lt xxxxx gt will navigate through the listing and stop at the label in the listing Please note that unlike the Text Editor you cannot save the Listing with the lines marked up the facility for making lines in the Listing is purely to assist in analysis of the listing Closing the View Listing will lose any marked up lines 14 7 Customising the Text Editor The text editor is fully customisable in terms of the colours and the labels used for marking when analysing code Selecting Options from the tool bar will produce the following function list Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Saas Software Migrations Ltd Page 45 Text Editor FMTO01A1 File Edit Track Options MarkLine CodeSlice Help v Retain User Settings Font v Wrap Text v Add FERMAT Comments v Confirm Clear v Indude Code in User Annotations v Disable Source Changed Message v Display Storage Macro Expansions Change Colours Set Current Marked Line Set Current Marked Block Retain User Settings will keep all user setting for colours and labels for future use this is particularly useful for establishing documentation standards Add FERMAT Comments When checked this will add special Fermat comment
69. d DSASETP AsmMod DSAUDAT AsmMod DSAUSER DSAXMEM DYNAM ICHPWX0O1 ICHRIXO1 IEFUS3 RXLKCKPT RXLKMAIN AXLE AX RLI Add to SubProj PXLKPWOP AXLKRVUP ha OK Function RXLKCKPT The user must specify the sub project location or navigate to it using the browse button All the functions in the master project are displayed in the left hand panel the user selects which modules to add by right clicking on the function with the options to add the module to the sub project or to enter a string to locate an entry in the list of modules in the master project In the above example the module RXLKCKPT has been added to Functions to Add list and the module RXLKMAIN will be added Functions can be deleted from the Functions to Add list by right clicking the function name and selecting delete When all additions to the sub project list are complete press OK The Workbench will then import the new functions into the sub project rebuild the repository and run the Data Scanner Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 82 22 Read only Projects By default new projects created in the workbench have update capabilities This will allow any user to mark modules with highlights add annotations change modules and import new modules etc For most installations this method of working allows complete flexibility over the use of the workbench In some c
70. d Sara Software Migrations Ltd Business Rule Documentation Ix Sequence Number 00000001 Module DSAUSER Name ID A programmer Title Free Text Title Description Free Text Description of Business Rule Associated Data Lines Referenced Line Data 452 NDATE 392 AXPWUSER 463 NDATE 392 USERID 393 BLANKS 393 AXPWCURP 394 PASSWORD 394 RXPWNEWP 395 RXPWALTP 395 RXPWNEWP 397 BLANKS 397 ITEM 398 PASSWORK 398 RXPWNEWP j ANNAMAA CI TAI The Sequence number and module name is auto populated by the Workbench the Name ID field is the user logon name but can be over written The Title and Description boxes are free text fields for the programmer to input a description of the high lighted code in business terms Pressing OK will file the information in the Business rule repository Associated Data details the line number and the data name used to produce the code slice Lines Referenced details the lines affected by the code slice s Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 97 23 17 To View Existing Business Rules In the Text Editor select Business Rules from the Menu Bar as above then select View Business Rule List this will then show any business rules already stored for this Module as below Business Rule List 00000001 programmer New Password processing Update Entry Delete Entry Annotate Source S
71. dentify nodes which comprise part of either the dataflow or of the control dependency slice then these new nodes are added to the slicing criteria then the slicing continues in the chosen direction As a result of this dynamic expansion of the searching criteria the combined slice will usually identify more results than the Dataflow and the Control Dependency separately Worked example of backwards combined slice Performing a backwards combined slice on X from node E Current Slicing Criteria Dataflow Field Control Dependency node X E A Y 1 y B X 3 IF Y gt 0 C X 4 D y PRINT X E Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 148 Backwards dataflow from node E finds node D because X is being updated This field gets added to current dataflow criteria already present so no change and this node gets added to the Control Dependency criteria Current Slicing Criteria Dataflow Field Control Dependency node X E D added Now slicing backwards we find a control dependency from node D to node C critical decision point So we add field Y to the data flow criteria because it s the value in the control dependent node and we also add node C to the control dependency criteria Current Slicing Criteria Dataflow Field Control Dependency node
72. ditor Click in the text and press shift F8 to go to the next marked block The following text will be displayed 5 Dead Code Candidates is code that cannot logically be referenced from within the module typical of evolved legacy code and systematic of quick system fixes and patches Detailed information on WSL can be found on the SML web site www smltd com Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 86 FERMAT Workbench NEW DSA RXLKPWUP File Tools Options Business Rule Extraction Help Text Editor RXLKPWUP File Edit Track Options MarkLine CodeSlice Help DID NOT FIND DSAXID SO CHECK USERDATA KEY NOT IN DSA CODE LOOKUD EQU B FOUND2 FOR DSA SKIP USERDATA CHECK lt FERMAT gt lt SB gt lt 9 gt lt blew 5 Selected Data ltem Pointer Position ACAD te As can be seen from this code on line 304 there is a branch to the label FOUND2 and the code between lines 306 and 365 including the labels GOTKEY LENKOK and MOVEID are not referenced in the code therefore this block is marked as a dead code candidate There are other examples of dead code within this module on lines 456 and 476 489 What is code slicing This provides the ability to trace the logic within an assembler module from given start point the Workbench has the facility to perform different types of code slicing Data Flow this analysis wi
73. e been deleted to ensure workbench integrity The repository can be regenerated manually as follows Select Tools Regenerate repository from the main menu on the Workbench 8 1 Importing New Versions of Modules It is common practice for organisations to use version numbering for their functions e g ASM00121 where ASMOO01 is the module name and 21 is the version number the workbench uses the whole function name ASMO00121 in the repository The Workbench supports versioning by using the Version tab file in the Workbench Config directory see Section 30 Customising the Workbench for further details If a new version of ASMO01 version 22 is required to be imported into the workbench to replace the existing Function ASM00121 The user should first delete the function ASM00121 using the Delete Function facility and regenerate the repository then import the new Listing and Source if required of ASMO00122 Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Lid Page 20 9 Inventory Report As part of the process of importing the assembler applications the Workbench automatically collects inventory information of the project To view the inventory of the current project Select Tools Inventory Report from the main menu on the Workbench This will invoke an Access application that will produce a series of 8 reports detailing the Assembler Modules
74. e box shows only those modules that have not got up to date dataflow Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Lid Page 90 files To see all modules regardless of their dataflow state select the Show All Modules box before performing the selection To select all visible functions check the Select All Functions box Then press the Generate Dataflow button to invoke the process 23 9 Batch Reset Source File This resets either all or the selected modules to the original listing the same as Reset Source File see above Selecting this option will produce a dialogue box similar to the Batch Generate Dataflow 23 10 Batch BRE Process Having performed the Global Scan as part of the Batch Data Tracker or Easy Data Tracker process this process will perform a bi directional code slice on all hits of data in every affected module This is then used to more accurately determine the amount of effort required to make a system change it will also highlight all code that is executed which relates to the matched data elements The user is prompted to select which type of bi directional code slice to perform using the following dialogue box Data Analysis Type Title Batch BRE Processing Analysis Type Data Flow C Control Flow C Both Perform the Batch Data Tracker exercise we preformed previously again set the search criteria for a comment co
75. e import process Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 128 These names must be unique Where input names are longer than six characters then a rule must be defined to show which characters are to be ignored Entries are defined as CpbDrop a x y a characters to select programs names beginning with these characters to define default entry X position of 1 character to drop y position of 2 character to drop Optional only required when names are 8 characters Examples CpbDrop AB 5 6 CpbDrop 2 3 Programs starting with AB will drop characters 5 amp 6 all other programs will drop characters 2 amp 3 CpbDrop 2 All programs will drop character 2 30 12 utable tab This table contains definitions of look up tables which should be treated by the call graph as jump tables to external modules Without customization the call graph has insufficient information to determine how to process a look up table to create the links to called programs Entries are defined as follows type module data param end type This is always 1 module module name containing the look up table or first characters followed by an wild card for all modules starting with characters data table name Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Lid Page 129 param positional para
76. e menu or by pressing the Program Flowchart button TE FERMAT Program Flowchart DSAUDAT mA SIL e If you have any lines already marked in the Editor they will be shown marked in the Flowchart Navigation around the Program Flowchart is as for the Function Call Graph i e Scaling the graph using the available options in the View menu Using the plus and minus keyboard keys for zooming in out Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited as Software Migrations Ltd Page 51 Using the zoom cursor second toolbar button to rubber band the area to be displayed in the window Using the Overview Window View Overview Window from the menu or Ctrl Shift O to select and size the area to be displayed in the main window Using the scrollbars cursor keys and or Page Up and Page Down keys to move around Select View Actual Size from the Program Flowchart menu to show the source code in the flowchart nodes more clearly Select View Fit In Window to show the entire module in the flowchart in one window In Module DSAUDAT in the DSA project Notice how the Program Flowchart has picked out the subroutine Parse and it is represented as subroutine calls in the main flowchart indicated as process boxes The user can navigate within the flowchart by selecting a subroutine box and right clicking this will then produce the dialogue box with the Jump to and retu
77. e shows the import process is complete and has automatically produced a report located in the level1 Inventory OriginalSourceReport txt This report details any differences in the listings and source files imported as overleaf Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Saas Software Migrations Ltd Page 16 E OriginalSourceReport txt WordPad Fie Edit View Insert Format Help pela Sia al leel amp Original Source Report Mon Jan 24 15 14 13 2005 Project c DSA Unmatched Files RXLKPREP No original source listing RXLKPROC No original source listing RXLKPURG No original source listing RXLKPWUP No original source listing RXLKRVUP No original source listing RXLKSAVE No original source listing RXLKSECU No original source listing RXLKSTAT No original source listing RXLKTIME No original source listing Total unmatched files 9 Total matched files In the above example the report has identified that several modules were missing from the source file if source was present and there were no listings this would also be reported The original source files for a project can be imported separately from the listings at anytime by selecting Business Rule Extraction Import Original Source from the main menu bar this will bring up the Import Original Source Dialogue Box below FERMAT Workbench DSA File Tools Options Business Rule Extraction Export Reports Migration Utilities Help
78. e to document this in business terms and store this in the Business Rule Repository within the Workbench When generating the code slices the Workbench records the Module data name and line number used to create the code slice and the lines affected in a control file xref_bre txt in the level 2 Dataflow directory Data for a specific module is cleared from this file when a Reset Source is processed for the module This information is stored together with the programmer input describing the business rule in the Business Rule Repository and is used to re highlight annotated lines of code contributing to a business rule when required in the text editor Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 95 23 16 To Enter a Business Rule To create a business rule first run the Batch BRE process as shown in section 23 10 the BRE assessment report will show whether the current module is affected by this If the current module has no hits as a result of the Batch BRE process a warning will be displayed rather than the dialogue detailed below With the module open in the Text Editor select Business Rules from the menu bar the following options appear in the drop down box FERMAT Workbench DSA DSAUSER Select Create Business Rule the following screen will be displayed Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limite
79. e when a project is loaded FERMAT Workbench DSA File Tools Options Business Rule Extraction Export Reports Migration Utilities Admin Help wala 25 173 m E le The Text Scanner is a free text search facility that can be used to search any file on the system for one or more search strings and produce a report of the matched items which is written to the Level1 Inventory folder of the current open project Selecting Text Scanner will display the TextScan dialogue box as below Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Text Scanner Folder C Filename Output File Name Report Title Search String File Search T Exclude String Page 107 Scant ANNs EEEN m o Exclude File T p Search Columns Limit Search Start Col End Col Report Format Case Match Exact Any Ignore C Match Normal C Short Values from any previous use of the Text Scanner will be displayed The user can either select a folder or a single file to search select the appropriate radio button then either enter to location of the file or select the browse button to navigate to the file or folder The user must specify the name of the output file default is Scan01 txt the output file will be written to project name Level1 Inventory Folder and will overwrite any existing report with the same name The tex
80. ed it will be saved in My Documents and will have txt added to it if not entered The Apply Seek Table button is used to execute the search the search is carried out against the access tables not the actual assembler source and is therefore far more efficient Generate an enquiry that will search the entire project for any data associated with the processing for new passwords With the Configure Seek Table screen open if not Select Tools Batch Data Tracker Configure Seek Tables Click within the Seek Table dialogue box and add a new seek table at the end of the file name location add the name test txt ensure you use the txt extension it is a requirement of Microsoft Access Select the radio button Comment In Search String enter new password Select the Contains radio button Click Include Entry Button Click the Apply Seek table Button to execute the search Once the scan is complete Change the Display function on the left hand panel to display Matched Items Using the DSA project you will see 10 items listed Display the Fields by Module to see in which modules the data elements were discovered Click the Export Results to write the selected information for further processing The workbench will then display the following dialogue box xi Seek Tables and Report Files have been generated Invoke Global Scanner from main Workbench Toolbar to apply new Seek Tables to source aa This confirms that the seek
81. ed the user has 3 other options under the User File Process Create Sub Project m Create Option Sub Project Location From Data Tracker CAD SA Sub projects F From Call Graph Sub Project Name r p From Dependencies UF Process C Select Functions User File From User File C Module List tet we Dependencies m User File Processin Called By r None Calls C Scan Utility c Get Data Trace File Data Gat Data Select Functions Sub Project Functions Type Function DATAMAN DSASETP DSAUSER DYNAM Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 79 The None option will not perform any pre processing on the file and expects to find a txt file with valid module names The following example is the txt file used in the above diagram P Module List txt Notepad 0 x Fie Edit Format View Help As can be seen the file contains a simple list of module names any invalid module names e g dummy will be ignored by the process The Scan Utility option will pre process the output file generated by Workbench Text Scanner process in the Short Form report format See section 25 Utilities for further information on the Text Scanner The pre processing will extract the module names from the report and use this as the module names to create the subproject Identified valid module names wi
82. electing the business rule required and right click will produce the drop down list above e Update Entry allows the user to view and or update the stored business rule e Delete Entry will delete the business rule from the repository e Annotate Source will use the information stored in the business rule to highlight the lines of code in the source code that relate to the business rule in the Text Editor the module must be reopened in the text editor to view these highlights To View all the business rules for a project select Business Rule Extraction from the Workbench Main Menu Bar then select View Business Rule List This will produce a screen similar to the above but for all stored business rules and provide the options of Update Delete and Annotate Source Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 98 24 Export Function The Export function on the Main Workbench title bar is used to export the contents of the internal repository to other systems The Function XML Files will produce a file in XML format detailing the contents of the project and the relationships between the various entities This file is placed in the Export Folder of the project directory The Business Rules files will export the contents of the business rule repository in XML format detailing the Module name the title of the business rule description and the reference inform
83. en be restarted A thin client solution is also of benefit to large organisations who would be working over a LAN environment as the introduction of the Workbench would have only minimal impact on LAN traffic no desktop software would be required and the Fermat Workbench software and projects could be centrally managed In addition to central management this solution also provides remote desktop support where support personal can view and take over sessions from users to resolve problems and guide users through applications The following diagram depicts a Terminal Server implementation Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 138 SIMPLE LAN BASED THIN CLIENT SOLUTION Terminal Server A Terminal Services server is attached to the local LAN which runs the workbench software local workstations and laptops then connect via the LAN and execute the workbench software all processing takes place on the server where the data is local and only minimal traffic is placed on LAN The following diagram depicts a Terminal Server solution to support more users on a local LAN infrastructure Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 139 TERMINAL SERVER FARM LAN SO
84. ential 2008 Software Migrations Limited 14 2 Text Editors Shortcut Keys Page 36 The following table shows the keyboard shortcuts available in the Text Editor Key Function Key Function F3 Jump left data item Cnitl L Locate Data item F4 Jump right data item F1 Locate Previous F5 Mark Line with current F2 Locate Next mark F6 Clear marked lines Cnitl F Find Text F7 Previous marked line Shift F1 Find Previous F8 Next marked line Shift F2 Find Next Shift F7 Previous marked block Alt F1 Go to previous code line Shift F8 Next marked block Alt F2 Go to next code line F9 Set return point F11 Goto previous return point F12 Clear all return points Cntl X Cut Alt F4 Close Editor Cntl C Copy Cntl P Previous Line Cntl V Paste Cntl N Next Line Cntl Z Undo Home Start of line Cntl Y Redo End End of line Cntl Left Previous non space char Cntl M Mark block of lines Cntl Right Next non space char Cntl U Unmark block of lines Cntl Up Top of file Cntl Down End of file Cntl n Mark line as type n 0 9 Cntl Home Top of file Cntl Shift n Mark block as type n 1 9 Cntl End End of file Mouse Double click Select data item Single click Remove highlight Right click Popup menu Edit function of the Text Editor The edit facility differs from the tracking facility in that whilst it is still aware of the data elements it enables free string searchin
85. es are not customised the system will not record the name of the external macro so the Function Call Graph will not show the link between the two modules If USRMAC1 is added to the User Linkage table then the scan process will extract the names of the external modules and show them on the various tools If the code uses a macro ROUTINE to define a sub routine header if the tables are not customised the system will not be able to identify any sub routines If ROUTINE is added to the Routine table then the scan process will identify all sub routines and they will be shown on the Function Catalogue Sample program KKK KKK KKK KKK KKK KKK KKK KKK KKK KKK KKK KKK KKK KKK KKK KKK KKK KKK KKK KKK KKK KKK KKK FMTOO1A4 SAMPLE KKKKKKKKKKKKKKKKKKKKKKKKKKK KK KK KK KK KK KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK PRINT NOGEN REGEQU FMTO01A4 XNTR BASE R3 R12 STAKINIT PERFORM FILEOPEN PERFORM INITIAL PROGRAM LINKAGE XEND EJECT FILEOPEN ROUTINE USRMACA TYPE INITIAL USRMACA TYPE OPEN OPEN DDIN INPUT OPEN RDSOUT OUTPUT EXI EJECT INITIAL ROUTINE CALL FMT001A5 MODSTORE STANDARD USRMAC1 FMT001A6 EXIT EJECT EOF1 BR R14 SHOWPATH WSTACK DS 16F Version Issued User Guide 138 Status Confidential Val 2008 Software Migrations Limited Software Migrations Ltd Page 121 LTORG END This module contai
86. ete the selected items from this document FERMAT Program Flowchart FMTOO1A1 File View Tools Help RA all el Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 55 16 User Annotations The Text Editor and Program Flowchart tools share a common Code Annotation Facility This facility allows the user to annotate a block of code from either the Program Flowchart or Text Editor A user may wish to annotate a block of code for a number of reasons such as a reminder to do something like an electronic post it note a warning to a fellow programmer about a difficult piece of code or a way of documenting a piece of code without cluttering the source with comments The Code Annotation Facility works by inserting special FERMAT comments in the source code to mark the start and end points of the block being annotated with a reference to the associated annotation that is held separately in the Project repository see example below lt FERMAT ANN gt lt S gt lt 1 gt lt FERMAT ANN gt lt E gt lt 1 gt Wherever a block of code contains a special Annotation comment the Text Editor and the Program Flowchart will indicate this by marking the lines node in a predefined colour the default is purple 78 PUT RDSOUT WPRT YES
87. form a backwards dataflow code slice on variable X From Node D will identify Nodes C A From Node C will identify Node A Perform a forwards dataflow code slice on variable X From Node A will identify Node C D From Node C will identify Node D Perform a backwards control dependency code slice From Node B will identify Node D From Node C will identify Node D Perform a forwards control dependency code slice From Node D will identify Nodes B C Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 160 DF DF DF CD CD CD DF CD DF CD DF CD Stat BW FW Both BW FW Both BW FW Both Node A DE DE BDECF BDECF B AD AD E E AED AED c F F E E EDA F EDAF D A EB AEB E E AE EBCF AEBCF E DA DA BCD BCD DA BCDF DABCF F C C CEDA CEDA Version Issued Status Confidential 2008 Software Migrations Limited User Guide 138 Software Migrations Ltd Page 161 34 8 Example 6 IF P 1 THEN IF Q 1 THEN Y 1 ELSE Y 2 END IF IF R 1 THEN X 3 ELSE Z 3 END IF END IF PRINT X Performing a backwards dataflow slice on variable X in Node H will identify Node G Performing a backwards control dependency on variable X in Node H will identify nothing Performing a backwards control dependency on variable X in Node G will identify Node E as there is a direct contr
88. g a listing of a module the View listing option allows for certain local editing and marking of lines As in the Text Editor users can set return points in the code F9 key mark individual lines in various colours Cntrl 0 to 9 will mark a line in the colour defined for that marked line type as specified in the Text Editor As below Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Saas Software Migrations Ltd Text Editor FMT001A4 File Edit Track Options MarkLine CodeSlice Help FERMAT Listing Display FMT001A4 Find Track Document ALL R15 WP1 FIL 00016A 140 DS OH 00016E 0700 142 CNOP 0 4 000174 00000174 144 MFI0021 EQU WNI g Page 6 Micro Focus Assembler version V2 5 19 09 17 01 Listing as of 02 06 04 13 48 LOC DATA ADR1 ADR2 LINE LABEL OP OPERANDS 000178 41000001 000001 146 LA 0 1 000180 DS OH Ct i a Message Search Item Pointer Position 188 27 7 CALL FMT105 WP1 WP2 STANDARD L R15 V FMT106 V LITERAL USER MACRO LINKAGE USRMAC1 FMT107 Message Selected Data Item Pointer Position 38 39 STANDARD The Document option on the menu bar allows setting and navigation of marked lines and blocks FERMAT Listing Display FMT001A4 Find Track Document Mark Line F5 Clear Marked Lines F6 Go to Previous Marked Line F7 00016E Go to Next Marked Line F8 R15 WP1 00016A oH Mark Block of Lines Go
89. g of all text including comments labels in the source code itself The context menu of the Edit function Version Issued Status Confidential 2008 Software Migrations Limited User Guide 138 Software Migrations Lid Page 37 A Text Editor FMT001A1 Read Only File f Track Options MarkLine Business Rules Help Cut Ctrl x Copy Ctrl C Paste Ctrl Find Ctrl F Find Previous lt WPRT gt Shift F1 Find Next lt WPRT gt Shift F2 Find amp Mark All lt WPRT gt Go to Previous code line Alt F1 Go to Next code line Alt F2 Mark Block of Lines Remove FERMAT Comments Remove FERMAT Comments amp Highlights Includes standard editing features such as Cut Copy and Paste in addition to the workbench specific find and mark text Selecting the Find function will display the following dialogue box Find String M Exact Match Start Column 0 Find I Case Sensitive End Column o Search Forward C Search Backward Close Mark All The string to be searched for should be entered in the find area the search can be limited to search for strings within certain columns by entering the start and end column positions The Exact Match checkbox is used to search for actual strings When unchecked it performs a wild card search for any strings containing the find string This function also provides the facility for matching strings using case sensitivity Searches can be either forward or backwards Sh
90. hlights and annotations for the logged in user are lost 23 6 View Metrics During the import and dataflow generation process the workbench generates sophisticated metrics on each module the metrics for the currently selected module can be viewed As below WSL Metrics x Raw wSL r Structured WSL Statements Expressions McCabe CFDF Branch Loop 3066 8341 756 3456 693 1720 2030 249 Structural The following is a description of these metrics the Raw WSL is equivalent to the original assembler as represented in WSL and the structured WSL represents the same code after restructuring Statements Number of statements in the module Expressions Number of expressions including sub expressions McCabe McCabe Cyclometric Complexity Basically this is the number of branches in the control flow graph for the program plus one Straight line code has a McCabe of 1 a single binary IF statement has a McCabe of 2 and so on CFDF Control Flow Data Flow metric This is the total number of variable references plus procedure calls and branches gotos Branch Loop The number of procedure calls branches gotos and loop structures in the program Structural A weighted sum of various features in the program for example a simple expression counts as 1 a complex expression counts as 4 a goto counts as 10 other statements count 5 and so on Version Issued User Guide 138 Stat
91. ication of the complexity of the program The complexity code is derived from the value of the McCabe Index McCabe count of branches count of calls to sub routines 1 The current default settings are A 5 10 50 100 200 350 600 800 gt 800 TITOTTIMOYOW Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 125 Thus the bigger the letter the more complex the program 30 2 entry tab This table contains instructions macros which define entry points to the program This table is used to identify calls from another program Without customization some calls will be shown as external calls Table entries are defined as follows CUENTER or CUENTER 0 name from label SASSAVE n name from nth positional parameter BEGIN ENTRY name from keyword parameter Note data entry starts in column 2 30 3 macros tab This table contains information used by the flowchart generator The following user changes may be added XCALL macros which call an external program ICALL macros which call an internal sub routine END macros which end a sub routine EXIT macros which exit the program IGNORE macros instructions for the flowchart process to ignore 30 4 routine tab This table contains information to define sub routine headers Without customization sub routines will not be identified Entries are defined as follows ROUTINE or R
92. ide 138 Software Migrations Ltd Page 136 33 Workbench Deployment The FermaT Workbench can be deployed in a number of ways from a single user running on a PC or Laptop to deployment at a corporate level in a LAN environment or using Windows Terminal Services The simplest deployment is that of a single user PC or Laptop where the Assembler system is imported directly and processed as either a single project or as a master project and several sub projects In this deployment method all functions of the Workbench are available including integration into the Application Life Cycle The second option is to set the workbench up in a LAN environment As depicted below Workbench Deployment Master Sub Mainframe Project Projects In this deployment we have a master Workstation which is connected to the Mainframe for integration into the Application Life Cycle where new copies of the modules are downloaded then imported into the master and managed as sub projects on the system In this deployment users should copy the projects master or sub projects to their local machine for processing Whilst it is possible to logically connect to a project on a remote workstation the performance of some project
93. ift F2 and Shift F1 in the editor itself and can either find the next occurrence or Mark All occurrences Going to the next or previous lines of code can be initiated from the edit menu or using the keyboard shortcut This will position the cursor on the next or previous line that does not begin with an asterisk enabling the skipping of large comment blocks Marking Blocks of code can also be achieved using the edit facility With a block of code selected in the text editor selecting the Edit function on the tool bar will enable these lines to Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 38 be marked as a block of code and automatically highlighted Note blocks of code marked using this function cannot be unmarked using the Edit function they can only be removed using the right click function on selected text 14 3 Right click function in the text editor Simply right clicking the mouse button in the text editor will bring up the following context menu Show Line in Flowchart Find amp Mark All lt WPRT gt Paste Create User Annotation Show Macro Copybook View Listing Select Code Slice Criteria lt 0 gt As no text was selected in the text editor many of the options are not applicable and are greyed out Of those available Show Line in Flowchart is used to centre the flowchart on the line of code in the text editor where the curso
94. igrations Limited Software Migrations Ltd Page 25 FMTO01A0 FMTOOIA1 FMTOO1A2 FMT00143 FMTOO1A4 FMTOO1A5 FMTOO1AG FMTOO1A7 FMT200P9 A Cc A A ec A A A A The sort order for each column toggles between ascending and descending apart from in the Function Name column where it toggles between the original order and ascending order which may be the same in some cases 11 3 Function Details Calls Page The next page the Calls page displays two lists alist of Functions that currently call the selected Function i e Called By alist of Functions that the selected Function invokes i e Calls Called By Call Type 1 FMTOOIAO CALL Function Call Type 1 The details panel on the Function Catalogue can be hidden from display to resize the Function Catalogue and make more room for other workbench tools on the desktop Select View Show Details and deselect it this will display only the Function Tree information as below Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Lid Page 26 FERMAT Workbench PROJO1 File Tools Options Business Rule Extraction Export Reports Migration Utilities Help oa co gafr a z z File View Help Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Saas Software Migrations Ltd Page 27 12 The Function Call G
95. igrations Ltd AUDIT REPORT Project Name DSA Module Details Linkage Details Function DATAMAN fModule calls From RXLKMAIN module calls To OBTAIN user Macro Example Audit Report Version Issued Status Confidential 2008 Software Migrations Limited External Functions 5 24 Total Lines 11327 Exec Lines 7062 Mccabe Index 1050 Function complexity 391 Macro Details Funct ions B Total Lines i 105 Exec Lines i 105 Mccabe Index 1 Function Complexity QO Project Details Functions 33 Total Lines 11432 Exec Lines 7167 Mccabe Index 1050 Function Complexity 391 module Details amp SOURCE gt amp LISTING ame Total Loc Exec Loc Mccabe complex Total Loc Exec Loc McCabe DAT AMAR 146 118 19 T 270 248 20 DSASETF 464 306 42 5 989 785 43 Macro Details oe SOURCE 9 gt ame Total Loc Exec Loc Mccabe complex BEGINSUB 14 14 1 o DICBTABL 15 15 1 Q Missing Functions Modules IKJEFF18 RXLKUSR1L RXLKUSR 2 ReLKUSRS RXLKUSR4 RXLKUSR 5S R amp S SP woo RASS SMGo WERDD Macros ICHEACTH ICHEINTY ITCHETEST ICHPCGORP ICHPwxP ICHRIXP IEZBITS THAAS YT THAAS BE OBTAIN Page 105 Complex 28 6g User Guide 138 val Software Migrations Ltd Page 106 26 Utilities Text Scanner The Text Scanner is selected by selecting Utilities fro the main Workbench Menu bar then selecting Text Scanner note process is only availabl
96. ircumstances it may be desirable to prevent users from making changes within a Project For example where a Workbench Project is defined which will be used as an accurate copy of the mainframe live assembler code base Such a project should be made read only to prevent users from making amendments which would make the project out of step with the mainframe version of the source library The capability to make a project read only is available only to FermaT Workbench administrators and is found on the File menu item from the main Workbench window FERMAT Workbench DSA A61 Tools Options Business Rule Extraction Export Reports New Project Open Project Import Files Export Files Project Read Only Master Project Set Language 1 c DS4 Exit Workbench Once Read Only status is enabled any user opening the project will only be allowed to view modules and information about the project and any mark ups made as a result of data tracker or code slicing will mark up a copy of the source visible only to the logged in user Access to the following functions will be either disallowed or will have functionality changed in a read only project to ensure that the contents of the project are not updated File gt Import Files Disabled File gt Master Project Disabled Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Lid Page 83 Tools
97. ited Saas Software Migrations Ltd Page 49 amp Print General Options Select Printer SFax bed HP LaserJet 2200 Series PCL 6 Qa Microsoft Office Document Image Writer K Status Ready O Print to file Location Comment Find Printer Page Range All Number of copies 1 a O Pages 1 Enter either a single page number or a single page range For example 5 12 Select the printer that you want the print directed to and click OK 14 9 Export Function in the Text Editor The Export function is available as an option on the File function of the Text Editor Menu bar when selected the Workbench prompts the user to select the location where the exported file will be written The Export process is used to merge the recorded annotations and FermaT comments in the assembler listing with the original source imported as part of the Full Life Cycle process When using this function it is mandatory to save the module using the File Save option or to close the module and save the annotations any unsaved annotations will not be exported to the export file Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 50 15 The Program Flowchart The Program Flowchart depicts the control flow of a Module s logic Open the Program Flowchart from the Workbench Toolbar either by selecting Tools Program Flowchart from th
98. ll be displayed in the lower right panel and can then be deleted from the list if required The Trace File Data option is only valid for TPF Assembler systems this process uses the output from the system SST Summary Display execution trace utility and pre processes this text file to extract the module names to be used in the creation of the sub project Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 80 21 6 Adding Functions to a Sub project The user has the ability to add functions to an existing sub project by selecting the File Add Functions from the main menu as below FERMAT Workbench DSA l Tools Options Business Rule Extraction New Project Open Project Import Files Export Files Project Read Only v Master Project View Sub Projects Create Sub Project Add Functions Set Language 1 C idsa 2 C FermatSubys DSA Sub Test 3 C FermatSubys DSA Sub Scan 4 DSA Sub Nine Exit Workbench The Current project must be the original master project which was used to generate the sub project this action will display the following dialog box Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 81 xi Sub Project Location CADSA Sub projects DP Process m Select Functions Functions to Add Type Function AsmMod DATAMAN AsmMo
99. ll identify the where data is being moved stored and referenced Control Flow this analysis will identify the control dependency flows within a module Both Control Flow and Data Flow this will produce different results than simply combining the output of individual Data Flow and Control Flow as a control flow link may will lead to some data flow links which in turn may lead to other control flow links and so on Using the text editor the developer identifies a data element or register to be the start point for a code slice The developer can perform a backwards slice to highlight all the instructions which could have contributed to the value of the variable at this point in the module a forward slice highlights all the instructions which could be affected if the variable is changed at this point in the module A developer can also perform a bi directional code slice of a data element This is a combination of both backward and forward code slicing This will highlight Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 87 all code executed in affecting the data element From the highlighted code the developer and analyst can determine the business rules incorporated within the module This ability to highlight which code is executed is a very powerful facility in assembler since any data element can be referenced in any number of ways such as off set addressing which
100. m number or keyword name where to find the name of the called module end indicator for end of table Example 1 MOD1 CALL_TAB 4 X FF Defines a look up table called CALL_TAB in module MOD1 The fourth entry in each row defines the called module and the terminator for the table contains X FF Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 130 31 Using the SML Workbench in the Application Life Cycle The SML Workbench is designed to assist organisations to comprehend their Assembler systems and improve programmer productivity for maintenance and enhancements This is achieved by providing complete transparency of the code in use detailing relationships between the various entities such as modules macros and copybooks providing detailed system analysis to allow the identification of dead code to enable code slicing and to extract and document business rules hidden in the legacy assembler code 31 1 Objective The use of the Workbench is designed to raise the knowledge and capabilities of all programming staff to share knowledge of the system and to enable staff unfamiliar with code to get up to speed sooner The Workbench automatically documents the system and provides a number of tools within the Text Editor to annotate the code mark up lines and blocks of code in different colours to aid comprehension and the ability to add programmer annotati
101. me field type details of any associated comment the seek status following a search with match unmatched or excluded details of why matched and in which module the match was found See below for example of a matched data item ma rvnnnMm ca ANTM AF MACAO LIMNMATEC CRITMS MT RXLKBRPP F4 ADDR OF PASSWORD UPDATE ENTRY PT of gt Field Name Type Field Comment Description items in list 80 DBPASS DATABASE PASSWORD Seek Status Seek Status Comment Defined in Module Matched password found in comment RXLKSECU Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 64 The following table describes the Data types identified by the Batch Data Tracker Code Constant Type Machine Format C Character 8 bit code for each character G Graphic 16 bit code for each character X Hexadecimal 4 bit code for each hexadecimal digit B Binary Binary format F Fixed point Signed fixed point binary format normally a fullword H Fixed point Signed fixed point binary format normally a halfword E Floating point Short floating point format normally a fullword D Floating point Long floating point format normally a doubleword L Floating point Extended floating point format normally two doublewords P Decimal Packed decimal format Z Decimal Zoned decimal format A Address Value of address normally a fullword Y Addres
102. n the new or updated modules would require importing into each project individually A project can be designated a master project by selecting the File Master Project from the main title menu bar as below FERMAT Workbench DSA 261 Tools Options Business Rule Extraction New Project H Open Project Import Files Export Files Project Read Only v Master Project view Sub Projects Create Sub Project Add Functions Set Language 1 Cridsa 2 C Proj01 3 C FermatProjectysinew sd68 4 C FermatProjectys SD68 Exit Workbench Once the project has been designated as a Master Project any Sub projects created from the project will become Managed sub projects and will be automatically updated when new modules are imported To view which Sub projects are associated with a master project select File View Sub Projects in the main title menu bar Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Lid Page 71 This will display the following information View Sub Projects Master Project C dsa Userid PHILJEFFREY Date 04 03 2008 Time 16 11 27 Project Location seri Dae Tie DSA Sub Scan C FermatSubys DSA Sub Scan PHILJEF 29 09 2008 14 06 43 DSA Sub Test C FermatSubys DSA Sub Test PHILJEF 29 09 2008 14 20 29 This shows the name of the Master project and location Sub project name and location along with
103. n above Annotate Source Ticking this adds a highlight in the text editor for each user macro invocation Pressing OK on this dialogue will generate a text file stored in the Level1 inventory folder called UserMacroReport txt and launch notepad to display it The report shows user macros Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Lid Page 104 invoked from each module in the project and details module name and the source line where it is invoked User Macro Report for Project C FermatProjectys projools Module 5 FMTOOLAG gt FMTOOLAS WDAT A FMTOOLA4 REGEQU REGEQU DXPUT WREP1 DMAC WK WI WL DMACO2 KK REGEQU USRMACA TYPE OPEN ZZMAC1L wTOTlL USRMACL FMTLO USRMAC2 NAME FMTLOS USRMAC4 FMT302 WKTOT DMAC WD WE WF Example User Macro Report 25 7 Audit Report This report will generate a text file stored in the Level1 inventory folder called AuditReport txt and launch notepad to display it it will also generate a csv file with the same information called AuditReport csv that can be opened with Excel The report provides an overview of the project It details lines of code and complexity for each module and totalled for the project along with a list of missing functions and macros and detailed linkage information Version Issued Status Confidential 2008 Software Migrations Limited User Guide 138 Software M
104. n the workbench repository will be replaced with the newly imported version When the import process has completed the Workbench will display the following message box FERMAT Workbench l Import of Source Complete The message box shows that the import process has completed and the repository is ready for use Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited VAA Software Migrations Lid Page 14 7 2 Importing Assembler Listings To import Assembler listings select Business Rule Extraction Import Listings from the main menu bar this will bring up the Import Files Dialogue Box below Import Listings x Select Listings Folder LJ Select Source Folder E p Select Macro Folder S S Select Copybook Folder Te oK Enter the location of the file containing the Assembler listings or use the browse button to navigate your directory structure to point to the Assembler Listings Once selected press OK the Workbench will now import the listings into the project it will automatically extract the source copybooks and macros and populate the appropriate files in the Workbench repository The Workbench automatically recognises over 30 different Assembler listing types including IBM mainframe variants and different levels of Tachyon listings If the listings you are trying to import are not recognised please contact SML Support 7 3 Importing Assembler Listings amp
105. nd therefore the analysis of the project will be more efficient as items such as the Seek Tables used in the Batch Data Tracker will only hold the data for the modules in the Sub project not the entire project The modules to be included in a sub project can be identified in the following ways e Modules identified using the Batch Data Tracker e Modules identified using the Call Graph e Via Dependencies e Select Functions e Using User Files To create a Sub project select File Create Sub project as below Note to create a sub project the current project must be declared a master project see Section 20 FERMAT Workbench DSA wi Tools Options Business Rule Extraction New Project Open Project Import Files Export Files Project Read Only v Master Project View Sub Projects Create Sub Project Add Functions Set Language 1 C idsa 2 C FermatSubys DSA Sub Test 3 C FermatSubys DSA Sub Scan 4 DSA Sub Nine Exit Workbench This will produce the following dialogue box Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Create Sub Project m Create Option Sub Project Location From Data Tracker CAD SA Sub projects A c from cate Sub Project Name r A From Dependencies DT Process C Select Functions From User File Dependencies 4 E r User File Processine T Caled By 4 m None Calls l f Scan Utility User File
106. ndard cau instruction Such a User Macro may be designated as a calling macro in a special table with the parameter taken to be the target Module This enables the Function Call Graph to correctly show a call to the intended Module See section 30 Customising the Workbench for further details 12 1 Viewing the Call Graph There are four methods of sizing the Function Call Graph Scaling the graph using the available options in the View menu Using the plus and minus keyboard keys for zooming in out Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Lid Page 29 Using the zoom cursor second toolbar button to rubber band the area to be displayed in the window Using the Overview Window View Overview Window from the menu or Ctrl Shift O in conjunction with the zoom cursor above and or by resizing the marquee shaded border by dragging its corners There are also different ways of moving around the graph Using the scrollbars cursor keys or Page Up and Page Down keys Dragging the marquee around in the Overview window with the mouse 12 2 Synchronising the Function Catalogue and the Function Call Graph Right click a Module in the Function Call Graph and select Show in Function Catalogue from the context menu The Function Catalogue s Function Tree highlights the selected Module Double click an internal Assembler Module in the Function
107. nerate a text file stored in the Leveli inventory folder called OriginalSourceReport txt and launch notepad to display it The report details discrepancies between imported listings and their original source Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 103 Original Source Report Thu Oct 02 13 57 58 2008 Project C FermatProjectys PROIOOL Unmatched Files FMTOOLAG No listing file found for original source file FMTOOLAL No listing file found for original source file FMTOOLAS No original source file found for listing file FMTOOLAG No original source file found for listing file FMTOOLA No original source file found for listing file Total unmatched files Total matched files 5 3 Example Original Source Report 25 6 User Macro Report Selecting this option will display the dialogue shown below User Macro Report M Max no of Lines M Annotate Source This dialogue allows the following options to clarify the output of the report Option Description Max Modules check Ticking this enables the filter for number of modules A user macro box will only be reported as invoked from the first n modules Max Modules Defines n above Max Lines check box Ticking this enables the filter for number of invocations of a macro A user macro will only be reported as invoked n times in a given module Max Lines Defines
108. nerates a series of files that are stored in the LEVELO2 folder in the project directory the analysis process automatically identifies dead code candidates and enables the Business Rule Extraction process and Code Slicing to be achieved The Business Rule Extraction process uses the Fermat Migration process to represent the assembler code in an intermediate language WSL Wide Spectrum Language the WSL code is then transformed using thousands of self verifying proven transformations to restructure the code and analyse the code in terms of Dataflow and control flow dependencies See section 32 Understanding Data Flows and Control Flows 23 1 What is a Business Rule The term Business Rule can mean many things to many people depending on its use and context In the Workbench a Business Rule is defined as code that is executed in a module that affects the referenced data element Using the Workbench this code can be identified and documented in business terms to assist organisations who need to document their existing systems prior to re engineering them in new languages 23 2 Dead Code Candidates Dead Code Candidates are automatically identified by the Workbench dataflow generation process they are highlighted as a special marked block type 9 coloured in this example as light brown to view an example of dead code Make the module RXLKPWUP the current active module from the Function Catalogue or Function Call Graph Open the Text E
109. ng message will be displayed and no processing will occur If you are assigned administrator rights which is based on your logon id the following functions are available e Removing individual records from the lock table e Removing all records for a user e Resetting the entire lock table for a project e Finally resetting the Workbench Please note care should be exercised in the use of the administration functions These facilities are provided to ensure continued operation in the event of a user abnormally terminating the Workbench or a Workbench process or a server failure Version Issued User Guide 138 Status Confidential Val 2008 Software Migrations Limited Software Migrations Ltd Page 114 In the View Lockout Table the administrator can select records to be removed from the project lock table by right clicking on the module line and selecting delete as below Lockout Table Module Function User Dae Time DYNAM Text Editor 4 Programmer 03 10 2008 16 06 49 DSAUDAT Batch Generate Dataflow Anne Analyst Delete ICHRIX01 Batch Generate Dataflow Anne Analyst IEFU83 Batch Generate Dataflow Anne Analyst Delete all For User RXLKMAIN Easy Data Tracker REMOTE2 10 16 05 26 RXLKPROC Easy Data Tracker REMOTE2 03 10 2008 16 05 26 RXLKPWUP Easy Data Tracker REMOTE2 03 10 2008 16 05 26 RXLKRYUP Easy Data Tracker REMOTE2 03 10 2008 16 05 26 RAXLKSECU Easy Data Tracker REMOTE2 03 10 2008 16 05 26 RXLKPURG Batch Generate
110. ns Ltd Page 123 The system now displays the following Function Catalogue FERMAT Function Catalogue KGSAMP2 Eile Yiew Help cl KGSAMP2 Function List Calls MODULE Name Type FILEOPEN FMT001A4 Module INITIAL Lines Comments Complexity McCabe Selina fo fo 8 f 1 8 MACRO Called By Function Call Type No of Times McCabe COPYBOOK Calls Function Call Type No of Times McCabe amp CALL 1 OPEN REGEQU USRMACI USRMACA FMTOO1AS CALL FMTOO1AG USRMACT Note that the call to the external module FMT001A6 has now been recognised and the two sub routines FILEOPEN and INITIAL in module FMT001A4 Function Call Graph FERMAT Function Call Graph KGSAMP2 File view Tools Help Ba snl cl FMT00144 FMT00TA6 REGEQU USRMACA USRMAC1 FMTOO1A5 X XU XU XU Both calls to external modules now shown Version Issued User Guide 138 Status Confidential Val 2008 Software Migrations Limited Software Migrations Ltd Page 124 All the Fermat Workbench tables are held in the project Config folder Customisation must be preformed after defining the project and before Importing any files The following tables may be customised complex tab entry tab macros tab routine tab udata tab ulinkage tab uopcodes tab UserMacro tab ustmac tsb version tab 30 1 complex tab This table holds the default setting for the complexity code which gives an ind
111. ns this file and removes any items that meet the exclude criteria Report Format either Normal or Short see Report Examples later in this section The Short Format should be used when the user may want to perform subsequent searches on the output file to refine the results or to create a subproject from so that the original location of the data can be identified i e Module name and line number The case options are either match the case of the string or ignore the case for purposes of matching The Match options Exact or Any For an exact match the characters before and after the matched string must not be alphanumeric i e a z A Z or 0 9 Dialogue Examples Search Folder Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 109 Text Scanner Folder CAProj01Nlevel asm C Filename i pad Output File Name ScanOl tt Report Title Search String lap File Search el m Exclude String PO Exclude File Search Columns Limit Search Start Col End Col Report Format Case Normal Ignore C Short C Match The above example will search all files in the folder C Proj01 Level0 asm for the string ap and put the normal formatted output file in C Proj01 level1 Inventory Scan01 txt with no report title Search Directory ciyProjol levelO asm string 4p Exclude No Exclude Data Report Format Normal Match Case No Exac
112. ns two calls to external modules one to FMT001A5 using the standard CALL macro and the other using a user Macro USRMAC1 The module also contains two sub routines with the macro ROUTINE used as a routine header With no customisation the Function Catalogue displays FERMAT Function Catalogue KGSAMP1 File view Help cl KGSAMP1 MODULE o Name Type FeToo1as FMT001A4 Module Praa Lines Comments Complexity McCabe amp USRMACI fo fo 4 e 7 USRMACA Called By CALL 4 OPEN Function Call Type No of Times McCabe COPYBOOK Function List Calls Calls Function Call Type No of Times McCabe CALL 1 OPEN REGEQU USRMACI USRMACA FMTOO1A5 Only FMT001A35 identified as an external module No sub routines identified in module FMT001A4 Version Issued User Guide 138 Status Confidential Val 2008 Software Migrations Limited Software Migrations Ltd Page 122 And the Function Call Graph displays FERMAT Function Call Graph KGSAMP1 File View Tools Help Ba anl FMT00144 FMT00145 USRMAC1 REGEQU USRMACA X XU XU XU Only the link to external module FMT001A5 had been identified The system is customised by adding USRMAC1 to the User Linkage table and ROUTINE to the routine table User Linkage Table Entry 1 USRMAC1 1 Routine Table Entry routine Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migratio
113. nse Sever This solution is similar to the previous except remote users connect to the terminal servers using a VPN connection over the public internet Because all processing is performed locally on the Terminal Servers and only minimal traffic is transmitted over the communications channel user response is acceptable even from remote locations even on dial up connection speeds The key to running such applications on a terminal server is the ratio of the number of users that can be running concurrently on the server The workbench can be computationally intensive in some operations especially when generating flowcharts and can be resource hungry when performing global operations such as scans or batch processing however it is the concurrency of such activities which are key The exact sizing for a Terminal Services Environment to support the FermaT Workbench is dependant on the size of the Assembler applications imported the number of sub projects required and the number of concurrent users SML will provide guidance for customers on deployment options and system sizing as part of the project planning for the Workbench implementation Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 141 34 Understanding Dataflows amp Controls 34 1 What is a Dataflow A dataflow is a link between the update of a variable and a reference to the va
114. ntaining new password Apply Seek Table Export Results and close the Configure Seek Tables screen Perform the Global Scan as before Select the batch BRE function by Business Rule Extraction Batch BRE Processing This process will perform a bi directional code slice either dataflow control flow or both for each hit in the assembler module To see the code that is affected do the following Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 91 Select the module DSAUSER in the function catalogue and double click to make it the current active module Open the Text Editor Click in the text and press shift F8 to move to the blocks of code identified by the BRE processor 101 lines are now highlighted from the 3 original hits in the code Look at modules RXLKPWUP and ZICHO0001 to see the results of the BRE processing on these modules The following is displayed in the Text Editor blue indicates the highlighted instructions Text Editor DSAUSER File Edit Track Options Mark Line CodeSlice Help SET UP RXSSPWGO PARM AREA USERID CURR PASS AUTHOK EQU lt FERMAT gt lt EB gt lt 1 gt lt SSS SSS SSS SSS SSS SS Sasee gt LA R6 PASSLEN ADDR LEN AND DATA LA RE RXPWUSER ADDR USERID LA R9 RACWORK RACROUTE WORK AREA lt FERMAT gt lt SB gt lt 1 gt lt S333 SSS SS SS SSS SSS SSS SS SS SSS BNZ ENDBRAC lt FER
115. ode Y A Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 151 A B C D we y E PRINT X Forwards control flow from node A will yield no results since this is not a decision point there can be no dependencies on it forwards dataflow on field Y will identify node C We do not need to add field Y to the dataflow criteria already there but we will add not C to the control dependency criteria Current Slicing Criteria Dataflow Field Control Dependency node Y A C added Continuing to slice forward we identify node D since this has a dependency on node C Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 152 A Y 1 y B X 3 IF Y gt 0 4 C a D X 4 y E PRINT X We therefore add field X to the data flow criteria because its the value in the control dependent node We do not need to add node D to the control dependency criteria because it it not s decision point it can have no dependencies Current Slicing Criteria Dataflow Field Control Dependency node Y X added A C Continuing to slice forward we find that node E is part of the dataflow from node D We don t need to add field X to the dataflow criteria
116. ode slices because a control flow link will lead to some dataflow links which in turn lead control flow links an so on The following examples explain the code slicing operation and the results of performing code slices on various part of the code The dataflows are identified by pink arrows in the flowcharts and the control flow by green dotted lines Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Lid Page 143 34 3 Example 1 A ZEX y Y 1 Z X y Y 1 C X 0 X 0 Y Y Y 1 D eae Z Z 1 X Z E ieee PRINT X y F X Z y G PRINT X Perform a backwards dataflow slice on variable X From Node A will identify nothing From Node C will identify nothing because any previous assignments are lost From Node F will identify Nodes E A From Node G will identify Nodes F E A Perform a forwards dataflow slice on variable X From Node A will identify Nodes E F G From Node E will identify Nodes F G From Node F will identify Node G Perform a backwards dataflow slice on variable Y From Node B will identify nothing From Node D will identify Node B Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 144 Perform a forwards dataflow slice on variable Y From Node B will identify Node D From Node D will identify nothing Perform a backwards da
117. ogue button Ea The Function Catalogue is split into two panes the Function Tree and the Function Details see screenshot below BEHESUBYSR oe ee Fremoo1ab FRTOOLAL PYTOO1AZ PeTOoLAg FTOOLAS FATOOLAS PreTOOLAs Fremoo1a FRAT200P3 mro maro Frog ATIA mro Pere Fria mail Pia Rai Ferii4 FUNCTION DETAILS 393922 UNCTION TREE bd a F g g r 11 1 The Function Tree The Function Tree pane shows the hierarchy of Functions contained within the FERMAT Project A Function is the generic term for all source modules macros copybooks and groupings thereof The Function Tree may be expanded and contracted by the user at will MODULE MACRO REGEQU OPEN PUT CLOSE GET DCB DXPUT COPYBOOK Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 23 Each Function in the tree is allocated an icon automatically by the Workbench according to its type The following Function types are supported in this release a System yellow 3D box icon A high level grouping Function For now there will only be three instances of the system type These are MODULE MACRO and copyBook which are automatically created when files are first imported into a new Project a Assembler Module blue 3D box icon Assembler Modules generally relate to a phy
118. ol flow link and will also identify Node A The reason for this the decision Node E is control dependant on Node A therefore both Nodes E and A are identified in the code slice from Node G Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited AL Software Migrations Ltd Page 162 DF DF DF CD CD CD DF CD DF CD DF CD Start B FW Both BW FW Both B W F W Both A BCDEFG BCDEFG BCDEFGH BCDEFGH B A CD ACD A CD ACD C BA BA BA BA D BA BA BA BA E A FG AFG A FGH AFGH F EA EA EA EA G H EA EA EA H EAH H G G GEA GEA Version Issued Status Confidential 2008 Software Migrations Limited User Guide 138 Software Migrations Ltd Page 163 35 Supporting Different Assembler Languages The FERMAT Workbench can used to import an increasing number of different Assembler languages This is achieved by Creating a new project using the main menu of the workbench then by selecting Set Language from the File Menu in the main menu the user is prompted to select the type of assembler language that is to be used for that project See below i FERMAT Workbench DSA Fie Tools Options Business Rule Extraction Export Reports Help Set Project Language x BAL C X86 C Unisys In the above example 2 assembler languages are supported BAL IBM Mainframe Assembler and x86 Assembler which supports Intel 80186 80286 and 80836 code
119. omputationally intensive the Fermat workbench will run on any PC but for optimum performance the minimum specification should be Pentium 4 3 0GHz with 1024MB of RAM with at least 5Gb of free disk space The PC should have Microsoft Office 2000 or above and Microsoft Internet Explorer version 6 0 or above installed 1 3 Installation and set up When the software is originally loaded and unzipped all the files in the Fermat directory will be read only It is mandatory that you change the properties of the folder for full read write access This is achieved by highlighting the Fermat Directory in Windows Explorer and right clicking with your mouse Select properties and de select the Read Only attribute press OK You will then be prompted to confirm attribute changes check the apply changes to this folder subfolders and files press OK 1 4 How to use this manual The FermaT Workbench is supplied in various levels of sophistication this user manual details the entire functionality of the Workbench Depending on the actual level of Workbench you have purchased various options may not be available The following table details the different levels of the Workbench and their functionality Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Lid Page 6 0 Parser Only 1 Standard Workbench 2 Code Slicing 3 Business Rules
120. ons that describe the code and its functions In order to promote knowledge sharing amongst all staff The goal is to keep these annotations in step with the source of the system so that they are available and not have to be re analysed and annotated each time This document describes the recommended approach to achieving this whilst maximising the benefits provided by the Workbench 31 2 Issues In order to allow detailed analysis of the assembler modules including dataflow and control dependency analysis which enables the dead code analysis code slicing and business rules extraction and documentation the Workbench uses full assembler listing with all macros fully expanded as input from this we extract the source for use in the workbench If the assembler source is conditional or is put through a pre processor before the assembly then the source that is extracted from the listing input will not be the same as the actual source held on the main system libraries 31 3 Solution The Workbench will use 2 inputs for each module The first the listing as previously described the second a copy of the actual source as stored on the mainframe All processing within the workbench will be performed on the listing and the source we extract from the listing When a module has been annotated it can be exported This process will merge the Fermat Comments generated in the annotation process with the original source module input The exported file
121. or Within the text editor the programmer or analyst can perform a code slice to identify code that is executed in generating a data element or register at this point in the module or code that is affected by this data element as the module is executed The user selects the target for the code slice operation by right clicking on the variable register or label in the Text Editor then selecting Set Code Slice Criteria from the context menu displayed The user must then close the Text Editor and select Create Annotated Files form the Business Rule Extraction main menu option as below FERMAT Workbench DSA DSAUSER Fie Tools Options M e Export Reports Import Listings Import Original Source Generate DataFlow Reset Source File View Metrics Create Annotated Files Batch Generate DataFlow Batch Reset Source File Batch BRE Processing AutoGen Business Rules View Business Rule List The user is then prompted for which type of code slice to perform using the following dialogue box Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited SSN Software Migrations Ltd Page 94 Data Analysis Options Direction Analysis Type Backwards Data Flow C Forwards C Control Flow Both C Both Annotate Code A detailed description of the differences in these options is explained in section 34 Understanding Data Flows and Control Flows Select the module DSAUSER from the F
122. ory for subsequent analysis Selecting this option will produce the select module dialogue box as Batch Generate Dataflow or Batch Reset Source File The user will be prompted to select which type of backward code slice to perform using the following dialogue box Data Analysis Type Title Autogen Business Rules Analysis Type Data Flow C Control Flow C Both 23 13 View Business Rule List This option will display all the business rules in the Business Rule Repository for the entire project in the following dialogue box Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Lid Page 93 Business Rule List DSAUSER 00000001 ACTIB AUTO GEN 20040705 00001 DSAUSER ooo00002 ACT28 AUTO GEN 20040705 00002 DSAUSER oo000003 ACT3B AUTO GEN 20040705 00003 DSAUSER oo000004 ADDRACEE AUTO GEN 20040705 00004 DSAUSER 00000005 GROUPN AUTO GEN 20040705 00005 DSAUSER oo000006 ICH2 AUTO GEN 20040705 00006 DSAUSER ooo00007 ICH4 AUTO GEN 20040705 00007 DSAUSER 00000008 JOPLECB AUTO GEN 20040705 00008 DSAUSER oo000009 JOPLECT AUTO GEN 20040705 00009 DSAUSER 00000010 IOPLUPT AUTO GEN 20040705 00010 a i b aniar The contents of the columns can be sorted by clicking on the title bar e g Name Note AUTO GEN at the start of the title indicates that the rules were generated by the AutoGen Business Rule Process 23 14 Business Rules Extraction Code Slicing within the Text Edit
123. ou just want to retrieve its details in the Function Catalogue without re synchronising the open Tools select Show in Function Catalogue from the context menu Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Lid 14 The Text Editor Page 31 The TEXT Editor will by default open the module in Read Only mode this feature enables multiple users to work on the same project simultaneously A module opened in Read Only mode will have the message displayed on the Title Line of the Text Editor as below FERMAT Workbench PROJO1 FMTO01A1 File Tools Options Business Rule Extraction Export Reports Migration Help SAORSA AA Text Editor FMT001A1 Read Only ME File Edit Track Options MarkLine CodeSlice Help FR I KI RK RR IRR HR RRR RR RHR FMT001A1 TEST PROGRAM SIMPLES PROCESS e FR IRF III RI IIR FOF I FFF IFFT KI TOK KKK TFT IK TOTTI THK TTT TRH HR HHI PRINT NOGEN REGEQU FMT001A1 CSECT RMODE 24 STM R14 R12 12 R13 IR R3 R1S USING FMT001A1 R3 ST R13 WSAVE 4 R14 WSAVE ST R14 8 R13 R13 WSAVE DDIN INPUT RDSOUT OUTPUT R10 GETREC LAB110 R10 GETREC R5 WCLC1 WLAST 1 0 R4 LAB120 RDSOUT WPRT WPRT C READ FIRST RECORD READ NEXT RECORD INDEX WORD CHANGED No YES WRITE PRINT LINE CLEAR PRINT LINE 80000010 80000020 80000030 80000040 80000050 80000060 80000070 60000080 80000090 60000100
124. ough the given node A backwards control dependency scan will find all the control dependencies nodes for a given node plus all their control dependencies and so on A forwards control dependency scan can be started from any decision node It finds all the nodes which are control dependent on this node plus nodes which are control dependent on them and so on Whenever a code slice process is used in the Workbench such as in the Create Annotate Files BRE Processing or Auto Gen Business Rules the user is prompted to select what code slice option is required Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 142 Data Analysis Options Direction Analysis Type Backwards Data Flow C Forwards Control Flow Both C Both Annotate Code The user can decide the direction of the slice either backwards forwards or both If the Both option is selected this is the same as performing first a backwards then a forwards pass on the code and the lines of identified will be marked in separate colours to distinguish between the backward and forward slice The user can decide what type of analysis to perform either a dataflow control dependent or both When the Both option is selected the process will perform a simultaneous dataflow and control dependent this will show different results than performing separate data flow and control dependent c
125. ough the use of return points 3 Data Item is the generic term given to variables constants data structures etc Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 34 There are two scenarios when this assistance would be useful to the programmer Q Debugging starting with a Data Item whose value is known to be invalid and working backwards through the code to find out where it might have got its erroneous value from a Enhancement starting with a request to change the format of a given Data Item or the way that it is processed and working forwards through the code to see what impact it would have before making the change The Track main menu item in the Text Editor contains the various locate operations for Data Items along with their Function Key assignments for one touch operation A Text Editor FMTO01A1 Read Only File Edit DERS Options MarkLine Business Rules Help Locate Data Item Ctrl L Locate amp Mark All lt WPRT gt Locate Previous Occurence of lt WPRT gt F1 Locate Next Occurence of lt WPRT gt F2 Jump to Left Data Item on Current Line F3 Jump to Right Data Item on Current Line F4 Mark Line FS Set Return Point F9 Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 35 Version Issued User Guide 138 Status Confid
126. ow and control dependency on variable X From Node F will identify Nodes ADE From Node E will identify Nodes A D From Node D will identify Nodes A From Node B will identify Nodes A Perform a forwards dataflow and control dependency on variable X From Node F will identify nothing From Node E will identify Nodes F From Node D will identify Nodes E F From Node C will identify nothing From Node B will identify nothing From Node A will identify Nodes BC D E F Perform a bi directional dataflow and control dependency on variable X From Node F will identify Nodes A E D From Node E will identify Nodes A D F From Node D will identify Nodes A E F From Node C will identify Node A From Node B will identify Node A From Node A will identify Nodes BC DEF From Node G will identify nothing DF DF DF CD CD CD DF CD DF CD DF CD Stat BW FW Both BW FW Both BW FW Both Node A BCDEF BCDEF BCDEF B A A A A C A A A A D EF EF A A A EF AEF E D F DF A A DA F DAF F ED ED A A EDA EDA G Version Iss ed User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 159 34 7 Example 5 A Label1 B X 10 PRINT X i LABEL1 PRINT X Y Y 1 Y Y 1 C X X 1 y D IF X gt 0 GOTO LABEL1 X X 1 PRINT Y E PRINT Y F Fix this stuff Per
127. r is pointing If the flowchart is not currently opened this action automatically opens the flowchart utility and centres on the line of code the flow charter is covered in detail later in this guide Find amp Mark All lt gt provides the option to mark all occurrences of the previous Edit Find activity as described above Create User Annotation is detailed later in this guide When one or more lines are selected in the text editor by holding down the left mouse button and right clicking the following options also become available Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Lid Page 39 e Cut Copy and Paste e Print Selected Text e Mark block of Lines 14 4 Show Macro Copybook By selecting the name of a macro or copy book in the Text Editor it is possible to view the source of the macro or copybook directly By selecting the Show Macro Copybook option the Workbench will produce a pop up screen which will display the chosen item this pop up screen allows the user to view the Macro or Copy book only The Following example shows the Macro DMAC as referenced on Line 634 of the Module FMT001A4 Text Editor FMT001A4 FERMAT Macro Copybook Display 1 DMAC MACRO amp LAB DMAC amp A amp B amp C LAB EQU amp A TOT1 PL4 0 amp A TOT2 PL4 0 amp A TOT3 PL4 0 amp A TOT4 PL4 0 amp A TOTS PL4 0 DMACO1 B DMACO2 C MEND Message
128. r reer ee 104 Utilities Text Scanner es incccvssincnsnesenencscssnsisvnnneesevesccensvenannnevenvwscans 106 Admin VUNG snes ccotscticsaicnsticctessiccnheniisnadsadcinnieiinauaciedaceoleetieaadensiaeia 112 File Structure Workbench Software eeecccceesseeseseeeeeeeeeees 117 File Structure Workbench Project s sseeeeeeeeeeeeeeeeeeeneeeeeeeeees 118 Customising the Workbench cccceccesseeeeeseeeeeeeeeeeseeeeeeeeeeeees 120 30 1 complex tab co ects ce ceeetee et sonccenstemtntes cer cooenccmtceusuantoeteneaenneeesencueeteedt 124 30 2 SAU 1AD ches e eee Aolaseme E ness 125 30 3 AWNACIOS NAD sescedaassScpeaccrsced aceshetncccsarsaqecdsccamcaseea wens se cetcatecatusaceceqentzes 125 30 4 routine AAD sirrin a ERE oae 125 309 Udata labea ek ac al ete eee eal 126 30 6 ulinkage tab sce scant s ceatad cts scares cecnccos acesceedices vere ad ntiectaedtactacceeeee 126 SUF U pcod s tabiii e e Re e a 126 30 8 USSrMACrO Was xcctevesecoiesoeticleceecspunvartecloneocsphadontaetecescinseuestantuaceqselene 126 5 02 Mame PSY 62 6 eee een ee ere eee ne ere renee er 127 30 10 VEIGION TAD snica ttt elec aed tna ie el anaiena aeeai 127 30 11 ImporntR les TAD nnns caine neetea ee 127 6 Page 621 0 2 0a es eee eer ree eee eee 128 Using the SML Workbench in the Application Life Cycle 130 31 1 ADT Src oscg ac acaeacaceceacntceesacunacasescasinenecobapeseierasenae oneteesaacducet sensi 130 Me ISSUES ek ded
129. raph DI Open the Function Call Graph from the Workbench Toolbar either by selecting Tools Function Call Graph from the menu or by pressing the Function Call Graph button The Function Call Graph complements the Function Catalogue by graphically depicting the calling relationships between the Modules When selected the user is presented with a list as below Select Call Graph Functions Current Details V Select Current Functions FMTODIAT FMTOOIA3 FMTODIA4 Project Details Select All Functions FMTODIAG FMTOOIAI FMTOOIA2 FMTOOIA3 FMTOOIA4 FMTOOIAS FMTODIAG FMTODIA7 FMT200P9 The display is divided into two sections the first provides details of the current modules selected on first entry this will be empty If the Call Graph has been used before in this project this section will be populated by the modules selected when previously used Checking the Select Current Functions will use these functions as the basis for the call graph Modules can be deselected by right clicking on the modules and selecting the Delete option Modules can be added to the Current Selection by selecting one or more modules from the second part of the display Project Details modules are selected either individually Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Lid Page 28 or by selecting a block using shift left click or multiple individual entries by using
130. riable where there is a control flow path between the update and the reference A backwards dataflow link goes from the reference to the update i e the value of the variable at the reference may depend on the value assigned at the update Backwards dataflow links are followed during backwards slicing A forwards dataflow link goes from the update to the reference i e the value assigned to the variable at the update may affect the value seen at the reference Forwards dataflow links are followed during forwards slicing So a backwards dataflow can start from any reference to a variable in an assembler instruction and a forwards dataflow can start from any reference to a variable in an assembler instruction This does NOT include assembler directives such as USING DROP etc A variable may be both referenced and updated in the same instruction A backwards dataflow will mark the selected line any backwards dataflow lines starting at he current line any of their dataflow lines and so on until no more dependencies are found 34 2 What is a Control dependency A control dependency of a node is any decision node which can control whether or not the given node will be executed To be precise 1 From one edge out of the decision node every path to the end of the flow graph passes through the given node and 2 From a different edge out of the decision node there exists a path to the end of the flow graph which doesn t pass thr
131. rn options in as below FERMAT Program Flowchart DSAUDAT File View Tools Options Help BA SRI Show line in Editor Create Annotation View Annotation Delete Annotation Jump to Selecting the Jump to option will cause the Program Flowchart to go to the appropriate routine as below Version Issued Status Confidential 2008 Software Migrations Limited User Guide 138 Software Migrations Lid Page 52 FERMAT Program Flowchart DSAUDAT zal xj File View Tools Options Help BA ail c SUBROUTINE R2 PARSE PARM FOR FI PARSE EQU LA R3 PARM ADDR PARM LA R4 240 MAX SCAN LEN If the user right clicks in the Parse subroutine and takes the return option the Program Flowchart will return to program where it was jumped from Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 53 15 1 Synchronising the Program Flowchart and the Text Editor Perhaps the most powerful combination of Tools for module analysis in the Workbench is using the Program Flowchart in conjunction with the Text Editor The Program Flowchart can be used interactively with the Text Editor to navigate through the logic of a module A selected line in the Text Editor can have its node highlighted in the Program Flowchart and the code for a selected node in the Program Flowchart can be highlighted in the Text Editor Size the Program Flowchart
132. s Value of address normally a halfword S Address Base register and displacement value a halfword V Address Space reserved for external symbol addresses each address normally a fullword The right hand panel of the Configure Seek Tables screen is used to select or create the seek table and generate the selection criteria Selections can be made on data names comments and data type The search can be on equals exact match Contains same as using wild cards before and after or Begins With same as wild card after the string An entry description is optional which acts as a prompt as to why this element was searched by the programmer or analyst The option is then available to Include or Exclude the entry from the selection process Finally there is the option to remove the current entry from the selection criteria Version Issued Status Confidential 2008 Software Migrations Limited User Guide 138 Software Migrations Ltd Page 65 The search criteria are stored in the tracker folder of the project It is possible to build as many different search criteria as required The name and path of the seek table can be entered at the end of the directory displayed in the Seek Table box top right the name of the Seek table can be any valid file name but must have the file extension txt If no seek table is specified the batch data tracker will use a default Projectttracker UserName TrackerDefault txt if no path is specifi
133. s before the highlighted line s lines can be marked and unmarked using F5 Fermat comments aid the understanding of the code by allowing relevant comments to be placed describing why a particular line was highlighted For further details see Set Current Marked Line Include Code in User Annotations When checked this will include the original source code in the annotations file together with user entered comments Annotations are detailed later in this guide Change Colours selecting this option will produce the following dialogue box Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Lid Page 46 Select Entries to Change Colours J Background Sample I Foreground J User Annotation Comments Sample FERMAT Comments J FERMAT Header Sample I Comments J Node Block Comments Sample Annotated Lines Highlight O Sample J Retum Point I Macro Expansion Sample J Marked Line Type 0 J Marked Block Type 0 Marked Block Type 1 Sample Marked Block Type 9 This enables customisation of the colours used within the text editor By selecting one or more or features then OK the user is presented with the standard Windows colour options to select the desired colours for that function Set Current Marked Line will produce the following context menu Set Current Marked Line d Set Current Marked Block gt 9 Mark Line Type 9 Prompt for User
134. seceeeeeeeeeeeeeeneeeeeeeeeeeeeeneees 14 7 3 Importing Assembler Listings amp Source cccceeeeeeeeettteeeeeeeeeeeeeee 14 7 4 Importing Assembler Listings Source Macros amp Copybooks 17 7 5 Processing LISHIIOS ccc cocceetccanen set eeencaitatesateconshandtenekshucosetacacecnsecente 17 8 De lete Functions icciicciicsccactcsercccsecadcosadcctiadscdscasdssdidectsndannsdcactedeeneaaace 18 8 1 Importing New Versions of Modules ccceeeeeeeeeeeeteeeeeeeeeteeeees 19 9 lnventory REDOrlesricsrcsies ienne ererere rr re rere ere errrerrr tre rere err errr ERER tt 20 10 Selecting A NOUS vii sccicissiessssccsecstvnciaaenensccecieatiannacessaciintinennaaacnnaien 21 11 The Function Catalogue sicicciicnccicrcestsnessnccistceerssedsnenantencasieiseansneanie 22 11 1 The Function Tree sssosseeneeeeeeeeeennrnenteeoerrennnnrersrrrrennnnrreeeerrnnnnne ee 22 Ug Ae WA ON MAN Sea eet ee 24 11 3 Function Details Calls Page eeeeeececceeeeeeeeeeeseneeeeeeeeeeeseneenaaeees 25 12 PRE FONCION Call Crai a rtnicrietintrieenininiiminianinnniniine 27 12 1 Viewing the Call Graph ce cede eee icectiecedecdadcencared sti eestduancaredtanetenetecacendeee 28 12 2 Synchronising the Function Catalogue and the Function Call Graph 29 13 Selecting the Workbench s current Module 000000 30 14 The Text EGU sisesiesctccsisaseessieinisssncisirnnnccassnninnnnienanincsuntsenivenbsatannivns 31 14 1 Data Tr
135. sical file containing source of some kind In addition to the standard Assembler Module there are three special types of Module e Copybook blue 3D box icon with C in bottom right corner A common Module explicitly called using an Assembler copy statement e User Macro blue 3D box icon with U in bottom right corner A non system Assembler Macro utilised by one or more Modules in the Project Internal Macro blue 3D box icon with I in bottom right corner A non system Assembler Macro defined in one or more Modules in the Project but not stored in a User Macro file e System Macro blue 3D box icon with S in bottom right corner A reference to an Assembler System Macro utilised by one or more Modules in the Project a Routine Red 3D box icon Assembler sub routine Note that no metrics are kept for this type Q Entry Point Light Blue 3D box icon Entry Point in an assembler module Note that no metrics are kept for this type Furthermore each Module in the Function Catalogue may be either internal or external An internal Module is one that relates to a physical source file in the FERMAT Project i e the source is available Only internal Modules shortened to just Modules may be made current in the Workbench whether source code macro or copybook e An external Module appears in the Function Catalogue to show that although it is utilised by one or more internal Modules
136. smMod FMTOOTAd v V Regenerate Repository This dialog box displays all the functions in the current Project in the Functions panel Right clicking on the module brings up the option Add to Delete List selecting this will place that function in the Delete List in the Delete Functions panel Functions can be removed from the Delete Functions Panel by right clicking on the Function and selecting Delete In the above example the User Macro DXPUT has already been selected and the Module FMT001A1 will be added to the Delete List By default the Delete Functions process will regenerate the repository If the repository is to be left without regeneration after the Function Delete process the Regenerate Repository check box must be un ticked The only reason not to regenerate is if several calls to Delete Functions are required before any further use of the Workbench Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Saas Software Migrations Ltd Page 19 When the list is complete press OK to start the process If the repository has not been regenerated after deleting functions the following message is displayed FERMAT Workbench Functions Deleted Note Repository Not Regenerated Please regenerate the repository once all deletions have been processed Workbench may produce inconsistent results until regeneration is complete The repository must be regenerated after functions hav
137. t Match Yes Fil e FMTOOLAG a11 18 AF WCT P 1 44 19 AP WHUM P 1 45 File FMTOOLAZ all 221 AP WOT P 1 75 23 AF WHU P 1 rae Fil e FMTOoLAs all 63 3 AP WTOTAL WY AMT 2 98 Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Lid Search File Multiple Search Strings in File Text Scanner Page 110 Folder CADSANevelDMisth ig Filename ee ka Output File Name Scandi Report Title Password Search Search String E Fie Search Z C SPassword Scan Listtet a Exclude String Exclude File E Search Columns I Limit Search Start Col All J Data Only le Seach Report Format C Normal rai End Col Case Ignore C Match This scan will search all the files in the folder C DSA levelO list1 for strings that match those in the file C Password Scan List txt The report will have the title Password Search and will be in the short form The Password Scan List txt contains the followings search strings Version Issued Status Confidential 2008 Software Migrations Limited User Guide 138 Software Migrations Ltd P Password Scan List bct Notepad File Edit Format View Help Page 111 10 x And will search the files for exact matches of password pass or psw ignoring the case search Exclude Report Format short DSAS
138. t scanner will launch this file with Notepad after the search if any matches are detected The Report Title is optional if entered it will be written once at the beginning of the output txt file User can then enter a search string or by selecting the File Search check box or enter the name of the file containing multiple search criteria or navigate to the file using the browse button Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited a Software Migrations Ltd Page 108 The user can specifically limit the search to certain columns for each line search by entering the start end columns to search within If the user has specified a filename to search opposed to a folder the Search File Options All or Data Only are available If the file being searched is the output from a previous search the user can select Data Only to only search the original data i e ignoring the file name and line number information Note when this is selected the Search Columns information if entered will apply to the original data If All is chosen the entire line contents will be search and the columns information would apply to the whole line The Exclude String and Exclude File are similar to the Search String and Search File as above the Exclude is used to exclude specific matches from the results The scan process will first perform the search operations to create the matched items file the exclude operation then sca
139. taflow slice on variable Z From Node A will identify nothing From Node C will identify nothing because any previous assignments are lost From Node F will identify Nodes E A From Node G will identify Nodes F E A Perform a forwards dataflow slice on variable Z From Node A will identify Nodes E F G From Node E will identify Nodes F G From Node F will identify Node G Bi directional slices simply slice on one direction then the other So the results from bi directional slicing are the set of results from performing a forward slice then a backwards slice Note there are no control dependencies in this example DF DF DF Start Node B W F W Both A sliceonZ EFG EFG B Slice on Y D D C slice on X D slice on Y B B E slice on Z A FG AFG F slice on X EA G EAG G slice on X FEA FEA Version Issued Status Confidential 2008 Software Migrations Limited User Guide 138 Software Migrations Ltd Page 145 34 4 Example 2 Y 1 X 3 IF Y gt 0THENX 4 PRINT X PRINT X Dataflow Perform a backwards dataflow code slice on variable X From Node E will identify Nodes D B From Node D will identify nothing From Node B will identify nothing Perform a forwards dataflow code slice on variable X From Node B will identify Node E From Node D will identify Node E Note there is no dataflow link between Nodes B and Node D since Node D overwri
140. ted Software Migrations Ltd Page 118 29 File Structure Workbench Project A Fermat Project is a logical container on the system where the Assembler system is imported to When a new project is created the Workbench creates the following files and automatically populates them with the imported data The files are then used to store information as the Workbench is executed The following is a description of the files and their uses within the Workbench o Luo ss Fermat Project This top level is the name of the project e g config export Asm C Copybook gt ERD Billing System config This folder contains the customisable files used by the workbench to meet customer specific requirements such as macro usage and linkage parameter see Section 26 for further details on how to customise the Workbench Macro export when the export files option is executed the n gai workbench will copy the assembler source to the Asm folder Ga amori copybooks to the Copybook folder macros to the Macro 7 folder and places an XML file in the ERD folder which gaan describes the relationships between the functions in the ist proinde Ga mac levelO is a top level folder which contains the in code that has been imported to the systems the following details the subfolders asm contains the extracted source if import was from inventory listing or the original source imported 3 amp level asmorig
141. teees 74 21 3 Creating a Sub project from a function s dependencies 74 21 4 Creating a Sub project from Select Functions 0 ccceeeeeeees 77 21 5 Creating a Sub project from a User Fil sseeesesseeeeeeseeeseeeees 78 21 6 Adding Functions to a Sub project eeeeeeeeseeseesssssesssseseeeeees 80 Read only PO BI seca anc acirertviipndaserireraniecnanerevavadentienndisivapelenducrnieniiens 82 22 1 Using a Read Only nol OU acs saint ttt talaederecd Seca siidaere ee caeeaseee 83 Business Rule Extraction ssssssssssssnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn 85 Zonk What is Business Rule xeric ities 85 23 2 Dead Code Candidates ccccsesssssssesssesseesssesssssssssesseesseeeeees 85 23 39 WNP ORM LIStINgS ziii taietecdcedetetedeuaeebeeeeieenietesceta 87 23 4 Generate Data FlOW siececcecsctccetes scarckescttenavapasaedseaucanargecbsabedetedetenane 87 29 5 ResetSource File r eieeesresnr eesti iei ioei iis 87 29 6 Viw MettiCS iicn eicces ae na E E EE 88 23 7 Create Annotated Files cseesesessssesssessssssessesessssssssseneneeeaes 89 23 8 Batch Generate Dataflow sssesssssssssesssssssssssesesessseseeeeaes 89 23 9 Batch Reset Source File sssssssssessssessssssseessessesesessseseeees 90 23 10 Batch BRE ProC SS sansene 90 23 11 BRE Assessment Report cceceeeeecceeeeeeeeeeeeeeseeeeeeeeeeeeeeseenaeeees
142. tes any previous value of X Version Issued Status Confidential 2008 Software Migrations Limited User Guide 138 Software Migrations Lt Page 146 DF DF DF Start B W F W Both Node A B E E C A A D E E E DB DB Control Dependency A backwards Control Dependency is asking the question which decision points are critical to the execution of this node In this example the only node where this question of relevant is node D If perform a backwards control dependency from node D it will identify node C because node C could exit directly to Node E bypassing node D completely A forwards Control Dependency is asking the question which nodes are dependant on the execution of this node In this example the only node where this question is relevant is node C If perform a forwards control dependency from node C it will identify node D CD CD CD Start B W F W Both Node z e a B C D D D C C E Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 147 Combined Slice Dataflow Control Dependency The combined slice combines the characteristics of both the dataflow slice and the control dependency slice It and uses the results of the slice in progress to dynamically increase the scope of the slice criteria as it progresses As the user selected slice progresses and starts to i
143. the source is not available in this Project This has two uses the identification of missing source or listings and the documentation of Project boundaries An external Function of any type is indicated by a red X in the top right corner of its icon Note Modules can be added to a FERMAT Project at any time Where a newly imported module was previously identified as an external dependency it will effectively be promoted to be an internal module Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Lid Page 24 Finally Single clicking an item in the Function Tree will retrieve its details and present them in the Function Details pane see next section v Double clicking an item in the Function Tree provided that it is an internal Module will make it the Current Module in the Workbench 11 2 Function Details The Function Details pane includes two pages accessed from the appropriate tab at the top of the pane Each page has a standard header showing the name and type of the selected Function Function List Calls Name Type FMTODTAD Comments Complexity McCabe es e o G e The first page the Function List displays the selected Function s immediate children much like Windows Explorer ie the textual description of the Function type icon Version Issued User Guide 138 Status Confidential 2008 Software M
144. the user id of the user who created the Sub project and the creation date To remove the logical link between a Sub Project and its Master project whilst in the View Sub Projects above right clicking on the Sub project will give the option to Disconnect which ends the projects association as shown below View Sub Projects Master Project C dsa Userid PHILJEFFREY Date 04 03 2008 Time 16 11 27 Project Location seid Dae Tre DSA Sub Scan C FermatSubys DSA4 Sub Scan PHILJEF 29 09 2008 14 06 43 DSA Sub Test C FermatSubys DSA Sub Test PHILJEF 29 09 2008 14 20 29 Disconnect A Master project can be returned to the status of a normal project by selecting File Master Project this will display the following warning box FERMAT Workbench A Project is defined as Master Project Do you want to reset to Normal Project Note that any association with sub projects will then be lost and they will no longer be managed changing the status of the project back to Master would lose all associations with any previous Sub projects Version Issued User Guide 138 Status Confidential Val 2008 Software Migrations Limited Software Migrations Ltd Page 72 21 Creating Sub projects A Sub project is a smaller section of a main project see section 20 Master Projects and Sub projects There are significant benefits for the user in creating a Sub project the new project will be smaller in size a
145. tions Limited Software Migrations Ltd Page 117 28 File Structure Workbench Software This section describes the files and their functions included in the Workbench Software this detail is for information only as a user of the Workbench you should not amend or change any of the files bin config User Id fermat2 bin config C Minew gt perl E scm slib gt lib Tracker FermaT Workbench is the directory where the Workbench Software was installed bin is the folder where all the workbench files for execution are contained config is the folder which will contain subfolders for each user of the workbench e g User ld The User Id folder contains transient information on the status of the workbench such as size and position information of the Workbench tools so that these are reapplied automatically when each tool is started The User ld folder also maintains the save user settings for the Text Editor fermat2 This top level folder contains the software required to run the detailed analysis of the assembler applications it contains the binary executables and perl scripts used by the system including the perl and scheme runtime libraries lib contains the TCL executable programs for the Workbench GUI interface Tracker contains the default values for the Access interface Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limi
146. unction Catalogue Reset the source file using Business Rules Extraction Reset Source File from the main menu bar to make sure we have a clean source module as we have used this module before for examples in this guide Open the Text Editor Go to line 452 Place the cursor over the data element NDATE Right Click Mouse from the context menu select the last one Set Code Slice Criteria lt NDATE gt Close the Text Editor Execute Create Annotated Files from Business Rules Extraction Create Annotated files Choose a backwards both slice then press Annotate Code this will perform a backwards code slice and mark the identified items as Marked Block 1 in the colour specified Perform the same again but this time select a forwards both slice and annotate the code this will perform a forwards code slice highlighting the identified code as Marked Block 2 in the colour specified Note if the colours have not been specified customising the text editor you will be prompted for the colour when you open the Text Editor Open the Text Editor Click in the Text and Press Shift F8 to go to the identified code Shift F8 will move to next blocks etc Try this on the other hits identified in modules RXLKPWUP and ZICH0001 Note code slicing is not performed on data definition lines such DS 23 15 Documenting Business Rules Using the above techniques to identify the lines of code that affect data elements the programmer is now abl
147. us Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 89 The purpose of these metrics is firstly to show the effect of the WSL to WSL transformations typically all the metrics are reduced by a factor of 5 to 10 and secondly to show which modules have the highest complexity and can be used to estimate the effort required to make a system change or enhancement 23 7 Create Annotated Files This is used to perform the code slicing for selected data elements or registers for the currently selected module see section 23 14 for further details 23 8 Batch Generate Dataflow This process is used when the user needs to generate the Dataflow and Control Flow files for a number of modules it performs the same function as Generate Dataflow but for a batch of modules When Selected this option will produce the following dialogue box Select Modules to Process Select All Modules Show All Modules Show Modules without current Dataflow IV DATAMAN DSASETP DSAUDAT DSAUSER DSAXMEM DSAXMEM2 DYNAM ICHPW lt 01 ICHRI lt 01 ICHRIx02 IEFU83 RXLKCKPT RXLKMAIN RXLKOTUP RXLKPREP RXLKPROC RXLKPURG RXLKPWUP RAXLKRYUP RXLKSAVE RXLKSECU RXLKSTAT RXLKTIME ovecncar hs Generate Dataflow Select modules required for processing by left clicking the mouse or combination of shift left click to select a block of modules or control left click to select additional individual modules By default he dialogu
148. xt you typed in will be displayed from the Program Flowchart Double click the node to show the related code in the Text Editor fet o o A User Annotation Report file can be produced This will contain details of all the User annotations contained in a module The report is selected from the Reports Annotation Report menu The report file is called Annotation _modulename txt and is output to the project level1 inventory directory Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd 17 The Data Catalogue Page 57 Open the Data Catalogue from the Workbench Toolbar either by selecting Tools Data Catalogue from the menu or by pressing the Data Catalogue button Like the Function Catalogue the Data Catalogue is split into two panes the Data Tree and the Data Details see screenshot below FERMAT Data Catalogue FMTO01A1 File View Help FMTOOIA1 Data List a Name FMTOO1A1 Type Structure Child Data DATA TREE Tye Occurs Size InitialValue 4 80 80 20 DATA DETAILS 17 1 The Data Tree The Data Tree pane shows the hierarchy of Data Items contained in the current module as they were declared in the source A Each Data Item in the tree is allocated types are supported in this release Version Issued Status Confidential 2008 Software Migrations Limited BE FMTOO1A4
149. y Nodes E From Node D will identify Nodes E Page 156 DF DF DF CD CD CD DF CD DF CD DF CD Stat BW FW Both BW FW Both BW FW Both Node A B B BCDE BCDE B A A CD CD A CDE ACDE a E E B B BA E BAE D E E B B BA E BAE E CD CD CDBA CDBA Version Issued Status Confidential 2008 Software Migrations Limited User Guide 138 Software Migrations Ltd Page 157 34 6 Example 4 005 IF Y 1 THEN GOTO JOIN 010 X 3 015 A 1 020 X 4 025 X X 1 030 PRINT X 035 JOIN A 2 Perform a backwards dataflow slice on variable X From Node F will identify Nodes E D From Node E will identify Nodes D From Node D will identify Nothing From Node B will identify Nothing Perform a forwards dataflow slice on variable X From Node F will identify nothing From Node E will identify Nodes F From Node D will identify Nodes E F From Node B will identify nothing Perform a backwards control dependency on variable X Version Issued Status Confidential 2008 Software Migrations Limited User Guide 138 Software Migrations Lid Page 158 From Nodes BC D E F will identify Node A From Node G will identify nothing as the outcome of Node A is irrelevant Perform a forwards control dependency From Node A will identify Nodes BCDEF Note There are no other valid control flow dependency starting points Perform a backwards datafl
150. y be recognized as an Assembler program The user macro name should be added to this table so that the file will be recognized and imported into the project Version Issued User Guide 138 Status Confidential 2008 Software Migrations Limited Software Migrations Ltd Page 127 30 9 ustmac tab This table contains information of macros which define the start point of a program and contain the name of the program Normally this name is taken from the START or CSECT instruction Without customization the start name will default to CSECTO01 Entries are defined as follows CUSTART or CUSTART 0O name from label SASSART n name from nth positional parameter BEGIN NAME name from keyword parameter Note data entry starts in column 2 30 10 version tab Some systems use a source version control as a prefix Some source names i e filenames are in the format of VGEFO1nn where nn represents the source version Internal calls are made to VGEFO1 In order to match up the call VGEFO01 to the actual file VGEFO01nn the significant characters are specified in the version table e g SENTER 6 30 11 ImportRules tab Data items for a module are defined by sections one for the CSECT and one for each DSECT The names for these sections are used to generate the names for the copybooks used in Cobol migration Each name consists of six characters plus a 2 char suffix The six character name is derived from the input name during th
Download Pdf Manuals
Related Search
Related Contents
VGN-CS190NBB Manuale dell`operatore N°9 - Solidaires Finances publiques Oster 78182 User's Manual IC Recorder ワイヤレスメモリカードリーダー/ライターA (R03W002A)取扱説明書 User Manual PocketBook Touch Lux BG Betriebsanleitung LEO Record Pegasus FS2AD202BNV Instructions / Assembly Collège Gabriel Havez à Creil Copyright © All rights reserved.
Failed to retrieve file