Data processing: database and file management or data structures – Database design – Data structure types
Reexamination Certificate
1998-06-30
2001-07-31
Breene, John (Department: 2777)
Data processing: database and file management or data structures
Database design
Data structure types
C707S793000, C707S793000, C707S793000, C707S793000
Reexamination Certificate
active
06269367
ABSTRACT:
TECHNICAL FIELD OF THE INVENTION
The present invention relates to electronic data processing systems and more particularly to the discovery of computer code sequences that are candidates of interest without specific search criteria. Still more particularly, the present invention relates to apparatus and process for the identification of said computer code sequences and subsequent modification and verification.
BACKGROUND AND RELATED ART
As the year 2000 approaches, there has been a significant increase in concern over computer programs being “Year 2000 Compliant”. Many computer programs have been written using only the last two digits of the year in various ways such that these computer code fragments will fail or produce incorrect results when entering “00” or “0”. Such would be the case when calculating a person's age using the two digit birth year and subtracting from the current year, 0−75=−75. However, there are a near infinite number of ways that a two digit date could be used in a computer program such that incorrect results would be produced by entering only the last digits of the year at the turn of the century. The computer industry has reacted to this problem by allocating significant resources in terms of personnel and finances due to the extreme diversity of the problem. The problems encountered in the computing environment are very diverse due to many factors such as: the number of operating systems, computer languages, and types of applications in use. However, all of the factors associated with correcting the date related problem at the turn of the century could be divided into four categories: inventory, analysis, remediation, and verification.
The inventory is the list of all of the source code files of a particular system or sub-system that are required to rebuild the executing program(s). In some cases the original source code is missing or incomplete. The process of obtaining a complete set of files is subject to human error and not required by existing source code remediation solutions to begin the analysis.
The goal of the analysis is to detect only code fragments that are of interest because a date is manipulated within the computer program. This is particularly difficult since there is no way to be certain that all of the date manipulations can be located using only date related character strings. Attempts to automate the process of finding code fragments involve using a “seed list” of character sequences relating to date fields and sequentially scanning source code files. Usually, additional character sequences are discovered in the process of scanning all of the source code files. These newly discovered character sequences are then added to the seed list and re-applied against all of the source code in an iterative fashion of unpredictable duration. One of the major problems with this approach is that computer programs are typically written to assign a code fragment of interest to another variable, location or function. This could result in a failure to detect the redefined code fragments. Another problem is that this method does not verify that all of the source files are present before scanning the source files using the seed list. Hence, it is often late in the project when it is discovered that source code is missing or out of date.
Remediation is defined as the modification of a code fragment into a desirable result that corrects the identified problem. Once identified, a code fragment is subject to multiple forms of correction. This may be accomplished simply by presenting the code fragment visually or in report form and allowing manual correction one after another. Another method is to apply a set of rules particular to a specific code fragment automatically or provide one or more alternatives for user selection. However, none of the existing remediation methodologies have the capability to locate the optimal remediation points within the source code fragments. Hence, a variable named “date” may be in the comments, part of an assignment, or any one of dozens of computer constructs and all could be traversed before locating its definition which is most likely the best location to correct the problem. Worse, correcting a problem at the wrong location within the processing could compound the work effort required to actually remediate or correct the identified code fragment.
Verification of the remediated code fragment changes, which have been either manually or automatically generated, requires that said code fragments be executed in direct testing. Verification is generally overlooked in existing remediation methodologies. Currently, this requires comprehensive testing of all of the program functions since it unknown at the user level if the testing actually traversed all of the newly modified code fragments. However, in practice, the data entry fields associated with dates is all that is tested. Additionally, a modified code fragment could be traversed when no date was actually entered as in the case of program initialization. Computer programmers know this and generally do some level of additional testing to expose these hidden potential problems. Now the problem becomes to determine when to stop testing since there are no metrics regarding the percentage of completion other than the total of all possible tests that could be run. It is also possible that a code fragment modification could have been made without having a specific test case to traverse the newly modified code fragment. Inadequate or incomplete testing and verification has plagued a number of the year 2000 conversions after the systems were actually installed.
The technical challenge is to find an automated method to identify computer code fragments having only partially defined search criteria and the subsequent remediation and verification of said computer code fragments while minimizing the introduction of human errors and reducing the total effort required throughout the entire process.
SUMMARY OF THE INVENTION
The present invention is directed to a process which: identifies computer code fragments within a computer program without having specific search criteria; corrects said computer code fragments; and verifies the corrections applied to said computer code fragments. The present invention is also directed to a process that reduces or eliminates human intervention by providing integrity checking within the process. The invention is directed to a process that comprises the following steps: reading into memory computer source code file or files; generating a symbol table containing related information; optionally verifying that all symbols are present for a given system or sub-system; identifying symbols of interest; repeating the following steps for a plurality of symbols;
checking for forward or backward related symbols and providing for automatic transformation of said symbols;
optionally manually or automatically modifying the code fragments so as to correct the identified problem;
assigning and dynamically modifying a confidence factor to each symbol;
inserting logging statements proximate to the manually or automatically inserted code fragments;
building and executing the modified program; logging the newly modified code fragments; verifying that all modified code fragments have been traversed during testing and verification.
The present invention has several advantages over the prior art of correcting code fragments and data relating to the year 2000 compliance. One advantage is due to the global symbol table generation. This provides an integrity check to insure that all files are present before the analysis begins. This eliminates multiple partial searches of the seed list against an incomplete source code base. The global symbol table also provides the advantage of forward and backward linking to other computer code fragments so that redefinition of positively identified code fragments can not escape detection. Once a symbol is recognized as a redefinition, an automatic transformation can be done as opposed to a manual code fragment modific
Clignett Jeffrey D.
Fahle, Jr. William A.
Johnston Lance P.
Travis Sheldon H.
Waldron, III Theodore C
Breene John
Kress Hugh R.
Lewis Cheryl
MigraTEC, Inc.
Winstead Sechrest & Minick P.C.
LandOfFree
System and method for automated identification, remediation,... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with System and method for automated identification, remediation,..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and System and method for automated identification, remediation,... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2503962