DIFFDDR
Software Requirements Specification

Brad Misterek
Computer Services Branch
Software Engineering Department
22 June 2000
 
Signatures
 
 
 
Prepared by:  ______________________________
  Brad Misterek
  Software Engineer, 
  Raytheon, ITSS
Concurred by:  ______________________________
  Tim Beckmann 
  Software Project Lead, 
  Raytheon, ITSS
Approved by:  ______________________________
  Brenda Jones 
  Project Manager, 
  Raytheon, ITSS
Approved By:  ______________________________
  Mike Wehde 
  SED Technical Area Leader, 
  Raytheon, ITSS
Approved By:  ______________________________
  Ted Neville 
  CSB Department Manager, 
  Raytheon, ITSS
 
 
Document History
 
 
 
Number Date and Sections Notes
1 22 June 2000 Document Created
2 29 June 2000 Updated based on 6/27/00 Peer Review
3
4
5
6
 

Contents

INTRODUCTION

Identification

DIFFDDR is a LAS module which will compare multiple DDR files and report differences.

System Overview

DIFFDDR is a LAS module which will accept multiple DDR files as input, and will report the differences between the  files. The differences may be output to the screen, printer, or file.

Document Overview

The purpose of this document is to record the requirements which have been established for DIFFDDR.

REFERENCED DOCUMENTS

     LAS Overview Appendix A   http://sg1.cr.usgs.gov/lasdoc/overview/lasover/appdx_a.html
 
     LAS Overview Section 4.3.3.2  http://sg1.cr.usgs.gov/lasdoc/overview/lasover/over4.html

  
REQUIREMENTS

Interface Requirements

      1.  Input Parameters

                1.1 The input filename field will allow the user to specify the image names of the DDR
                        files that the user wishes to compare.

                        1.1.1  This parameter will be named IN.

                        1.1.2  This is a required field, the user must enter at least two image filenames.

                        1.1.3  The name of the IN will be specified in LAS format.

                1.2  The user will have the option to have DIFFDDR compare the DDR information for each
                         of the bands of the images.

                        1.2.1  This field will be named BANDDDR.

                        1.2.2  There will be two options for this field, 'YES' and 'NO'.

                        1.2.3  The default for this field is 'NO'.

                1.3  The user will have the option to request a flag indicating whether the DDR's
                         were identical.

                        1.3.1  The default subcommand will be -NOFLAG, which will not return the flag.

                        1.3.2  There will also be a -FLAG subcommand, which will return the flag.

      2.  Output Parameters

                2.1 The user will be able to specify the destination of the output.

                        2.1.1  This field will be named PRINT.

                        2.1.2  The user may choose any combination of the four options for this field,
                                     'TERM', 'LP' , 'Filename', or '--'.

                        2.1.3  The default will be 'TERM', which outputs to the display.

                        2.1.4  If the user selects 'LP' the output of the program will be sent to the
                                   line printer.

                        2.1.5  If the user desires the output of the program to be written to a file, then
                                   they may just type a filename into the PRINT field.

                        2.1.6  The name of the filename will be specified in LAS format.

                        2.1.7  If the user selects '--' the program will not produce any output.

                2.2  The -FLAG subcommand will return a flag indicating whether the DDR's are identical.

                        2.2.1  The name of the flag which is returned will be 'IDENTFLG'.
 
                                2.2.1.1  The valid values for 'IDENTFLG' will be 'YES' and 'NO'.

                                2.2.1.2  If no differences are reported,  'YES' will be returned.
 
                                2.2.1.3  If any differences are reported,  'NO' will be returned.
 

  
Functional Requirements

       3.   If there are no differences reported in the  DDR files, a message stating that
              "There were no detected differences in the DDR's" will be generated.

       4.   This application must be able to detect the differences in the DDR files in the following
              fields:
                - Number of Lines
                - Number of Samples
                - Number of Bands
                - Data Type
                - Projection Code
                - Zone Code
                - Datum Code
                - Projection Parameters  (Each projection parameter will be compared seperately)
                - Corner Coordinates   (Each corner coordinate will be compared seperately)
                - Projection Distance
                - Projection Units
                - Increment
                - Master Coordinates

       5.   If the fields differ in DDR's, the values of the fields will be printed.  The VALID
               fields will be treated as independent fields.

       6.   DIFFDDR will ignore any differences in image name and last modified time and date.

       7.   Any comparisons between DDR fields which involve string comparisons will ignore any
              case differences between the strings.

       8.   Any comparisons between DDR fields which involve float values will have a tolerance of
               10E-6.

       9.  If BANDDDR is set to 'YES', a message will be generated for each field in each band
              where there are differences.

       10. If BANDDDR is set to 'YES', a message will be generated for each extra band if one image
              has more bands than the others.

       11. If BANDDDR is set to 'YES', a message stating that "There were no detected differences
               in the band information of the DDR's" will be generated if the bands are identical.

       12. If more than two input files are specified, the second through the last file will each be compared
               against the first input file.

Performance Requirements

     None.
 

  
Operational Requirements

       12.   Error messages will follow the LAS standard for error messages, which includes the name
               of the application and a brief description of the error.

 

TEST CASES

 
 
Test # Requirement # Description
1a. 1.1, 1.3.1, 2.1.3, 3 Input two DDR's which are exactly the same, using the default option for PRINT.  Should get a message on the terminal stating that they are the same
1b. 1.1, 1.3.1, 2.1.2, 3  Input two DDR's which are exactly the same, specifying the "TERM" option  for the PRINT parameter.  Should get a message on the terminal stating that they are the same.
1c. 1.1, 1.3.1, 2.1.2, 2.1.4, 3 Input two DDR's which are exactly the same, using the "LP" option.  Should get a printed message stating that they are the same.
1d. 1.1, 1.3.1, 2.1.2, 2.1.5, 3 Input two DDR's which are exactly the same, using the "Filename" option.  Should have a file with the message that they are the same.
1e. 1.1, 1.3.1, 2.1.2, 2.1.4, 2.1.5 Input two DDR's which are exactly the same, using the 'TERM', 'LP', and 'Filename' options.   Should get a message on the terminal, a printed message, and a file with the message that they are the same.
1f.  1.1, 1.3.1, 2.1.2, 2.1.7 Input two DDR's which are exactly the same, using the '--' option for PRINT.  Should get no messages.
2a. 1.1, 1.3.1, 4, 5, 6, 7, 8 Input two DDR's that are both valid but have different values.  Should get messages for everything which is different in the DDR's.
2b. 1.1, 1.3.1, 4, 5, 6, 7, 8, 12 Input three DDR's that are all valid but where all three have different values.  Should get a message for each field which is different in the three DDR's.
3a. 1.1, 1.3.1, 4, 5 Input two DDR's with one DDR having all fields valid and the other having all invalid.  Should get a message for each field where one DDR is valid and one is invalid.  Also reverse the order that the DDR's were entered and repeat test.
3b. 1.1, 1.3.1, 4, 5, 12 Input three DDR's with two DDR's having all fields valid and the other having all invalid.  Should get a message for every field having a difference in validity.  Also change the order and repeat the test.
4a. 1.1, 1.3.1, 4, 5 Input two DDR's with one DDR having all fields valid and the other having some fields valid and the others invalid.  Should get a message for each field where one DDR is valid and the other is invalid.  Also reverse the order that the DDR's were entered and repeat the test.
4b. 1.1, 1.3.1, 4, 5, 12 Input three DDR's with two DDR's having all fields valid and the other having some fields valid and the others invalid.  Should get a message for each field where one DDR is invalid and the others valid.  Also change the order and repeat the test.
5a. 1.1, 4, 5, 6, 7, 8 Input two DDR's with every field being different between the two.  Should get a message for every field in the DDR.
5b. 1.1, 4, 5, 6, 7, 8, 12 Input three DDR's with every field being different between the three. Should get a message for every field in the DDR's.
6. 1.1, 4, 7 Input two DDR's which have the projection units in different cases.  (i.e. "METERS" and "meters").  Should give no messages about differences in the projection units.
7. 1.1, 4, 8 Input two DDR's with a difference in one of the corner coordinates of 10E-7.  Should give no differences in that corner coordinate.
8a. 1.1, 1.2, 1.2.2, 8, 9 Input two DDR's which have different band information and set BANDDDR to 'YES'.  Should get a message for each field in each band which differs.
8b. 1.1,1.2, 1.2.2, 8,11 Input two DDR's which have the same band information and set BANDDDR to 'YES'. Should get a message stating that no differences were detected.
8c. 1.1,1.2, 1.2.2, 10 Input two DDR's which have a different number of bands.  Should get a message for each extra band that the image has.  Also reverse the order that the DDR's were entered and repeat the test.
8d. 1.1, 1.2, 1.2.2, 8, 9, 12 Input three DDR's which have different band information and set BANDDDR to 'YES'.  Should get a message for each field in each band which differs.
8e. 1.1, 1.2, 1.2.2, 8, 11, 12 Input three DDR's which have the same band information and set BANDDDR to 'YES'.  Should get a message stating that no differences were detected.
8f. 1.1, 1.2, 1.2.2, 10, 12 Input three DDR's which have a different number of bands.  Should get a message for each extra band that any image has.  Also change the order that the DDR's were entered and repeat the test.
9. 1.1, 6 Input  two DDR's which are exactly the same except for the image name, and last modified time and date.  Should get a message that they are the same.
10a. 1.3.2, 2.2.1.2 Create a PDF which calls DIFFDDR-FLAG.  Call DIFFDDR with identical DDR's.  The return value of the flag IDENTFLG should be 'YES'.
10b. 1.3.2, 2.2.1.3 Create a PDF which calls DIFFDDR-FLAG.  Call DIFFDDR with two different DDR's.  The return value of the flag IDENTFLG should be 'NO'.
11. 1.3.1 Run DIFFDDR without the -FLAG subcommand and verify that it does not return the flag IDENTFLG.
12. 1.1.2 Run DIFFDDR specifying only one input filename.  An error should occur.
 

REQUIREMENTS TRACEABILITY

 
SW 
Requirement 
Number
Test Number Verify Comment
1.1 1a, 1b, 1c, 1d, 1e, 2a, 2b, 3a, 3b, 4a, 4b, 5a, 5b,  6, 7, 8a, 8b, 8c, 8d, 8e, 8f,  9
1.1.2 12
1.2 8a, 8b, 8c, 8d, 8e, 8f
1.2.2 8a, 8b, 8c, 8d, 8e, 8f
1.3.1 11, 1b, 1c, 1d, 1e, 2a, 2b, 3a, 3b, 4a, 4b, 11
1.3.2 10a,  10b
2.1.2 1b, 1c, 1d, 1e
2.1.3 1a
2.1.4 1c, 1e
2.1.5 1d
2.1.7 1e
2.2.1.2 10a
2.2.1.3 10b
3 1a, 1b, 1c, 1d
4 2a, 2b, 3a, 3b, 4a, 4b, 5a, 5b, 6, 7
5 2a, 2b, 3b, 4b, 5a, 5b
6 2a, 2b, 5a, 5b, 9
7 2a, 2b, 5a, 5b, 6
8 2a, 2b, 5a, 5b, 7, 8a, 8b, 8d, 8e
9 8a, 8d
10 8c, 8f
11 8b, 8e
12 2b, 3b, 4b, 5b, 8d, 8e, 8f
 

NOTES

ACRONYMS
 
 
 
Acronym Description
DDR Data Descriptor Record

Brad Misterek

2000-06-22