17. Checklist

Following is a copy of the checklist that should be filled out for each application program that is to be released.

PROGRAM NAME_______________________

                  GENERAL CHECKLIST


_____ Searched through the ADPPRF database and signed off all problem
      reports.  Made a `Z` item in ADPPRF database if needed.      

_____ Used c_inlas instead of xzinit for initialization.

_____ Initialized curent and curcat global variables to starting values before calling c_startm.

_____ Checked parameter validity upon receipt rather than later in the program. This is extremely important with tape ingest routines.

_____ Routine is compiled and tested on all the supported systems.

                     PDF CHECKLIST

_____ Used subcommands where necessary - did not use default subcommands.

_____ Referenced TAE globals when needed. Refer to the LAS Overview Appendix B: Global Variables

_____ PDF .TITLE line contains description of function and does not contain the function name.

_____ Used valid field in PDF to validate parameter values.

_____ PDF and global valid values in upper case except for name and address globals.

_____ Used standard names and descriptions for parameters. See the system manager for the standard parameter list.

_____ Use the command .page between the examples, description/ algorithm, error messages and user notes.

                    FILES CHECKLIST

_____ Updated associated DDR file. 

_____ Created associated history file, and updated it using c_hstout.

_____ Closed all files when the function is finished with them. This includes closing all files if a fatal error is encountered.

_____ Make sure that all output file names are in lower case.

_____ For every large file whose final size can be calculated before the file is opened, add a call to the c_dk routines. Files that are created/deleted by image i/o or DDR subroutines already use the c_dk calls. There is no need to place an "#ifdef UNIX_DISK" around the call since the c_dk routines already contain this statement.

                   MESSAGES CHECKLIST

_____ Used c_inittm, c_startm, and c_stoptm to print standard processing
      message.  The processing message is written in past tense.

_____ Used c_complt to write a standard completion message. Verify LAS names are used for the list of output files. Application name is in upper case.

_____ Put messages in USER'S GUIDE to inform the user if processing time will vary greatly due to different parameter options.

_____ Used c_errmsg for all error and informational messages.

[program_name-error_key] Message

The message should be in lower case except for the first letter which should be in upper case. There is no period after the message unless the it contains multiple sentences. The explanation of the error message should be in sentence format. The error_key should be in lower case and it is recommened that they be in alphabetical order.

              USER DOCUMENTATION CHECKLIST

_____ User's Guide examples use full parameter names in proper order. 
      The example should begin with the prompt "LAS>".

_____ Followed pdfhtml documentation standards. Refer to the LAS Programmers Manual: Documentation Standards

_____ Documented the minimum and maximum image sizes allowed by the program if other than system defaults.

_____ Documented limitations to the data types allowed by the program.

_____ All error messages are listed in the User Guide. _____ Kept references to EDC out of the User's Guide and program messages.

_____ Check PDF format in TAE HELP and Mosaic _____ Ran PDF through a spell checker.

_____ User Guide has been routed: first to leads then to Sci. Staff. _____ If new routine or a modification to a current routine, the customer has reviewed the User Guide.

           PROGRAMMER DOCUMENTATION CHECKLIST

_____ Documented variables and array dimensions.

_____ Included good in-line documentation.

_____ Documented a function's local changes to array limits and other system constants to avoid future maintenance problems.

_____ Split functions into separate files.

_____ Included a prolog for every file. The program history is included only in the main source file. Don't include the pseudocode algorithm description unless the program requires more explanation.

_____ Listed algorithm references if available.

_____ Updated program history in prolog of main source file.

                        MAKE CHECKLIST

_____ Makefile created/updated.

_____ Makefile notifies system manager if warning errors are expected and are to be ignored during the building process.

_____ Makefile should follow the standards in the LAS Programmer's Manual.

_____ All source files (e.g., .c, .h, .f) are listed in the Makefile.

                PROGRAM CHECKLIST

_____ Used #IFDEF for differences in systems.

_____ Included STDIO.H where applicable.

_____ Made sure file.h was used as follows: #include < /sys/file.h > _____ Freed all dynamically allocated buffers as the function is finished with them.

_____ Used raw C data types (i.e., long or short instead of int).

              REPORT PRINTING CHECKLIST

_____ Print parameter includes TERM, FILE, and LP options.

_____ Used fileutil to insert standard header and print file.

                FUNCTIONAL CHECKLIST

_____ Tested the function with a single band image.

_____ Tested with a multi-band image.

_____ Tested subbands and windows (separately and together).

_____ Tested with input images of all data types.

_____ Tested with image of 256 bands.

_____ Tested with an image of MAXNS.

_____ Tested with an image of MAXNL.

_____ Tested with one image of all zeros.

_____ Tested with an image containing negative values.

_____ Tested program in batch mode - checked for logging of messages.

_____ Checked standard completion message and the list of output files created.

_____ Checked all parameters for help at both levels 1 and 2, using the tutor mode.

_____ Checked User's Guide for accuracy and completeness.

_____ Retested function after PDF is returned from technical editing.

_____ Checked for changes to PDF called by this routine or to PDFs that call this routine.

_____ Exercised all parameter options at least once with nondefault values.

_____ Tested with a combination of input images specified using plus signs.

For example: IN="MY.IMG+YOUR.IMG+THEIR.IMG"

_____ Checked output history, minmax option, processing message.

_____ Checked that upon a fatal error condition, files are left or cleaned up, depending on the setting of the global variable $DELFLG.

_____ If minmax is computed for the whole input image, checked that its DDR is updated, privilege permitting.

_____ Checked that the DDR is updated correctly. Verified the projection information.

_____ Tested image compression. _____ All testing was done after the program was built with the default optimizer flag. _____ Make sure all code has been run through CodeCenter and purify and all necessary changes have been made.