US6775827B1 - Real-time program audit software - Google Patents
Real-time program audit software Download PDFInfo
- Publication number
- US6775827B1 US6775827B1 US09/611,210 US61121000A US6775827B1 US 6775827 B1 US6775827 B1 US 6775827B1 US 61121000 A US61121000 A US 61121000A US 6775827 B1 US6775827 B1 US 6775827B1
- Authority
- US
- United States
- Prior art keywords
- audit
- program
- source
- statement
- file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime, expires
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3624—Software debugging by performing operations on the source code, e.g. via a compiler
Definitions
- the Microfiche Appendix comprises 188 frames located on 2 microfiche.
- the present invention relates generally to a method and system for auditing and analyzing the execution of computer programs in real-time, and particularly to a method and system for generating source program auditing statements for debugging an application program.
- source programs are written in a source programming language by computer programmers.
- source programs can be generated by a Fourth Generation Language (4GL) or a computer-aided software engineering (CASE) tool.
- Programs created using a Fourth Generation Language or a CASE tool are automatically translated into source statements of a conventional programming language as an intermediate step to compilation and execution.
- Conventional programming languages include Common Business-Oriented Language (COBOL), formula translation (FORTRAN), Pascal, and Report Program Generator (RPG), amongst others.
- COBOL Common Business-Oriented Language
- FRTRAN formula translation
- Pascal Pascal
- RPG Report Program Generator
- the output program must be tested to determine if the program works as designed.
- the program is executed against data to verify the efficacy and accuracy of the program as executed.
- both the programmer and the application designer are generally referred to as the programmer.
- U.S. Pat. No. 5,574,898, issued on Nov. 12, 1996 to David B. Leblang et al. discloses a data processing system and method which feature an object selector including an auditor for recording, as an audit record, which versions of objects are accessed by a processor during a data processing process. Each derived object is associated with an audit record.
- a system build process starts the auditor prior to executing commands which produce derived objects, and stops the auditor when those commands are completed. The process records any arbitrary sequence of commands.
- the invention of Leblang et al. is a CASE system and cannot be utilized with other programming languages or source programs, regardless of how they are generated. Also, the invention of Leblang et al.
- the program also generates a configuration record which provides a complete record of software builds which includes a listing of all source file versions used, versions of build tools, and all build options specified. Configuration records can then be compared by showing the differences between two builds of the same program. Other commands label the builds with version labels on object versions listed in the record.
- the invention of Leblang et al. is designed to monitor the version of a software program, and the objects used within that software program, during the design of the program. It is a tool to be used by computer programmers who are utilizing CASE tools to write a software program and, therefore, is not as useful as the present invention in that it is limited to CASE tool program design.
- the invention of Leblang et al. is not useful for monitoring the execution of a program in a remote time after the creation of the program.
- the invention of Leblang et al. is distinctly different from the present invention in that it was not designed to monitor the execution of a program utilizing any type of programming language; the current invention is designed to monitor any type of machine code as it executes.
- Leblang et al. do not suggest real-time program audit software according to the claimed invention.
- U.S. Pat. No. 5,754,763, issued on May 19, 1998 to Thomas W. Bereiter shows a software auditing program which is designed to monitor the number of users who simultaneously invoke one or more application programs which occur in response to system management tasks.
- the auditing program therein counts the number of simultaneous invocations in order to determine whether an authorized number of copies of each program within the managed region has been exceeded.
- the protocol requires a dedicated license server.
- the sole purpose of the invention of Bereiter is to use a license server to identify violations of the licenses of an organization.
- the program therein does not audit any other activity nor does it aid in the actual execution of a program. It does not aid in the monitoring of program errors and trouble shooting during the execution of a program or system, as does the current invention. Bereiter does not suggest real-time program audit software according to the claimed invention.
- Bailey et al. also make a record of the backups in order to verify that the most recent files are in use and are concurrent with the backup records.
- the invention of Bailey et al. is distinctly different from the current invention. Bailey et al. protect or audit data files, while the current invention audits program executions. These are very distinct activities. Bailey et al. do not suggest real-time program audit software according to the claimed invention.
- Johnson et al. also permit reconstruction of the record units of an enterprise in the event of a catastrophic event. Johnson et al. audit storage files but not program execution and is, therefore, distinctly different from the present invention. Johnson et al. do not suggest real-time program audit software according to the claimed invention.
- the current invention is a software program, a method, and a system for generating source program audit statements which examine and verify program statements and data as the program executes.
- the audits generated by the real-time program audit provide real-time analysis of the execution of the program.
- the real-time program audit software may be used with any programming language that uses source program statements, whether the source statements are compiled into an executable object or are interpreted during program execution.
- Conventional source programs are selected for auditing based on an audit profile.
- the audit profile is customized for specific compile and initial execution options.
- the source program is expanded with the selected audit statements.
- the source program is compiled with a conventional language compiler.
- Program execution audits are based on the initial execution audit profile, customized execution audits, or dynamic audits specified during program execution.
- Program audit output is to a disk or print file, and is available for immediate online display or printing, or for expanded auditing analysis. Expanded auditing analysis provides for extensive analysis of the real-time program audit output data from all audited programs based on the desired analysis, which includes program, user, date and time ranges, audit code prefixes, audited file, field, label, and any execution audited data value.
- the real-time program audit software is a new approach to auditing the execution processing of programs of virtually any source programming language.
- the real-time program audit is basically a pre-compiler program that is specific for the type of programming language utilized. In other words, a different version of the real-time program audit software is required for each programming language compiler or interpreter utilized.
- the audit includes all field names used in the audited source statements and their data values at program execution. Date and time are included in the audit.
- Real-time online review and analysis of the auditing is an integral part of the real-time audit program software. Real-time printing of the auditing for off-line review and analysis is also provided.
- the invention alternatively, permits the existing conventional source program to optionally remain unchanged by creating a separate expanded source program in another library.
- the invention provides for more rapid understanding and correction of errors, problems, or programming logic than is possible with the conventional source program.
- the source program is expanded with standard comprehensive program documentation. Examples of the documentation provided are file names, file keys, and call program names. This expansion results in source program's being significantly faster to write and test by the original programmer. Also, the program is much easier to read and understand by programmers unfamiliar with it, and therefore programmers can more easily modify the program.
- Still another object of the invention is to provide default audit compile profiles which provide for typical auditing environments such as first program test audits, completed program test audits, pilot production audits, and production environment audits.
- the default audit profiles simplify the process of selecting auditing options to be included in the expanded source program.
- the invention allows a selected audit profile to be modified for the selected program and used when the conventional source program is expanded with audit statements.
- Another object of the invention is to allow virtually any executable source program statement to be audited.
- the invention also allows virtually any file in the source program to be audited, together with desired file operation codes, and the data for all key fields used in the audited file operations.
- the invention provides ten levels of auditing which may be dynamically changed during program execution. Any executable operation code may be audited together with all fields referenced in each audited statement.
- the invention provides standard audit operation code audit prefix codes beginning with the characters Z$, and with a suffix code unique to the operation code.
- a further object of the invention is to allow virtually any field or label used in the source program to be audited when either referenced or modified, together with the data value of each audited field. Also, the invention provides select and omit functions which qualify the auditing of operation codes by field name(s).
- Another object is to provide program default initial execution profiles, which are provided for typical initial execution environments, such as first program test, completed program test, pilot production, and production environment.
- the default initial execution profiles simplify the process of auditing the execution of programs by providing frequently selected audit execution options.
- the invention allows a selected execution profile to be modified for the selected program and used during the execution of the program.
- An additional object is to optionally output audit data to a disk, and to provide for the retention of the audit data for both test and production environments.
- the invention also provides an audit database in date and time sequences from all audited programs. This provides for analysis of audited statements across all audited programs by date and time sequence. The analysis may include program, user, date and time range, audit code prefix, file, field, label, and/or any execution audited data value.
- the invention provides formatted audit reporting of historical audit information for use by internal and external auditors at a level of detail and auditability not possible previously.
- Another object of this invention is to reduce the cost of developing and maintaining source programs by significantly reducing the skills and training needed by programmers, and to reduce much of the risk involved in implementing and maintaining programs.
- the invention also reduces the number of programmers required to develop and maintain programs.
- This object may be advantageous in a large variety of computer operation settings and is particularly useful with multiple programmers and users that are utilizing the same programming language on the same compiler on a remote computer.
- FIG. 1A is a block diagram of the source program compile and initial execution audit functions (program Z$PGM01).
- FIG. 1B is a block diagram of the expansion of the conventional source program with audit statements (program Z$PGM02), and the conventional programming language compile of the expanded source program.
- FIG. 2 is a block diagram of the program execution audit options (program Z$PGM03), including the modification of the initial execution audit options, and the conventional execution of the compiled program object with audit outputs.
- FIG. 3 is a block diagram of the create or change options and run audit analysis options (program Z$PGM04), including the creation or change of audit analysis reporting options, and the processing of the audit analysis report.
- FIG. 4 is a block diagram of the create or change options and run formatted audit analysis reporting options (program Z$PGM05), and the processing of the formatted audit analysis report.
- FIG. 5 is a block diagram of the modify source program compile and initial execution audit options (program Z$PGM06), including the capability to undo all or selected audit source statements.
- FIG. 6A is a flowchart of the pseudo-code for the create or change compile and initial execution audit options program (Z$PGM01).
- FIG. 6B is a flowchart of the pseudo-code for the create or change compile and initial execution audit options program (Z$PGM01).
- FIG. 6C is a flowchart of the pseudo-code for the create or change compile and initial execution audit options program (Z$PGM01).
- FIG. 6D is a flowchart of the pseudo-code for the create or change compile and initial execution audit options program (Z$PGM01).
- FIG. 7A is a flowchart of the pseudo-code for the create or change compile and initial execution audit options program (Z$PGM01).
- FIG. 7B is a flowchart of the pseudo-code for the create or change compile and initial execution audit options program (Z$PGM01).
- FIG. 7C is a flowchart of the pseudo-code for the create or change compile and initial execution audit options program (Z$PGM01).
- FIG. 8 is a flowchart of the pseudo-code for the create or change compile and initial execution audit options program (Z$PGM01).
- FIG. 9A is a portion of the flowchart of the pseudo-code for the expand source program with audit statements program (Z$PGM02).
- FIG. 9B is a portion of the flowchart of the pseudo-code for the expand source program with audit statements program (Z$PGM02).
- FIG. 9C is a portion of the flowchart of the pseudo-code for the expand source program with audit statements program (Z$PGM02).
- FIG. 10A is a portion of the flowchart of the pseudo-code for the expand source program with audit statements program (Z$PGM02).
- FIG. 10B is a portion of the flowchart of the pseudo-code for the expand source program with audit statements program (Z$PGM02).
- FIG. 10C is a portion of the flowchart of the pseudo-code for the expand source program with audit statements program (Z$PGM02).
- FIG. 11 is a portion of the flowchart of the pseudo-code for the expand source program with audit statements program (Z$PGM02).
- FIG. 12A is a portion of the flowchart of the pseudo-code for the modify the initial execution audit options program (Z$PGM03).
- FIG. 12B is a portion of the flowchart of the pseudo-code for the modify the initial execution audit options program (Z$PGM03).
- FIG. 13A is a portion of the flowchart of the pseudo-code for the create or change options and run the audit analysis reporting program (Z$PGM04).
- FIG. 13B is a portion of the flowchart of the pseudo-code for the create or change options and run the audit analysis reporting program (Z$PGM04).
- FIG. 13C is a portion of the flowchart of the pseudo-code for the create or change options and run the audit analysis reporting program (Z$PGM04).
- FIG. 14A is a portion of the flowchart of the pseudo-code for the create or change options and run the formatted audit analysis reporting program (Z$PGM05).
- FIG. 14B is a portion of the flowchart of the pseudo-code for the create or change options and run the formatted audit analysis reporting program (Z$PGM05).
- FIG. 14C is a portion of the flowchart of the pseudo-code for the create or change options and run the formatted audit analysis reporting program (Z$PGM05).
- FIG. 15A is a portion of the flowchart of the pseudo-code for the modify source program compile and initial execution audit options program (Z$PGM06).
- FIG. 15B is a portion of the flowchart of the pseudo-code for the modify source program compile and initial execution audit options program (Z$PGM06).
- FIG. 15C is a portion of the flowchart of the pseudo-code for the modify source program compile and initial execution audit options program (Z$PGM06).
- the present invention is a real-time program audit software that is a method and system for generating source program audit statements which provide analyses of program statements and data as the source program executes. These audit statements provide for real-time analysis of the execution of the program.
- the real-time program audit software is applicable to virtually any programming language that uses source program statements, whether the source statements are compiled into an executable object or are interpreted during program execution.
- Conventional source programs are selected for auditing based on an audit profile; the audit profile is customized for specific compile and initial execution options; the source program is expanded with the selected audit statements; and the source program is compiled with a conventional language compiler.
- Program execution audits are based on the initial execution audit profile, customized execution audits, or dynamic audits specified during program execution.
- Program audit output is to a disk or print file, and is available for immediate online display or printing, or for expanded auditing analysis.
- Expanded auditing analysis provides for extensive analysis of the real-time program audit output data from all audited programs based on the desired analysis, which includes: program, user, date and time ranges, audit code prefix, audited file, field, label, and any execution audited data value.
- Conventional programming language is defined to be any artificial language that can be used to define a sequence of instructions that can ultimately be processed and executed by a computer; a translation process, from the source code expressed using the programming language to the machine code that the computer needs to work with, must be automated by means of a compiler.
- programming language refers to any series of source codes regardless of whether the program statements are compiled or interpreted.
- Source code is human-readable program statements written in a high-level or assembly language that are not directly readable by a computer.
- a “source program” is the source code version of a program.
- Object code is the code, generated by a compiler or an assembler, that was translated from the source code of a program. Object code generally refers to machine code that can be directly executed by the system's central processing unit (CPU), but it can also refer to assembly language source code or a variation of machine code.
- CPU central processing unit
- An “interpreter” is a program that translates and then executes each statement in a program written in an interpreted language.
- a “compiler” is any program that transforms one set of symbols into another by following a set of syntactic and semantic rules.
- a compiler is a program that translates all the source code of a program written in a high-level language into object code prior to execution of the program. As used herein, “compiler” refers to both interpreter and compiler.
- Real-time refers to a time frame wherein the computer responds to situations as they occur.
- the analyses which occur in the present invention occur at the rate at which the audited program is executed.
- Real-time operations are those in which the machine's activities match the human perception of time or those in which computer operations proceed at the same rate as a physical or external process.
- Opera (OP) code is the portion of a machine language or assembly language instruction that specifies the type of instruction and the structure of the data on which it operates.
- validating refers to accepting a pre-chosen variable or changing that variable to a preferred variable.
- Variables include program language, conventional source program, and audit profile.
- the present invention provides a method and system for generating computer source code audit statements from input source programs of virtually any commercial programming language.
- the generated audit source statements are inserted into a copy of the input source program (the conventional source program) , become an integral part of the copied source program (the expanded source program), and are available for optional auditing at any time during program development, program testing, implementation, or in a production environment, without intervention by the programmer, or anyone else.
- the generated source code audit statements then may be utilized during the execution of the compiled program object, or execution of an interpreted source program, to provide a real-time audit of the detailed processing of the program against the data processed by the program.
- the resulting real-time audit output may be viewed online as the program execution takes place, or may be viewed later both online or in printed audit analysis reports. Audits may be specified at up to ten levels, providing for no auditing, auditing of only key program functions, to very comprehensive auditing of virtually every executable instruction as it is executed, with all the data processed by the instruction. The level of auditing may be changed dynamically as the program is executing by using dynamic audits.
- this invention provides for the insertion of source program documentation statements into the input conventional source program.
- This provides comprehensive and useful program documentation not normally found in conventional source programs written by most commercial programmers, and not available in most commercial software products.
- the resulting expanded source program becomes much easier to read and comprehend, particularly for programmers unfamiliar with the program, and the resulting source program logic is much easier to understand by viewing the audit output of the actual processing being performed against the data being processed.
- the real-time program audit software provides a separate licensed implementation for each source programming language implementation supported.
- each programming language vendor compiler that supports specific language functions and operation codes (OP codes) could have a licensed implementation of the real-time program audit software which would support that specific language implementation.
- Each programming language requires a separate version of the real-time program audit software.
- FIG. 1A shows a block diagram of the initial input and output files needed for the real-time program audit software.
- FIG. 1A shows the source program compile and initial execution audit functions used.
- the program module create or change compile and initial execution audit options for program 100 handles the initial input/output files for the real-time program audit software.
- the create or change compile and initial execution audit options program 100 (Z$PGM01) allows the programmer to quickly and easily audit and document the conventional source program 27 or select additional audits for a previously expanded source program.
- This program is a setup program for the expand input with audits program, the pre-compiler 200 (Z$PGM02) (FIG. 1 B), and provides all the information and options needed to expand the source program with audit statements.
- the select compile and initial execution audit options 20 for program 100 represents the screen input.
- the programmer decides which files and additional information is to be audited by the real-time program audit software.
- the operation code audit profile and master information file 21 contains an audit profile of virtually every operation code and file description format used by programmers in writing source programs in the vendor programming language implementation.
- the operation code audit profile and master information file 21 determines exactly how the operation code is to be audited, if selected for auditing, including all variable names and status codes used in the instruction.
- the profile also determines whether the audit is to be inserted before the source statement (as in branches), or after the source statement (as in file I/O).
- the operation code audit profile and master information file 21 contains the standard audit prefix code for the operation code, such as Z$R for READ and Z$W for WRITE.
- the compile and initial execution audit profiles 23 master file contains a default compile audit profile, and a default initial execution audit profile for typical programming environments such as: initial compile, where comprehensive documentation would be appropriate; initial test, where audits of all file input and output would be appropriate; pilot implementation, where comprehensive auditing would be appropriate; and for production implementation, where selected auditing such as key event auditing may be appropriate.
- Production implementation auditing is critical for enhanced error correction and for auditing by internal and external auditors.
- the data file names, attributes, keys, fields length, and types 25 master file contains all the necessary information about each file used in the source program to insert the audit and documentation statements into the expanded source program. This information is automatically generated by analyzing the compile listing output of the conventional input source program.
- the conventional source program library 27 is the existing source program library in the programming language at the licensed customer site.
- Previously expanded conventional source program library files are included as a conventional source program library 27 because they are handled in the same manner as if unexpanded. Programs to be expanded with audit and documentation statements should compile successfully before program expansion, including already expanded conventional programs.
- Conventional data files 29 are the existing data files used in the conventional source programs at the licensed customer site.
- An appropriate audit profile is selected for the selected program name, together with an initial execution profile.
- the default audit profile, documentation options, and initial execution options may be utilized, or the profile options may be extensively modified for each program file, operation code, field and label used in the conventional source program.
- the ability to bypass auditing of labeled subroutines or procedures that are specified by the programmer or for the entire installation is provided. This provides the ability to bypass the auditing for very repetitive routines such as date validation and field names defined as constants, which can greatly reduce the amount of audit output, allowing focus on key program processing routines.
- the selected compile audit options file 22 (Z$AUDITC), and the program file and field information file 24 (Z$AUDITM) are output, and used in the next program, the expand input with audits program, the pre-compiler 200 , to expand the source program with audit statements.
- the initial execution audit options file 26 (Z$AUDITO) is also output, and is used during program execution to create audit output.
- the selected compile audit options file 22 provides output which can also be used as shown in FIG. 2 . This is denoted by the circled capital A.
- the initial execution audit options file 26 also provides output which can be used, as denoted by the circled capital B. Advanced and online review of output audits is also provided, by optionally displaying the source program variable names on a line above the actual audit data being executed.
- the submit program to insert audit statements 28 represents screen input.
- the programmer decides whether to submit the conventional program to the expanded with audit statements by real-time program audit software.
- the block diagram shown on FIG. 1A continues to FIG. 1B, as shown.
- the expand input with audits program provides a one-pass expansion of the input conventional source program 27 , utilizing the selected compile audit options file 22 , and program file and field information file 24 from the previous program.
- This expand input with audits program 200 is the major module in this invention, and it may be considered to be a pre-compiler to the conventional programming language compiler 37 .
- the expanded source program audit messages 31 are read into the pre-compiler 200 . Each conventional source statement read is examined for insertion of audit and/or documentation statements, using the selected options.
- Every data field for audited statements is audited, and a unique audit code is assigned to each audited statement, by suffixing the standard assigned audit prefix code with a sequential number starting with 001. Therefore, the first audited READ statement would have an audit code of Z$R001.
- the pre-compiler 200 is output to a separate expanded source program with selected audit statements library 33 , leaving the input conventional source program unchanged.
- Each of the audit statements are assigned a unique fifteen digit number to provide for a second level file of very detailed audit information for every audited source statement executed. This optional detailed auditing provides for auditing all of the one hundred RPG indicators, and the command keys, and other key information at every audited statement executed in the expanded source program for RPG language implementations.
- the pre-compiler 200 also includes an express expand source option which utilizes default audit options normally utilized by the programmer. This express expand option allows a programmer to key only the program name and then to press a command key to expand the input source program with real-time program audits. This express option is in addition to the option to fully customize the audits by file, record format, operation code, field, and program label.
- the expanded source program with selected audit statements library 33 and the conventional (existing) program language compiler files 35 are read into the conventional programming language source program compiler 37 .
- the conventional programming language source program compiler 37 compiles the expanded source program, producing an expanded executable program object with selected audits 32 having the compiled audit statements.
- the conventional programming language source program compiler 37 also produces a program source compile listing with audit statements document 39 .
- the source program compile listing may be utilized as the basis for creating real-time programming audit work files.
- the compile listing completely defines the program files, fields, labels, and operation codes including copybooks utilized in the source program.
- the expanded source program with selected audit statements library 33 and the expanded executable program object with selected audits 32 are also referred to in other block diagrams denoted by the circled capital letters.
- the expanded source program with selected audit statements library 33 is utilized in FIG. 5 as denoted by the circled capital C, and the expanded executable program object with selected audits 32 is utilized in FIG. 2 as denoted by the circled capital D. It is possible to include several commonly utilized levels of compilers in the same language implementation. For example, for IBM AS/400 RPG, both the RPGIII (RPG/400) and RPGIV (ILE RPG) can be provided in the same implementation. For IBM AS/400 COBOL, both COBOL/400 and COBOL ILE can be provided in the same implementation.
- FIG. 2 shows a block diagram of the program which is responsible for the execution of audit options.
- the modify initial execution audit options program 300 (Z$PGM03) allows the programmer to quickly and easily modify the selected initial execution options for compiled audit statements, even during program execution.
- the selected compile audit options file 22 is utilized by the modify initial execution audit options program 300 .
- the modify initial execution audit options for program 41 represents screen input. Here the programmer decides whether to change the selections previously made pertaining to audit options for the program and to write these selections to the modify initial execution audit options program 300 .
- the modify initial execution audit options program 300 is the program that allows the dynamic modification of the auditing options and audit output as the program is in program execution, by modifying the initial execution audit options for program file 26 into the current execution audit options file 43 .
- the initial/current execution audit options program is (Z$AUDITO) utilized to create the initial execution audit options for program file 26 and the current execution audit options file 43 .
- the current execution audit options file 43 and the expanded executable program object with selected audits file 32 are used in conventional program execution by the executable program object with selected audits 47 .
- Data files used in the program conventional processing 45 are also write to, and are written to, by the executable program object with selected audits 47 .
- the output from the executable program object with selected audits 47 includes an audit execution analysis report 49 and an audit execution output file 42 .
- the audit execution output file 42 is also used in FIG. 3 as denoted by the circled E.
- FIG. 3 is a block diagram depicting the create or change options and run audit analysis reporting program 400 , and includes the creation, change and processing of audit analysis reporting options.
- the create or change options and run audit analysis reporting program 400 (Z$PGM04) allows the programmer or any authorized user to analyze the audit execution output file 42 (Z$AUDITF) information, if this file was output during program execution.
- the display or print execution audit analysis 51 screen display allows the user to decide which menus to choose.
- the requester may select from a menu of audit analysis functions and create printed or displayed audit output or create formatted disk audit output 59 (Z$AUDITE) for further analysis.
- the create or change options and run audit analysis reporting program 400 (Z$PGM04) also produces an audit analysis reporting document 57 (Z$AUDITP).
- An audit analysis reporting options file 53 (Z$AUDITA) provides the ability to save and retrieve reporting options by a name assigned to the audit analysis request.
- Typical audit output would be for a specific job execution of the program, or by user, terminal, date, or time range.
- the printed and disk audit outputs may be viewed and scanned using standard system utility programs and available utility programs in real-time as the program executes, or later for error resolution or analysis.
- FIG. 4 shows a block diagram of the create or change options and run formatted audit analysis reporting program 500 and the processing of the formatted audit analysis report 65 .
- the display or print formatted audit analysis 61 screen display permits the user to select options for the create or change options and run formatted audit analysis reporting-program 500 (Z$PGM05).
- the create or change options and run formatted audit analysis reporting program 500 (Z$PGM05) allows the programmer or any authorized user to analyze the extracted audit execution file 59 (Z$AUDITE), if the extracted audit execution file 59 (Z$AUDITE) was output by the previous program.
- a formatted audit analysis reporting options file 63 (Z$AUDITS) provides the ability to save and retrieve formatted reporting options by a name assigned to the formatted audit analysis request.
- the requestor may select from a menu of formatted audit analysis functions, presented by the display of formatted audit analysis 67 , and create a printed audit output.
- the formatted audit analysis reporting 65 allows the user to print audit analysis. Typical audit output would be for a specific application to selected transaction types over a range of dates and times. This focused audit output is most useful for internal and external auditors in verifying the detailed computations, processing, and transactions behind more summary output. These detail transactions may be transient computations that otherwise would never have been written to disk and saved without the audits, and not available on any disk journal.
- the modify compile and initial execution audit options program 600 (Z$PGM06) allows the programmer to undo or partially undo the previous expansion of source programs with audit statements, and therefore remove the expanded source program with selected audit statements file 33 .
- the input/output to the modify compile and initial execution audit options program 600 is shown in the block diagram FIG. 5 .
- the expanded source program is read from the expanded source program library and contains the expanded source program with selected audit statements file 33 . All audit and documentation statements are summarized and displayed to the programmer on screen by the modify compile and initial execution audit options for program 71 screen display. The programmer may then undo all or some of the auditing or documentation selections.
- the initial execution options for the program are similarly read, summarized, and displayed to allow the undoing of these selections.
- the source program may then be expanded with additional audit, documentation, and initial execution options with the expand input with audits program 200 using input/output that is very similar to that shown FIG. 1A, and the same files are frequently used, as shown by both FIG. 1 A and FIG. 5 .
- the block diagram shown in FIG. 5 flows to FIG. 1B in the exact same manner as does FIG. 1 A.
- the operation code audit profile and master information file 21 is utilized several times and is the same file throughout even though its position in the block diagrams are not identical.
- the source program may alternatively be left as a conventional program.
- FIGS. 6A, 6 B, 6 C, 6 D, 7 A, 7 B, 7 C, and 8 The pseudo-code for the create or change compile and initial execution audit options program 100 (Z$PGM01) is shown in the flowchart depicted in FIGS. 6A, 6 B, 6 C, 6 D, 7 A, 7 B, 7 C, and 8 .
- the flowchart flows linearly from figure to figure as indicated.
- FIG. 6A shows the initial selection on the screen display corresponding to the select compile and initial execution audit options for program 20 shown in the block diagram FIG. 1 A.
- the initial display 101 shows the initial screen images.
- the initial display 101 prompts the user to enter the name of the conventional source program 27 and select the default compile audit profile from the compile and initial execution audit profiles 23 master file.
- the initial steps involve validating the selection of the program 102 to be audited from a display of conventional source programs 27 listed preferably in a library format, validating a selected program language 103 to determine that the program language is acceptable for auditing by the audit pre-compiler, and validating the entered audit profile 104 or allowing selection of the audit profile.
- FIG. 6B includes the steps of retrieving and saving operation codes 105 , 106 , 107 .
- Retrieving and saving the default audit profile operation codes and the default initial execution audit options 105 are executed at this time.
- This step 105 includes retrieving and saving the default audit profile operation codes which are to be audited and the default initial execution audit options for the selected audit profile.
- the next step 106 involves retrieving and matching the operation codes to be audited.
- the selected program source operation code is retrieved and matched to the default audit profile operation code used.
- the selected operation codes are to be audited unless deselected subsequently during execution of the real-time program audit software.
- Next is the step 107 of saving the programs unselected operation codes.
- This step 107 involves saving the program operation codes which are actually used in the program but are not selected for auditing in the default audit profile. These saved program operation codes may be selected for additional auditing later during the execution of the real-time program audit software.
- these steps 108 , 109 , 110 involve the matching of program operation codes used by the conventional source program 27 but not in the default audit profile with the master list of all operation codes valid for auditing. Also saved are any program operation codes used by the program but that are not valid for auditing, for later optional display 108 . Also shown is the step 109 of retrieving or creating the data file names, attributes, keys, fields, lengths, types 25 master file for each file used.
- the next step 110 creates a cross reference which involves creating a separate file and field label files on a disk with one keyed record per file. This step 110 creates the program file and field information file 24 ; it creates a keyed record per field including program defined constants and internally described file fields.
- the next step 111 deletes all unreferenced fields that are not actually utilized in the conventional program from the program file and field information file 24 .
- This step 111 deletes all unreferenced fields which are not used from the disk cross reference file.
- the next step 112 displays a menu of the functions specified in the selected audit profile and allows the selection of the menu items for auditing profile overrides. These menu options are grouped by files, operation codes, and fields.
- the next step 113 allows a command key to be pressed to accept the audit profile options as displayed. This creates the selected compile audit options file 22 and the initial execution audit options file 26 . An option is provided for submitting the source program directly to the basic audit pre-compiler program for insertion of the auditing statements utilizing the submit program function.
- a step 114 is provided which enables the user to display the menu options in order to override the default audit options for the program.
- the menu override options include: Files, Operation codes, Fields and Labels, and initial execution options. If the override option File is chosen 115 , the display will show a summary of the file and audit status utilized.
- Step 116 enables a user to select or deselect files for auditing, to modify auditing levels, and to permit a command key to display a second line with each operation code used by the file and its auditing status.
- FIG. 7B shows selections 117 , 118 , 119 pertaining to auditing the operation codes.
- Step 117 enables the programmer to select (or unselect) to audit each operation code used in each file, and to determine the auditing level. It is important to emphasize that all key fields used in the audited file's operation codes will be audited automatically. The programmer may also select additional non-key fields for automatic auditing. If the programmer chooses to use operation code overrides, step 118 displays each operation code. The display will include the auditing status of the operation code and the level of auditing selected. It will show the assigned audit code prefix and apparent duplicate field names.
- Step 119 enables the programmer to select (or unselect) each operation code used for auditing, the auditing level, and to change previously assigned audit prefix codes. Fields used in non-file audited operation codes will be audited automatically. Audit prefix codes will be suffixed in the pre-compiler 200 program to uniquely identify an audit point.
- FIG. 7C shows additional audit options 120 , 121 , 122 , 123 , 124 .
- a display of each Field and Label used in the program is shown as a single line on a Field summary screen, and a display of the auditing status and which of the ten levels of auditing of each Field and Label used in the program is also shown.
- Step 121 enables the programmer to select (or unselect) each Field or Label used for auditing, to modify the audit levels, and to allow auditing when a field is used or is modified.
- step 122 displays the default initial execution profile options.
- Step 123 requires the programmer to validate all default profile and override entries. Error messages are displayed as required, wherein the programmer accepts and revalidates input until all input is correct.
- Step 124 provides a command key which may be utilized to exit the program and to submit the source program for expansion of the auditing statements.
- FIG. 8 shows the output for the create or change compile and initial execution audit options program 100 .
- step 125 formats and creates the output files required for the program to be utilized in expanding the conventional source code with audit statements.
- the output files which are produced include selected basic audit compile options for source program expansion to the selected compile audit options file 22 , program file information, key fields information and field cross reference for source program expansion to the program file and field information file 24 , and basic audit initial execution options for the object (executable) program to the initial execution audit options for program file 26 .
- Step 127 prints a summary of the audit options, the program's initial execution options, informational messages, warning messages, error messages, counts of the input conventional source statements, files, fields, and labels used.
- Step 128 displays a message that the source program has been submitted for expansion of the auditing statements. The last step 129 returns to the calling program.
- FIGS. 9A, 9 B, 9 C, 10 A, 10 B, 10 C, and 11 The flowchart for the pseudo-code for the expand input with audits program, the pre-compiler 200 program (Z$PGM02), is shown in FIGS. 9A, 9 B, 9 C, 10 A, 10 B, 10 C, and 11 .
- the first four steps 201 , 202 , 203 , 204 in the pre-compiler 200 program are depicted in FIG. 9 A.
- the pre-compiler 200 program reads and stores the selected audit compile options which were created by the create or change compile and initial execution audit options program 100 . Additional information for the expansion of the conventional source program is stored in the operation code audit profile and master information files 21 .
- the pre-compiler 200 program reads and stores the program file information, the key fields information, and the field cross reference information that were created by the create or change compile and initial execution audit options program 100 .
- the pre-compiler 200 program reads the conventional (existing) source statements for the program from the conventional source program 27 library, and in a single pass of the conventional source program statements, expands the source by inserting the basic audit source statements and expanded documentation statements.
- the pre-compiler 200 determines if expanded documentation is selected. For each file used, comment lines are created with the full file name and a list of the file field names used in the file key. Auditing may be limited to only expanded source program documentation.
- FIG. 9B shows the auditing to disk selections 205 , 206 for the pre-compiler 200 program. If the programmer has selected the option 205 to audit operation codes or data fields to disk, then the programmer must insert the File description source statements for the audit execution output file 42 into the source program statements. Audit execution output file 42 source statements are copied from the audit master information. Related files, records, fields, and standard processing routines for this function are also copied. All audit disk output will be written to the audit execution output file 42 disk. Alternatively, the programmer may select option 206 , to effect the basic auditing of operation codes or data fields to disk. In this case, the programmer must insert the file description source statements for the audit execution output file 42 into the source program statements.
- the program copies the current execution audit options file 43 source statements from the audit master information. Also, the program copies related file, record, field and standard processing routines for this function.
- the current execution audit options file 43 is the audit execution options disk files which controls which of the audit options are active during program execution.
- the programmer inserts the file description source statements for the audit execution analysis printer file into the source program statements.
- the program copies the audit execution analysis report 49 file source statements from the audit master information and copies related files, records, field information, and processing routines for this function.
- This print record output is formatted in a manner similar to the previous disk record output.
- the audit execution analysis report 49 printer file provides real-time analysis of audit output during program execution from a printer spool file. This output is for that specific program execution, for only that specific user, and for only that job.
- step 208 the auditing and/or documentation options selected in the previous program, the create or change compile and initial execution audit options program 100 , for each executable source statement read are determined. This determination involves consideration of the statement operation code, the statement variable names, and the conditions, such as indicators or switches.
- the auditing and/or documentation source statements are inserted using the audit operation code profile for the source statements being processed.
- the resulting audits may be output to disk via the audit analysis reporting options 53 file and/or to a printer via the audit analysis reporting 57 program based on selections in the create or change compile and initial execution audit options program 100 .
- step 209 a unique audit name for the audited source statement is generated for each source statement to be expanded with audit statements.
- the assigned three character audit prefix code for the operation code from the create or change compile and initial execution audit options program 100 is utilized.
- the audit prefix code is suffixed with a three digit sequential number each time the operation code is used in the source program. This method results in a unique identifier for every source statement audited during the execution of the program and the audited variable names identify the data being processed.
- step 210 changes to the conventional (existing) source statements can occur only if a branch is made to a statement label, and auditing is selected to audit the branch to that label, which results in an audit statement that is inserted at the label statement. These changes are normally made only to the copies of the expanded source program.
- step 211 the audit operation code profile for the source statement being processed inserts documentation comment statements for each source statement expanded.
- step 212 the entire expanded source program results are output to an expanded source program library. A new source program is created in an expanded source program library with the same program name. The entire input conventional source program is written to the expanded source program library including the inserted audit and documentation statements. The input conventional source library remains unchanged.
- step 213 the inserted audit and documentation source statements and the input of conventional program source statements are counted by program source statements and comment statements. Also, audit and documentation expansion statement errors, if any, are counted by error types.
- step 214 the expanded source program audit messages 31 printer file is utilized to print an expanded source program audit messages report. Needed audit expansion or documentation messages may then be printed. The counts of input program source statements and comment statements, and the counts of the inserted audit and documentation program source and comment statements are printed at the end of the basic audit source program expansion. The elapsed time of the execution of the audit source program expansion program is also printed.
- step 215 if the expand source program with audits is successful, then the expanded source program is allowed to be submitted to the conventional -programming language source program compiler 37 .
- An executable program object with the basic audit functions in an expanded program object library is created by successful expanded source program compilation.
- the output conventional object library remains unchanged, which allows program execution to be performed by the object program either before or after basic audit source program expansion.
- Successful completion of the expand source program with audits means that no significant errors are detected, and inserted basic audit source statements should compile successfully in the conventional language compile of the expanded source program.
- step 216 in the event that the expanded source program with audits is unsuccessful, then an error severity code is returned.
- the error severity code for the job is similar to the error severity code returned by conventional language compilers.
- step 217 once the pre-compiler 200 program is finished, the program is exited and returned to the calling program.
- the flowchart of the pseudo-code for the modify the initial execution audit options program 300 is depicted in FIGS. 12A and 12B.
- the modify initial execution audit options program 300 is the program that allows the dynamic modification of the auditing options.
- the first step 301 is to input the name of the conventional source program 27 by entering the name when prompted by the initial display screen, the modify initial execution audit options for program 41 . It is important to note that the program execution options for a program may be changed while the program object is executing when confirmed later during the execution of modify initial execution audit options program 300 .
- Step 302 requires the programmer to validate that the modify initial execution audit options program 300 has selected the audit compile options in the selected compile audit options file 22 .
- Step 303 retrieves any initial or current initial execution options for the program from the initial execution options for program file 26 (Z$AUDITO), together with the compile audit options for the program from the selected compile audit options file 22 (Z$AUDITC).
- Step 304 displays the initial or current program execution audit options and all of the compile audit options are displayed.
- Step 305 allows all the compile options to be turned on or off as execution options, and allows for the ten auditing levels to be changed.
- Step 306 causes the current execution audit options for the program to be updated to the current execution audit options file 43 (Z$AUDITO).
- the changed execution audit options will take effect immediately if the program is being executed.
- Step 307 enables a command key to be used to confirm that the audit execution options are complete and may be used for current auditing. It is indicated that the execution audit options have been changed for the program in the current execution audit options file 43 (Z$AUDITO), so that if the program is currently executing, and no auditing is taking place, the program is to start auditing with the current execution options.
- a command key is used to end the modify initial execution audit options program 300 .
- the calling program is returned to once the modify initial execution audit options program 300 ends.
- FIGS. 13A, 13 B, and 13 C are a flowchart of the pseudo-code for the create or change options and run audit analysis reporting program 400 (Z$PGM04).
- step 401 the initial screen is displayed.
- This display or print execution audit analysis 51 screen display provides for the selection of the desired audit analysis function.
- Audit analysis reporting is provided for using a selection capability from a menu of functions.
- Output provided, by the selection includes printing of audit execution output file information and creation of extracted audit execution output file information for formatted reporting.
- the printed and disk input and output may be viewed and scanned online using standard system utility programs and available utility programs.
- An option 402 is provided which allows for the entry of an audit analysis report name or the selection of a name from a display of existing audit analysis report names.
- the audit report name provides the ability to save previously entered audit report parameters for use again in the same, or a similar, audit analysis report.
- step 403 when a new audit analysis report name is entered, a menu for audit analysis reporting selection options which allows the selection of the form of output is provided. The selection of the desired audit execution output file information is also provided. Selection parameters include all keyed fields of the audit output file including Job, Program, User, Terminal, Date, and Time.
- step 404 when an existing audit analysis report name is entered, the create or change options and run audit analysis reporting program 400 retrieves the existing options for the audit analysis report name from the analysis reporting options file 53 .
- the same menu of audit analysis reporting selection options is provided and indicates which options were previously selected. The same selection options that were available when creating a new audit analysis name are allowed.
- Step 405 provides a command key which allows exiting the program without updates. All selections are validated and, when there are no errors, a command key to save the audit analysis selected options to the analysis reporting options file 53 is provided by the entered audit analysis report name.
- Step 406 provides a command key is provided to allow the audit analysis report to be run.
- step 407 if the audit analysis report is to be run, the selected audit analysis report options are processed against the audit execution output file 42 (Z$AUDITF) to produce the desired printer file (Z$AUDITP), and/or the formatted disk file (Z$AUDITE) output.
- Step 408 provides a command key to end the program, and step 409 returns to the calling program.
- FIGS. 14A, 14 B, and 14 C are a flowchart of the pseudo-code for the create or change options and run formatted audit analysis reporting program 500 (Z$PGM05).
- step 501 the initial screen is displayed providing for the selection of the desired formatted audit analysis functions.
- the formatted audit analysis reporting using a selection capability from a menu of selection and formatting functions is provided. It is important to note that printed and disk input and output may be viewed and scanned online using standard system utility programs and available utility programs.
- step 502 the entry of a formatted audit analysis report name or the selection of a name from a display of existing formatted audit analysis report names is allowed.
- the formatted audit report name provides the ability to save previously entered formatted audit report parameters for use again in the same or similar formatted audit analysis report.
- step 503 if a new formatted audit analysis report name is entered, a menu of formatted audit analysis reporting selection options is provided which allows for the selection of the form of output and for the selection for the desired extracted audit execution file information.
- the selection parameters include all keyed fields of the extracted audit execution formatted file including Job, Program, User, Terminal, Date, Time, and other parameters selected when the file was formatted.
- step 504 if an existing formatted audit analysis report name is entered, the existing options for the formatted audit analysis report name are retrieved from the formatted audit analysis reporting options file 63 .
- the same menu of formatted audit analysis reporting selection options are provided and the options which were previously selected are indicated. The same selection options that were available when creating a new formatted audit analysis name are allowed.
- step 505 a command key is provided to allow exiting the program without updates, all selections are validated, and when there are no errors, another command key is provided to save the formatted audit analysis selected options to the formatted audit analysis reporting options file 63 (Z$AUDITS) by the entered formatted audit analysis report name.
- Step 506 provides a command key to allow the formatted audit analysis report to be run.
- step 507 if the formatted audit analysis report is to be run, then the selected formatted audit analysis report options are processed against the extracted audit execution formatted file (Z$AUDITE) to produce the desired display or printer file (Z$AUDITR) of the formatted audit analysis reporting 65 .
- Step 508 provides a command key is provided to end the program and step 509 returns to the calling program.
- FIGS. 15A, 15 B, and 15 C are a flowchart of the pseudo-code for the modify compile and initial execution audit options program 600 .
- the initial screen is displayed and the program allows a name to be entered. This program is utilized to input previously expanded source programs and to allow the removal of all or selected audit source statements. This allows the complete undoing of the expanded source audit statements back to the original conventional input source program, or the partial undoing of the expanded source audit statements. The program may then be expanded with additional audit statements.
- step 602 the expanded source program is retrieved from the expanded source program library into a work file, the source program is scanned for all audit statements, and the audit functions are summarized in the same display as used in the create or change compile and initial execution audit options program.
- the audit functions in the expanded source program are displayed, and any or all of the audit functions are allowed to be removed from the work file of the input expanded source program.
- step 604 the initial (current) execution options are retrieved and displayed for the expanded source program from the initial execution audit options file 26 (Z$AUDITO). Any or all of the initial execution audit options are allowed to be removed (undone).
- Step 605 provides a command key to allow exiting the program without updates, all selections are validated, and when there are no errors, a command key is provided to save the source program from the work file back into the expanded source program library. Any changes to the initial execution is updated to the initial execution audit options for program file 26 .
- Step 606 produces a variety of printouts. A summary of the auditing options removed and the audit options remaining in the expanded source program are printed. Informational, warning, and error messages are printed as required, including counts of the input and output source statements.
- Step 607 provides a command key to call the create or change compile and initial execution audit options program to allow additional audit functions to be selected.
- Step 608 provides a command key to end the program, and step 609 returns to the calling program.
- the microfiche appendix shows four IBM AS/400 RPG source programs of the software according to a preferred embodiment.
- the microfiche appendix includes programs Z$PGM01D, Z$PGM01R, Z$PGM02R, and Z$PGM04R written in IBM AS/400 RPG III.
- Program Z$PGM01D generates a user-friendly display screen for a user.
- Program Z$PGM01R allows a programmer to quickly and easily audit and document a conventional source program, or select additional audits for a previously expanded source program.
- This program is a setup program for the expand input and audits program Z$PGM02R.
- Program Z$PGM02R is the expand input and audits program which is the primary program which expands the input conventional source program with the audit statements based on the options selected.
- Program Z$PGM04R creates cross reference information needed for the expand input with audits program.
Abstract
Description
Claims (31)
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/611,210 US6775827B1 (en) | 1999-09-20 | 2000-07-06 | Real-time program audit software |
AU62088/00A AU778165B2 (en) | 1999-09-20 | 2000-07-11 | Real-time program audit software |
CA002385433A CA2385433A1 (en) | 1999-09-20 | 2000-07-11 | Real-time program audit software |
PCT/US2000/018816 WO2001022644A2 (en) | 1999-09-20 | 2000-07-11 | Real-time program audit software |
EP00948614A EP1354270A4 (en) | 1999-09-20 | 2000-07-11 | Real-time program audit software |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US39831099A | 1999-09-20 | 1999-09-20 | |
US09/611,210 US6775827B1 (en) | 1999-09-20 | 2000-07-06 | Real-time program audit software |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US39831099A Continuation-In-Part | 1999-09-20 | 1999-09-20 |
Publications (1)
Publication Number | Publication Date |
---|---|
US6775827B1 true US6775827B1 (en) | 2004-08-10 |
Family
ID=32824981
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/611,210 Expired - Lifetime US6775827B1 (en) | 1999-09-20 | 2000-07-06 | Real-time program audit software |
Country Status (1)
Country | Link |
---|---|
US (1) | US6775827B1 (en) |
Cited By (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020116334A1 (en) * | 2001-02-22 | 2002-08-22 | International Business Machines Corporation | Invoice processing system |
US20030204840A1 (en) * | 2002-04-30 | 2003-10-30 | Youfeng Wu | Apparatus and method for one-pass profiling to concurrently generate a frequency profile and a stride profile to enable data prefetching in irregular programs |
US20040184400A1 (en) * | 2002-11-25 | 2004-09-23 | Hisao Koga | Multicarrier transmitter, multicarrier receiver, and multicarrier communications apparatus |
US20050066311A1 (en) * | 2003-09-22 | 2005-03-24 | International Business Machines Corporation | Autonomic execution tracking and correction of functions |
US20070192478A1 (en) * | 2001-09-25 | 2007-08-16 | Louie David G | System and method for configuring and viewing audit trails in an information network |
US20070294318A1 (en) * | 2006-06-20 | 2007-12-20 | Arora Amrinder S | Method, System, and Apparatus for Auditing, Tracking, or Inspection of Data, Objects, or Their Corresponding Modifications |
US20080109796A1 (en) * | 2006-11-08 | 2008-05-08 | Nicolai Kosche | Method and Apparatus for Associating User-Specified Data with Events in a Data Space Profiler |
US20080127107A1 (en) * | 2006-09-07 | 2008-05-29 | Sun Microsystems, Inc. | Method and apparatus for specification and application of a user-specified filter in a data space profiler |
US7406714B1 (en) | 2003-07-01 | 2008-07-29 | Symantec Corporation | Computer code intrusion detection system based on acceptable retrievals |
US7444331B1 (en) | 2005-03-02 | 2008-10-28 | Symantec Corporation | Detecting code injection attacks against databases |
US7558796B1 (en) | 2005-05-19 | 2009-07-07 | Symantec Corporation | Determining origins of queries for a database intrusion detection system |
US7568229B1 (en) * | 2003-07-01 | 2009-07-28 | Symantec Corporation | Real-time training for a computer code intrusion detection system |
WO2009093220A2 (en) * | 2008-01-25 | 2009-07-30 | Nxp B.V. | Sal debugging |
US7690037B1 (en) | 2005-07-13 | 2010-03-30 | Symantec Corporation | Filtering training data for machine learning |
US7774361B1 (en) | 2005-07-08 | 2010-08-10 | Symantec Corporation | Effective aggregation and presentation of database intrusion incidents |
US20100293373A1 (en) * | 2009-05-15 | 2010-11-18 | International Business Machines Corporation | Integrity service using regenerated trust integrity gather program |
US7979494B1 (en) | 2006-11-03 | 2011-07-12 | Quest Software, Inc. | Systems and methods for monitoring messaging systems |
US8046374B1 (en) | 2005-05-06 | 2011-10-25 | Symantec Corporation | Automatic training of a database intrusion detection system |
US20120036500A1 (en) * | 2006-06-02 | 2012-02-09 | Rockwell Automation Technologies, Inc. | Change management methodologies for industrial automation and information systems |
US8266177B1 (en) | 2004-03-16 | 2012-09-11 | Symantec Corporation | Empirical database access adjustment |
US20130152058A1 (en) * | 2011-12-07 | 2013-06-13 | Siemens Aktiengesellschaft | Method for Translating a Control Program in an Automation Language into an Intermediate Language |
CN103713909A (en) * | 2014-01-22 | 2014-04-09 | 扬州大学 | Java program package profiling method for generating package diagram |
US8762951B1 (en) | 2007-03-21 | 2014-06-24 | Oracle America, Inc. | Apparatus and method for profiling system events in a fine grain multi-threaded multi-core processor |
US20170149811A1 (en) * | 2015-11-25 | 2017-05-25 | Symantec Corporation | Systems and methods for identifying compromised devices within industrial control systems |
US10877869B1 (en) * | 2016-09-06 | 2020-12-29 | Jpmorgan Chase Bank, N.A. | Method and system for implementing a code review tool |
US10884895B2 (en) | 2019-01-30 | 2021-01-05 | International Business Machines Corporation | Capture of software element state changes during software application runtime and application modification based on state changes |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1993001550A1 (en) | 1991-07-01 | 1993-01-21 | Infologic Software, Inc. | License management system and method |
US5559884A (en) | 1994-06-30 | 1996-09-24 | Microsoft Corporation | Method and system for generating and auditing a signature for a computer program |
US5574898A (en) | 1993-01-08 | 1996-11-12 | Atria Software, Inc. | Dynamic software version auditor which monitors a process to provide a list of objects that are accessed |
US5613118A (en) * | 1994-06-20 | 1997-03-18 | International Business Machines Corporation | Profile-based preprocessor for optimizing programs |
US5754763A (en) | 1996-10-01 | 1998-05-19 | International Business Machines Corporation | Software auditing mechanism for a distributed computer enterprise environment |
US5771385A (en) | 1996-03-29 | 1998-06-23 | Sun Microsystems, Inc. | Setting and getting system debug flags by name at runtime |
US5794252A (en) | 1995-01-24 | 1998-08-11 | Tandem Computers, Inc. | Remote duplicate database facility featuring safe master audit trail (safeMAT) checkpointing |
US5813009A (en) | 1995-07-28 | 1998-09-22 | Univirtual Corp. | Computer based records management system method |
US5832271A (en) * | 1994-04-18 | 1998-11-03 | Lucent Technologies Inc. | Determining dynamic properties of programs |
US5903730A (en) * | 1996-08-23 | 1999-05-11 | Fujitsu Limited | Method of visualizing results of performance monitoring and analysis in a parallel computing system |
US5950003A (en) * | 1995-08-24 | 1999-09-07 | Fujitsu Limited | Profile instrumentation method and profile data collection method |
US6011920A (en) | 1995-04-05 | 2000-01-04 | International Business Machines Corporation | Method and apparatus for debugging applications on a personality neutral debugger |
US6071316A (en) | 1997-09-29 | 2000-06-06 | Honeywell Inc. | Automated validation and verification of computer software |
US6202199B1 (en) * | 1997-07-31 | 2001-03-13 | Mutek Solutions, Ltd. | System and method for remotely analyzing the execution of computer programs |
-
2000
- 2000-07-06 US US09/611,210 patent/US6775827B1/en not_active Expired - Lifetime
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1993001550A1 (en) | 1991-07-01 | 1993-01-21 | Infologic Software, Inc. | License management system and method |
US5574898A (en) | 1993-01-08 | 1996-11-12 | Atria Software, Inc. | Dynamic software version auditor which monitors a process to provide a list of objects that are accessed |
US5832271A (en) * | 1994-04-18 | 1998-11-03 | Lucent Technologies Inc. | Determining dynamic properties of programs |
US5613118A (en) * | 1994-06-20 | 1997-03-18 | International Business Machines Corporation | Profile-based preprocessor for optimizing programs |
US5559884A (en) | 1994-06-30 | 1996-09-24 | Microsoft Corporation | Method and system for generating and auditing a signature for a computer program |
US5794252A (en) | 1995-01-24 | 1998-08-11 | Tandem Computers, Inc. | Remote duplicate database facility featuring safe master audit trail (safeMAT) checkpointing |
US6011920A (en) | 1995-04-05 | 2000-01-04 | International Business Machines Corporation | Method and apparatus for debugging applications on a personality neutral debugger |
US5813009A (en) | 1995-07-28 | 1998-09-22 | Univirtual Corp. | Computer based records management system method |
US5950003A (en) * | 1995-08-24 | 1999-09-07 | Fujitsu Limited | Profile instrumentation method and profile data collection method |
US5771385A (en) | 1996-03-29 | 1998-06-23 | Sun Microsystems, Inc. | Setting and getting system debug flags by name at runtime |
US5903730A (en) * | 1996-08-23 | 1999-05-11 | Fujitsu Limited | Method of visualizing results of performance monitoring and analysis in a parallel computing system |
US5754763A (en) | 1996-10-01 | 1998-05-19 | International Business Machines Corporation | Software auditing mechanism for a distributed computer enterprise environment |
US6202199B1 (en) * | 1997-07-31 | 2001-03-13 | Mutek Solutions, Ltd. | System and method for remotely analyzing the execution of computer programs |
US6071316A (en) | 1997-09-29 | 2000-06-06 | Honeywell Inc. | Automated validation and verification of computer software |
Cited By (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7509288B2 (en) * | 2001-02-22 | 2009-03-24 | International Business Machines Corporation | Invoice processing system |
US20020116334A1 (en) * | 2001-02-22 | 2002-08-22 | International Business Machines Corporation | Invoice processing system |
US20070192478A1 (en) * | 2001-09-25 | 2007-08-16 | Louie David G | System and method for configuring and viewing audit trails in an information network |
US7574501B2 (en) * | 2001-09-25 | 2009-08-11 | Siebel Systems, Inc. | System and method for configuring and viewing audit trails in an information network |
US20030204840A1 (en) * | 2002-04-30 | 2003-10-30 | Youfeng Wu | Apparatus and method for one-pass profiling to concurrently generate a frequency profile and a stride profile to enable data prefetching in irregular programs |
US20040184400A1 (en) * | 2002-11-25 | 2004-09-23 | Hisao Koga | Multicarrier transmitter, multicarrier receiver, and multicarrier communications apparatus |
US7406714B1 (en) | 2003-07-01 | 2008-07-29 | Symantec Corporation | Computer code intrusion detection system based on acceptable retrievals |
US7568229B1 (en) * | 2003-07-01 | 2009-07-28 | Symantec Corporation | Real-time training for a computer code intrusion detection system |
US20050066311A1 (en) * | 2003-09-22 | 2005-03-24 | International Business Machines Corporation | Autonomic execution tracking and correction of functions |
US8266177B1 (en) | 2004-03-16 | 2012-09-11 | Symantec Corporation | Empirical database access adjustment |
US7444331B1 (en) | 2005-03-02 | 2008-10-28 | Symantec Corporation | Detecting code injection attacks against databases |
US8046374B1 (en) | 2005-05-06 | 2011-10-25 | Symantec Corporation | Automatic training of a database intrusion detection system |
US7558796B1 (en) | 2005-05-19 | 2009-07-07 | Symantec Corporation | Determining origins of queries for a database intrusion detection system |
US7774361B1 (en) | 2005-07-08 | 2010-08-10 | Symantec Corporation | Effective aggregation and presentation of database intrusion incidents |
US7690037B1 (en) | 2005-07-13 | 2010-03-30 | Symantec Corporation | Filtering training data for machine learning |
US20120036500A1 (en) * | 2006-06-02 | 2012-02-09 | Rockwell Automation Technologies, Inc. | Change management methodologies for industrial automation and information systems |
US8584096B2 (en) * | 2006-06-02 | 2013-11-12 | Rockwell Automation Technologies, Inc. | Change management methodologies for industrial automation and information systems |
US20070294318A1 (en) * | 2006-06-20 | 2007-12-20 | Arora Amrinder S | Method, System, and Apparatus for Auditing, Tracking, or Inspection of Data, Objects, or Their Corresponding Modifications |
US20080127107A1 (en) * | 2006-09-07 | 2008-05-29 | Sun Microsystems, Inc. | Method and apparatus for specification and application of a user-specified filter in a data space profiler |
US8640114B2 (en) | 2006-09-07 | 2014-01-28 | Oracle America, Inc. | Method and apparatus for specification and application of a user-specified filter in a data space profiler |
US7979494B1 (en) | 2006-11-03 | 2011-07-12 | Quest Software, Inc. | Systems and methods for monitoring messaging systems |
US8185598B1 (en) | 2006-11-03 | 2012-05-22 | Quest Software, Inc. | Systems and methods for monitoring messaging systems |
US8266231B1 (en) | 2006-11-03 | 2012-09-11 | Quest Software, Inc. | Systems and methods for monitoring messaging systems |
US20080109796A1 (en) * | 2006-11-08 | 2008-05-08 | Nicolai Kosche | Method and Apparatus for Associating User-Specified Data with Events in a Data Space Profiler |
US8813055B2 (en) * | 2006-11-08 | 2014-08-19 | Oracle America, Inc. | Method and apparatus for associating user-specified data with events in a data space profiler |
US8762951B1 (en) | 2007-03-21 | 2014-06-24 | Oracle America, Inc. | Apparatus and method for profiling system events in a fine grain multi-threaded multi-core processor |
WO2009093220A3 (en) * | 2008-01-25 | 2009-10-29 | Nxp B.V. | Sal debugging |
WO2009093220A2 (en) * | 2008-01-25 | 2009-07-30 | Nxp B.V. | Sal debugging |
US20100293373A1 (en) * | 2009-05-15 | 2010-11-18 | International Business Machines Corporation | Integrity service using regenerated trust integrity gather program |
US8589698B2 (en) * | 2009-05-15 | 2013-11-19 | International Business Machines Corporation | Integrity service using regenerated trust integrity gather program |
US20130152058A1 (en) * | 2011-12-07 | 2013-06-13 | Siemens Aktiengesellschaft | Method for Translating a Control Program in an Automation Language into an Intermediate Language |
CN103713909A (en) * | 2014-01-22 | 2014-04-09 | 扬州大学 | Java program package profiling method for generating package diagram |
US20170149811A1 (en) * | 2015-11-25 | 2017-05-25 | Symantec Corporation | Systems and methods for identifying compromised devices within industrial control systems |
US9967274B2 (en) * | 2015-11-25 | 2018-05-08 | Symantec Corporation | Systems and methods for identifying compromised devices within industrial control systems |
US10877869B1 (en) * | 2016-09-06 | 2020-12-29 | Jpmorgan Chase Bank, N.A. | Method and system for implementing a code review tool |
US10884895B2 (en) | 2019-01-30 | 2021-01-05 | International Business Machines Corporation | Capture of software element state changes during software application runtime and application modification based on state changes |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6775827B1 (en) | Real-time program audit software | |
US6041330A (en) | System and method for generating year 2000 test cases | |
US6421822B1 (en) | Graphical user interface for developing test cases using a test object library | |
US8296734B2 (en) | System and method for testing a software product | |
US5956513A (en) | System and method for automated software build control | |
US6332211B1 (en) | System and method for developing test cases using a test object library | |
US7475289B2 (en) | Test manager | |
US5812436A (en) | Method and apparatus for testing and analyzing the conformance of a proposed set of requirements for a proposed network management application | |
US8694965B2 (en) | Generating customized documentation for a software product | |
US5452449A (en) | Interactive multi-module source code analyzer that matches and expands call and entry statement parameters | |
EP2492815A1 (en) | A computer implemented system and method for indexing and optionally annotating use cases and generating test scenarios therefrom | |
KR19990023214A (en) | Database facilitating software installation and testing for custom computer systems | |
AU778165B2 (en) | Real-time program audit software | |
JP2009230618A (en) | Specification creating program, device therefor, and method thereof | |
US7620937B2 (en) | System and method for debugging programs | |
JPH11224186A (en) | Device and method for analyzing software | |
WO2006071368A2 (en) | System and method for information encapsulation for providing multiple deliverable formats from one information source | |
US8150821B2 (en) | System and method for using generic utilities to perform database utilities on mainframe operated DB2 databases | |
JP4683535B2 (en) | Job net management system | |
US20090276458A1 (en) | Adaptive Workflows Derived From Updates to Solution Building Block Architectures and Designs | |
CN116204219A (en) | Processing method for software version update, electronic equipment and storage medium | |
Baumgartner et al. | Agile Test Automation | |
JP2005092609A (en) | Sequence diagram display apparatus and sequence diagram display program | |
Wendel et al. | FORTRAN error detection through static analysis | |
JP2008134847A (en) | Natural sentence forming device, control method and computer program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: HARKINS & ASSOCIATES, INC., PENNSYLVANIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HARKINS, PAUL H.;REEL/FRAME:011162/0785 Effective date: 20000918 |
|
AS | Assignment |
Owner name: HARKINS & ASSOCIATES, LTD., PENNSYLVANIA Free format text: CORRECTIVE ASSIGNMENT CORRECTING THE ASSIGNEE'S NAME PREVIOUSLY RECORDED AT REEL 011162, FRAME 0785;ASSIGNOR:HARKINS, PAUL H.;REEL/FRAME:011438/0142 Effective date: 20000918 |
|
AS | Assignment |
Owner name: HARKINS AUDIT SOFTWARE, LTD., PENNSYLVANIA Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE'S NAME, PREVIOUSLY RECORDED AT REEL 011162, FRAME 0785;ASSIGNOR:HARKINS, PAUL H.;REEL/FRAME:011441/0689 Effective date: 20000918 |
|
AS | Assignment |
Owner name: HARKINS AUDIT SOFTWARE, INC., PENNSYLVANIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HARKINS AUDIT SOFTWARE, LTD.;REEL/FRAME:015336/0651 Effective date: 20040501 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
REMI | Maintenance fee reminder mailed | ||
FPAY | Fee payment |
Year of fee payment: 8 |
|
REMI | Maintenance fee reminder mailed | ||
SULP | Surcharge for late payment |
Year of fee payment: 7 |
|
AS | Assignment |
Owner name: HARKINS & ASSOCIATES, INC., PENNSYLVANIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HARKINS AUDIT SOFTWARE, INC.;REEL/FRAME:028076/0005 Effective date: 20120413 |
|
FPAY | Fee payment |
Year of fee payment: 12 |