Y2K Safe Questions
Many people pursuing the solutions to the Government's Year 2000 date problems
desire compliance assurances from the products used in those software systems.
This assurance is generally taking the form of a legalistic statement of
compliance. The trouble with this approach is two-fold: (1) what is meant
by compliance varies and/or is so all encompassing that no vendor can agree
to the definition, and (2) winning in the courts will not help us if and
when the systems fail.
An alternative way of understanding what problems are within the components
of these systems is available. The question of whether a product is "Y2K"
safe or not is broken into four dimensions:
- Does the product correctly handle leap-years (all 3 rules)?
- If the year is divisible by 4, it is a leap year, UNLESS
- The year is also divisible by 100, then it's not a leap year, UNLESS
- The year is also divisible by 400, then it is a leap year
- How does the product store dates internally, and for what period of
time? Is it with an offset from a base year? What is the increment of time
counted (seconds, minutes, hours, days, weeks, months, ...)? How big is
the offset (8-bit, 16-bit, 32-bit, 64-bit, ...)?
- Does the product support 2 and 4 digit years for input and output?
How are dates used internally? How many year digits are used for internal
date values?
- Does the product contain any logic that assigns/uses "special
values" of date fields (99, 98, 00, 9/9/99, 1/1/11, 19, 20, ...)?
By examining behaviors of a product along these dimensions we can determine
whether a product is "safe" to use for any particular situation
and then take and/or request corrections to specific behaviors, rather than
a blanket statement of "make it compliant" or "make it work
in all situations".
The attached questionnaire is a sample set of questions we are using to
discuss date issues with COTS and GOTS suppliers. So far our discussions
have been well received and the information useful.
The following questions should be used to gain an understanding of the
COTS and/or GOTS components of systems.
For the product:
- Are there any date fields used by the product?
- Are those date fields 2 or 4 digits?
- Does it accept any dates directly from the user?
- How does the user specify the year?
- How does the product calculate leap years?
- Are all three rules used?
- If the year is divisible by 4, it is a leap year, UNLESS
- The year is also divisible by 100, then it's not a leap year,
UNLESS
- The year is also divisible by 400, then it is a leap year
- Are dates stored internally as a specific "date" data type?
- Is this done using a base year with an offset of the number of seconds/
minutes/hours/days/weeks since that base date?
- What size is the data type that is used to store the offset?
- Is it an 8-bit, 16-bit, 32-bit, 64-bit, ...?
- Is there a valid date range (including restrictions due to overflows)?
- Are two-digit years allowed/used for input, internal processing, data
storage, and/or output?
- If so, how are they manipulated/used for:
- Comparisons
- Are any date validation checks performed?
- How are non-continuous timelines handled?
- What happens if current time < previous time? Does it ignore
data?
- Calculations
- How are periods greater than 100 years handled?
- Sorting
- File system/tape system tags
- Are any special values for date fields used?
- 00
- 0/00/00
- 1/11/11
- 99
- 98
- 9/9/99
- 19
- 20
- Does the product directly import or export date data to any other
application and/or system?
- If so, can these applications and/or systems handle:
- Leap year, 2 digit dates, and dates after 2000?
- Does the product rely on the date for licensing?
- When will solutions for any identified date-related problems be made
available?
- In what version will the changes occur?
- Will this update be available at no charge?
- How will the update be distributed?
- Will a maintenance contract be required?
- Will it be supplied to registered users?
- Will the users need to purchase an upgrade?
- Will the users need to purchase a new copy of the product?
For more information, please contact John R. Roberts via email at jrrobrts@mitre.org.
This page is provided and maintained by Janet Fredrickson
http://www.mitre.org/research/cots/Y2K_QUESTIONS.html
Last modified: Monday, 09-Sep-96 15:31:57 EDT