Basic Compliance
Definition
Basic compliance means that software or hardware performs all date operations correctly over the range of dates required for the application of the software. For a system to be compliant, all components must be compliant, including:
| • | computer hardware |
| • | operating systems |
| • | networking software |
| • | middleware |
| • | database software |
| • | interfaces |
| • | application software |
| • | any other components. |
Date Operations
Date operations include calculations involving:
| • | dates |
| • | years |
| • | durations |
| • | days of the week |
| • | comparisons and sorting of dates |
| • | ages. |
Data Entry
Date data can be entered into the software in any of several ways:
| • | entered by the user |
| • | obtained from the operating system |
| • | obtained from the system clock or other hardware device that keeps time |
| • | obtained from the network |
| • | obtained from a file or database |
| • | obtained from an interface to another system. |
Examples
Basic compliance focuses on the results produced by the software and does not directly deal with how the implementation yield those results. Specifically, the software should meet these criteria.
| • | The software accepts all appropriate dates over the require range. |
Example: DateBench has a defined range of dates from January 1, 1601, through December 31, 3999. DateBench accepts all dates within this range.
| • | Any dates outside the required range or any illegal dates are handled as an error. |
Example: DateBench reports an error for any dates outside the specified range. Illegal dates are also reported as an error.
| • | The software does not abnormally terminate when handling any date within the required range. |
Example: DateBench does not abnormally terminate when handling any legal date
| • | The software recognizes leap years consistent with Date Bench. |
Example: The year 2000 is a leap year. The year 1900 is not a leap year. The software correctly recognizes these.
| • | The following date calculations are performed consistently with DateBench: |
conversion from a Gregorian date to day of the year
conversion from day of the year to Gregorian date
determination of the day of the week
adding or subtracting days to a date
subtracting a date from another date.
Other date calculations are performed correctly.
The software permits entry of four-digit years.
Example: The user can enter a date like 02/04/2000.
| • | If the software permits entry or displays of two-digit years, the implied century is unambiguous. |
Example: If the software displays 02/04/00 as the order date for a part, it is clear from the context that the intended date is 02/04/2000. However, if the date for an antique is 02/04/00, it may be unclear what century is intended.
| • | If the software permits entry of two-digit years, it converts the year to a four-digit year with an appropriate century. |
Example: If the user enters 02/04/00 for the order date of a part, the software converts the date to 02/04/2000.
| • | If the software orders date information in chronological order, the order is correct. |
Example: If parts have effectivity dates of 03/01/98, 02/06/99, and 01/03/00, then a sorting by effectivity date in descending order should be:
01/03/00 02/06/99 03/01/98
| • | The software uses no valid dates as special flags. |
Example: The software does not use 9/9/99 as a value with special meeting.
| • | The software runs with versions of the operating system, network software, other system software, and database management systems that are date compliant. |