Verification and Remediation Process |
SmartFind Plus, provides a complete environment and range of tools for analyzing applications, investigating the Year 2000 problem, verifying remediated (fixed) code and fixing code.
SmartFind Plus works on an application's source code. The code is examined for lines that could have an effect on the Year 2000 problem. These are copied from the source code and placed into the worksheet. In the worksheet the lines of code are known as points of interest (POIs). You have to then decide if they are POIs and require any change.
Verifying remediated code is a process of checking code that has been fixed. You are checking to see if the code will handle the Year 2000 properly. It involves examining the remediated code using the Analysis Tools, the worksheet and Revolve. After you have collected all the POIs in the worksheet, you can flag them with categories other than those given by the tools, to indicate their compliance status; fixed correctly, incorrectly fixed, needs investigation, etc.
Fixing code requires the same process for finding the relevant lines of code in the source code. After these have been found and categorized, you can generate an automatic fix using SmartFix.
After any fixes have been applied, the code must be tested using appropriate software.
The Year 2000 problem is that programs refer to the year by only the last two digits. In the simplest case, the year 2002 takes the value 02, and when you compare 02 with 98, it appears to be 96 years earlier, and not 4 years after it, as intended.
There are two main methods for fixing year dates:
This technique is generally a quicker overall solution and it is very precise. The initial search for date data items takes time, but it is automated and it finds every data item that could possibly be a date. The second phase pinpoints only the statements where a potential date data item might cause a logic problem. You then renovate only those statements by fixing the program logic. You do not need to reduce the list of all possible dates to the genuine dates, but just pinpoint the dates that are involved in problem statements.
This technique is the ultimate solution. However, it assumes you can identify every date data item from its name, which relies on past programmers having conformed strictly to naming conventions. Finding just the date data items from all the possible ones is labor intensive, and involves tracing through every statement where the date data items are moved in case they identify other date data items. When you have found all the date data items, you then have to make extensive changes to expand all the data items throughout all the code and all the data.
SmartFind Plus can be used for data expansion and windowing. As well as identifying the statements that can be fixed using windowing logic, SmartFind Plus also identifies the parts of the application that require data expansion, such as keyed I-O and internal sorts.
SmartFind Plus provides a series of features that help you to; verify the validity of any fixes to source code, or to fix the code. The product includes:
SmartFind Plus provides a series of analysis tools to search for POIs in the project source code. Some of the analysis tools find data items in the source code to add them to the worksheet as POIs. Other analysis tools extract code from the worksheet enabling you to refine the POIs in the worksheet. The end result should be a worksheet where every point of interest is categorized for verification or fix purposes.
Some of the tools produce sets of POIs, based on attributes, such as the candidate's name, its type, its value, its usage and so on. These are displayed in a set view window. The code displayed in the set has been added to the worksheet, but is also available in the set view for further analysis. The set view enables you to union, intersect or subtract the code set with code in other sets. Sets can be added to or subtracted from the worksheet and code in the worksheet can be selected to create sets.
The analysis tools can be combined as an automated composite tool process, and they can be customized to suit your particular analysis requirements. You can also share individual tools and composite tools with others in your project group.
The SmartFind Wizard searches the source code for candidates, that could be POIs by using a set of criteria and rules. It pinpoints only the statements where a date data item might cause a logic problem. The SmartFind Wizard is available with its default settings as an analysis tool or can be used as a configurable wizard from the Year 2000 menu.
Operations that might cause a logic problem are comparisons, input/output of indexed files, sorting, subtraction, and various others. An expression containing two-digit year data items instead of four-digit year data items is evaluated incorrectly only when it compares date data items or does an arithmetic calculation involving date data items. Logic problems might also occur when two-digit year data items are used for sorting or as the object of a key field or index field. You can customize these search criteria.
Note: SmartFind Wizard ignores any statements that do not contain relevant date code even if they do contain date data items. For example, it ignores MOVE statements and statements that display dates in reports or on screens.
The Candidate Wizard finds the POIs in two passes, it:
The worksheet is the central point for Year 2000 work. The worksheet holds the information needed to verify or fix statements. It also keeps track of what is of interest, what has been fixed and the decisions made.
The worksheet lists the POIs, such as data items, statements and data files. It shows, for example, the type and size of each data item and defines the year type allocated to it, as well as who allocated the year type and when. The statement tab displays the source, its line number, the status of the fix, such as whether it is automatically generated or supplied manually, and any verification status.
Throughout the SmartFind Plus process of investigating, fixing and verifying Year 2000 problems, your work is centered on the worksheet.
In the worksheet you:
SmartFix determines the fix and then modifies your source to handle the century correctly. For each suspect operation, SmartFix inserts code that determines the century of the data items that represent years. These data items are expanded to include the century before performing the suspect operation, and where necessary the results are contracted back afterwards.
For example, a simple comparison between two two-digit years, yy1
and yy2
:
IF yy1 > yy2
becomes a comparison between two four-digit years, ccyy1
and ccyy2
, that each includes the century:
move yy1 to ccyy1 if ccyy1 > 50 *> determine century for yy1 add 1900 to ccyy1 *> expand yy1 into ccyy1 else add 2000 to ccyy1 end-if move yy2 to ccyy2 if ccyy2 > 50 *> determine century for yy2 add 1900 to ccyy2 *> expand yy2 into ccyy2 else add 2000 to ccyy2 end-if if ccyy1 > ccyy2 *> compare the expanded data items
SmartFix fixes basic date problems, such as simple conditions and arithmetic, automatically. For more complex situations, SmartFix indicates why there might be a problem and provides information on how to fix it manually.
The central component of Revolve is a project database containing a complete representation of an application's source code. The database represents not only the content of your application but also its structure. This enables Revolve to carry out many advanced functions that are not possible from a simple text representation.
The database can handle many different types of source code, including COBOL, JCL, BMS and so on. When you load the source into the database, it is parsed, checking for inconsistencies, missing files, misnamed components and so on.
Once the database is loaded, subsequent analyses and inquiries to Revolve work on the database using the inherent knowledge of the structure of your application. This makes for faster and more efficient searching. In addition, when you need to work on the actual source files, you can display them in context and amend them if required.
Revolve supplements its base COBOL and JCL support with specific language extensions for Assembler, PL/I, and Unisys systems. These extensions enable you to apply Revolve's powerful application inventory, analysis, and maintenance capabilities to enterprise systems written in other languages.
Each extension provides a language parser that identifies individual components of an application system, such as programs, copy or include files, variables, job steps, data files and so on. The parser then adds these components to the Revolve project database.
The following language extensions are available:
Each extension can be a separately installed component of Revolve. It shares the same operating system and microprocessor requirements as Revolve. An additional 2 Mb free hard disk space is needed to load all corresponding files.
Copyright © 1999 MERANT International Limited. All rights reserved.
This document and the proprietary marks and names
used herein are protected by international law.
Verification and Remediation Process |