SI
SI
discoversearch

We've detected that you're using an ad content blocking browser plug-in or feature. Ads provide a critical source of revenue to the continued operation of Silicon Investor.  We ask that you disable ad blocking while on Silicon Investor in the best interests of our community.  If you are not using an ad blocker but are still receiving this message, make sure your browser's tracking protection is set to the 'standard' level.
Technology Stocks : TAVA Research - No Discussion -- Ignore unavailable to you. Want to Upgrade?


To: C.K. Houston who wrote (665)7/12/1998 8:58:00 PM
From: James Strauss  Respond to of 810
 
Mathematical Solution to the Year 2000 Problem

This paper introduces a mathematical solution to the year 2000 date problem and compares it with two current solution approaches to the year 2000 date problem. The Millennium SolutionO, which uses a mathematical approach called Dynamic CenturiesO, provides many advantages over the currently used approaches of date expansion and windowing.

Background
Using two digits to represent the year in computer programs and databases has created a serious date recognition problem when we enter the 21st century. Before this mathematical solution, there were three available solutions:

(1)expansion of all years to four digits (CCYY),
(2)windowing - the insertion of logical tests of the two digit year and temporarily converting the year to 4 digits by adding either 19 or 20 as the two leading digits, and
(3)specialized schemes such as, replacing the 2 digit year with hex-decimal or binary values, encapsulation, replacing all date formats with sequential numbers where day 1 is January 1, 1900, etc. These specialized techniques are not covered in this paper.

The year 2000 problem is usually divided into three phases: find, fix and test. All solutions require first identifying the date variables and then fixing the program. The size of the testing effort is determined by the number and complexity of the changes. The magnitude of the assessment task is proportional to the applications intradependencies and the interdependencies between applications.

To demonstrate how the Millennium SolutionO works, sample code was selected and a comparison of changes required by the three different alternatives to fix the code are presented. Figure 1 shows an example of existing working storage data definitions, a Subtract command and an If command, compared with the changes needed for full date expansion. Figure 2 shows the changes to working storage data definition and instructions if windowing is used. Figure 3 shows the changes required if the Millennium SolutionO is used.

Full Date Expansion
Full date expansion requires the expansion of all databases and changes to file definitions in all programs, working storage data definitions in all programs, and copybooks (Figure 1). Full expansion also requires all program modules in the application be converted at the same time. Ideally, all applications using the converted databases should be changed at the same time. The ideal is never met and unconverted applications require the addition of wrappers and bridges to interface with the new databases. This means fixing and testing most programs twice. Testing is more extensive because it requires testing programs as well as database changes and structures. If access to archive data is required, then archive databases must be updated or multiple versions of the software must be maintained. Full expansion is perceived to be the only complete permanent fix to the millennium problem. Full expansion is also the most expensive and time
consuming of the alternatives. Full expansion requires the highest level of management control and the most testing. It could also require additional hardware and systems software.

Windowing
Windowing creates temporary four digit century and year variables within working storage of the program and does not change the database structure. These variables are created each time the program is run. The use of windowing requires modification of data definitions in working storage and program logic. Because windowing only changes the programs and not the databases it requires less total time than full expansion. There are no database changes, therefore applications can be fixed independently of each other and fixed only once. Windowing requires less testing than full date expansion.

The disadvantages of windowing are that it requires the most changes to data definitions and code modifications for variable name changes, and inserts logical changes within the program. Windowing requires changing all date variables used in calculations and compares and the associated moves in all modules within an application and requires all modules within the application to be changed before system testing can begin. The data definitions for date variables are increased from 50% (dates already defined as a group variable consisting of YY, MM, and DD) to 300% (variables defined as a complete date, YYMMDD) (Figure 2). Each changed date variable requires the addition of code to test the two year digits against the window setting and add the appropriate two digits century. Windowing needs to identify all instances of date variables in mathematical operations, moves, sorts, and compares and variable names within those commands changed to agree with the data definition changes. Modules within an application sharing copybooks that are changed also require fixes even if they do not use the date variable in a math operation or compare. Experience to date indicates windowing requires changing between 6 and 10% of the lines of code within an application. Windowing also requires updating when its limits are reached.

Millennium SolutionO
Dynamic Centuries has all the advantages of windowing and none of the disadvantages. Dynamic Centuries only inserts a call routine to correct date variables in a module if they are used in a mathematical operation or compare. The only procedural changes required occurs when an instruction containing an identified date variable is replaced by a call to the Millennium SolutionO subroutine (Figure 3). Millennium SolutionO adds special variables to the working storage definitions. By not changing data definitions and program logic, Dynamic Centuries impacts less than 1% of the lines of code within an application. Dynamic Centuries eliminates the need for impact analysis of the interaction between modules within an application and between applications because changes to a program module are independent of changes to all other modules. There are no database changes, no data definition changes, and no logical changes required in programs. Furthermore, Dynamic Centuries allows the fixing of applications and modules within applications in any sequence. Fewer changes in programming also reduces the amount and extent of testing required. Dynamic Centuries requires the fewest number of procedure code changes. By not changing copybooks and shared data definitions Dynamic Centuries impacts fewer modules, further reducing total test requirements.

With Dynamic Centuries, assessment and fix occur at the same time and changes are automatically created, eliminating possibilities of typing or data entry errors. Millennium SolutionO requires the least amount of testing of the three alternatives.

Summary
The amount of and level of changes made for year 2000 readiness equates to the level of risk an organization takes on for completion of the project. Each approach discussed has varying degrees of impact on:

inter- and intra-applications dependencies to resolve
staffing required to make changes and test
number of changes
number and types of tests
the overall schedule
level of management effort

Millennium Solution has the least and full date expansion has the most impact. Figure 4 is a summary comparison of Millennium SolutionO, windowing and date expansion.

Figure 1
Comparison of Changes Needed for Full Expansion Implementation

Existing

Data Definitions in Working Storage

05 I-PT-ACT-DT PIC S9(6).
03 WA-ACH-FROM-YMD PIC 9(6).

015241 01 WA-L-CURR-YMD PIC 9(6).
015242 01 FILLER REDEFINES WA-L-CURR-YMD.
015243 05 WA-L-CURR-YR PIC 99.
015244 05 WA-L-CURR-MO PIC 99.
015245 05 WA-L-CURR-DA PIC 99.
015246 01 WA-TEST-DATE-1.
015247 05 WA-TEST-YR-1 PIC 99.
015248 05 WA-TEST-MO-1 PIC 99.
015249 05 WA-TEST-DA-1 PIC 99.

Existing Procedures
017160 SUBTRACT 1 FROM WA-L-CURR-YR
GIVING WA-TEST-YR-1

029740 IF I-PT-ACT-DT LESS THAN
WA-ACH-FROM-YMD


Expansion

Data Definitions in both file, input/output sections as well as working storage need to be changed to reflect changes in the database structures. System software changes are not shown as well.

Data Definitions in Working Storage

05 I-PT-ACT-DT PIC S9(8).
03 WA-ACH-FROM-YMD PIC 9(8).

015241 01 WA-L-CURR-YMD PIC 9(8).
015242 01 FILLER REDEFINES WA-L-CURR-YMD.
015244 05 WA-L-CURR-YR PIC 9999.
015245 05 WA-L-CURR-MO PIC 99.
015246 05 WA-L-CURR-DA PIC 99.
015247 01 WA-TEST-DATE-1.
015249 05 WA-TEST-YR-1 PIC 9999.
015250 05 WA-TEST-MO-1 PIC 99.
015251 05 WA-TEST-DA-1 PIC 99.

Procedures
017160 SUBTRACT 1 FROM WA-L-CURR-YR
GIVING WA-TEST-YR-1

029740 IF I-PT-ACT-DT LESS THAN
WA-ACH-FROM-YMD

Changes in bold


Figure 2
Comparison of Changes Needed for Windowing Implementation

Existing

Data Definitions in Working Storage

05 I-PT-ACT-DT PIC S9(6).
03 WA-ACH-FROM-YMD PIC 9(6).

015241 01 WA-L-CURR-YMD PIC 9(6).
015242 01 FILLER REDEFINES WA-L-CURR-YMD.
015243 05 WA-L-CURR-YR PIC 99.
015244 05 WA-L-CURR-MO PIC 99.
015245 05 WA-L-CURR-DA PIC 99.
015246 01 WA-TEST-DATE-1.
015247 05 WA-TEST-YR-1 PIC 99.
015248 05 WA-TEST-MO-1 PIC 99.
015249 05 WA-TEST-DA-1 PIC 99.

Existing procedures shown on next page

Windowing

Data Definitions in File and input descriptions are unchanged. System software changes are not shown as well.

Data Definitions - Working Storage

008100 05 I-PT-ACT-CDT PIC S9(8).
05 FILLER REDEFINES I-PT-ACT-CDT.
008120 10 I-PT-ACT-CC PIC 99.
008130 10 I-PT-ACT-YY PIC 99.
10 I-PT-ACT-MMDD PIC S9(4).

008200 03 WA-ACH-FROM-DATE-CYMD PIC 9(8).
03 F REDEFINES WA-ACH-FROM-DATE-CYMD.
008220 07 WA-ACH-FROM-CC PIC 99.
008230 07 WA-ACH-FROM-YY PIC 9(2).
008230 07 WA-ACH-FROM-MD PIC 9(4).

015241 01 WA-L-CURR-CYMD PIC 9(8).
015242 01 FILLER REDEFINES WA-L-CURR-CYMD.
015243 02 WA-L-CURR-CCYY PIC 9(4).
015244 02 FILLER REDEFINES WA-L-CURR-CCYY.
015245 05 WA-L-CURR-CC PIC 99.
015246 05 WA-L-CURR-YR PIC 99.
015247 02 WA-L-CURR-MO PIC 99.
015248 02 WA-L-CURR-DA PIC 99.
015249 01 WA-TEST-DATE-1.
015250 02 WA-TEST-CCYY-1 PIC 9(4).
015251 02 FILLER REDEFINES WA-TEST-CCYY-1.
015252 05 WA-TEST-CC-1 PIC 99.
015250 05 WA-TEST-YR-1 PIC 99.
015253 02 WA-TEST-MO-1 PIC 99.
015254 02 WA-TEST-DA-1 PIC 99.

Changes in bold

Figure 2
Comparison of Changes Needed for Windowing Implementation (Continued)

Existing

017160 SUBTRACT 1 FROM WA-L-CURR-YR
GIVING WA-TEST-YR-1

029740 IF I-PT-ACT-DT LESS THAN
WA-ACH-FROM-YMD

Windowing

Inserted before the first instance of date usage or in special initialize routine at the beginning of procedures. The MOVES used to move data from input/output to Working Storage must be changed.

Procedures

017150 IF WA-L-CURR-YR GREATER THAN 70
017151 MOVE 19 TO WA-L-CURR-CC
017152 ELSE
017153 MOVE 20 TO WA-CURR-CC.

017154 IF WA-TEST-YR GREATER THAN 70
017155 MOVE 19 TO WA-TEST-CC
017156 ELSE
017157 MOVE 20 TO WA-TEST-CC.

017160 SUBTRACT 1 FROM WA-L-CURR-CCYR
GIVING WA-TEST-CCYR-1

029730 IF I-PT-ACT-YY LESS THAN 70
029731 MOVE 19 TO I-PT-ACT-CC
029732 ELSE
029733 MOVE 20 TO I-PT-ACT-CC.

029734 IF WA-ACH-FROM-YMD LESS THAN 700101
029735 MOVE 19 TO WA-ACH-FROM-CC
029736 ELSE
029737 MOVE 20 TO WA-ACH-FROM-CC.

029740 IF I-PT-ACT-CDT LESS THAN
WA-ACH-FROM-CYMD

Changes in bold

Figure 3
Comparison of Changes Needed for Millennium Solution Implementation

Existing

Data Definitions in Working Storage

05 I-PT-ACT-DT PIC S9(6).
03 WA-ACH-FROM-YMD PIC 9(6).

015241 01 WA-L-CURR-YMD PIC 9(6).
015242 01 FILLER REDEFINES WA-L-CURR-YMD.
015243 05 WA-L-CURR-YR PIC 99.
015244 05 WA-L-CURR-MO PIC 99.
015245 05 WA-L-CURR-DA PIC 99.
015246 01 WA-TEST-DATE-1.
015247 05 WA-TEST-YR-1 PIC 99.
015248 05 WA-TEST-MO-1 PIC 99.
015249 05 WA-TEST-DA-1 PIC 99.

Procedures
017160 SUBTRACT 1 FROM WA-L-CURR-YR
GIVING WA-TEST-YR-1

029740 IF I-PT-ACT-DT LESS THAN
WA-ACH-FROM-YMD


Millennium Solution (Dynamic Centuries)

System software is not changed.
Data Definitions in Working Storage

000600 01 DII-GROUP.
000601 02 DII-CTRL PIC 9(4).
000602 02 DII-VARS PIC X(256).
000603 02 DII-CONDITION1 PIC 9.

008000 05 I-PT-ACT-DT PIC S9(6).
008100 03 WA-ACH-FROM-YMD PIC 9(6).

015241 01 WA-L-CURR-YMD PIC 9(6).
015242 01 FILLER REDEFINES WA-L-CRR-YMD.
015243 05 WA-L-CURR-YR PIC 99.
015244 05 WA-L-CURR-MO PIC 99.
015245 05 WA-L-CURR-DA PIC 99.
015246 01 WA-TEST-DATE-1.
015247 05 WA-TEST-YR-1 PIC 99.
015248 05 WA-TEST-MO-1 PIC 99.
015249 05 WA-TEST-DA-1 PIC 99.

Procedures
017160* SUBTRACT 1 FROM WA-L-CURR-YR
017161* GIVING WA-TEST-YR-1
017162 CALL DIIM2000 USING DII-CTRL
017163 DII-VARS WA-L-CURR-YR WA-TEST-YR-1

029740* IF I-PT-ACT-DT LESS THAN
029741* WA-ACH-FROM-YMD
029742 CALL DIIM2000 USING DII-CTRL
029743 DII-VARS DII-CONDITION1
029744 IF DII-CONDITION1 = 1

Changes in bold

Figure 4

Year 2000 Solutions Compared and Evaluated

Dynamic Century
Millennium SolutionO Standard Windowing
(fixed or sliding) Date Expansion
Technology system-wide impact analysis not required
automated mathematical scan
special date recognition algorithms
automated review system-wide impact analysis required for all applications and within an application
date variable seeding process
expert intuition
significant manual review system-wide impact analysis required for all applications and within an application
date variable seeding process
expert intuition
significant manual review

Find Resources technician under supervision of
programmer
training - 1/2 day
programmer
senior programmer
training - days to weeks depending on tool programmer
senior programmer
training - days to weeks depending on tool
Requires program source modules - one at a time any sequence
all copybooks application program source modules - all at once to resolve dependencies
all copybooks

program source modules - all at once to resolve dependencies
all copybooks
JCL
databases
archive data
PARM cards
Sort cards


Dynamic Century
Millennium SolutionO Standard Windowing
(fixed or sliding) Date Expansion
Technology dates in selected math operations and COMPARES are fixed
fix works until year 9999
program modules can be fixed in any sequence
no application dependencies between modules
no program logic changed
no cross dependencies exist outside of procedure copybooks
questionable date logic is flagged for review
a single subroutine is called to implement solution
all dates windowed for fix
Windowing needs to identify all instances of the date variable in math, moves, sorts, and compares
requires updating when limits of window reached
program modules must be fixed in specific sequence based on dependencies
program logic changed
enterprise cross reference required
all 2-digit date code expanded to 4-digit
fix works until year 9999
program modules must be fixed in specific sequence based on dependencies
instructions added to initialize new 8 digit date variables
enterprise-wide cross reference required
changes to programs for screen and reports, JCL, and database conversions
Fix Resources junior staff with programmer supervision
training - 1/2 day
programmers
senior programmers
training - days to weeks depending on tool programmers
senior programmers
training - days to weeks depending on tool

Requires less than 15% source module changes
less than 1% of the source module lines will be affected
existing data definitions unchanged
no changes to variable names
not affected by redefinition of variables
modules are fixed in any sequence, minimal code freeze required
wrappers required only when interfacing to new expanded date applications
flexible conversion schedule
20-30% source modules changes
6 to 10%+ of the source module lines will be affected
extensive changes to existing data definitions
variable names are changes and redefinitions required
extensive code changes
code freeze required until all modules are updated and reintegrated
wrappers required only when interfacing to new expanded date applications
linear conversion schedule
90+% of source module could be affected
changes to existing data definitions
code freeze required until all modules are updated and reintegrated
extensive requirement for bridges and wrappers during and after conversion
complex and interdependent schedule

Dynamic Century
Millennium SolutionO Standard Windowing
(fixed or sliding) Date Expansion
Technology standard regression testing
year 2000 simulation
standard regression testing
year 2000 simulation standard regression testing
year 2000 simulation
Test Resources existing maintenance testers
additional testers additional testers
Requires testing less than 1% changed code
testing can begin immediately
testing 6 to 10%+ code changes
testing can not begin until all dependent module are changed testing code and database changes
testing can not begin until all dependent module are changed



Typical One Million Line
Project


Summary minimal project management and oversight required
assessment and correction are simultaneous
10-15% of source modules require year 2000 changes
less than 10,000 lines of code impacted
work done onsite with supervised staff, limited new hiring
senior staff available for ongoing and new projects
significant project management and oversight required
requires system-wide impact analysis at beginning of project
20-30% of source modules require year 2000 changes
between 60,000 and 100,000+ lines of code impacted
large dependency on programming experts and/or offsite / offshore resources most significant project management and oversight required
requires system-wide impact analysis
90%+ code impact and testing
large dependency on programming experts and/or offsite / offshore resources

Jim



To: C.K. Houston who wrote (665)7/13/1998 9:34:00 AM
From: C.K. Houston  Read Replies (1) | Respond to of 810
 
TAVA "NEWCOMERS GATEWAY"
==============================================================
JULY '98

TAVA Announces $33 Million in "Year 2000" Orders in Fiscal 1998
Message 5140771 July 9, 1998

Contracts from POLAROID & MAJOR PHARMACEUTICAL COMPANY
biz.yahoo.com July 7

_____________________________________________________________________
JUNE '98

Selected as Y2K Services Vendor by COUNTY OF LOS ANGELES
Message 4998965 June 24, 1998

$12,500,000 NEW Y2K ORDERS FOR MONTH OF MAY for Plant Y2K One(TM) software tools & services Include licenses of the company's methodology, database access fees and project services. Spanned 24 clients in industries including: automotive, food rocessing, chemicals, refining, pulp and paper, and mining and mineral processing.
Message 4699753 June 3, 1998

Booking Revenues
Message 5068234
_____________________________________________________________________
MAY '98

Selected As Y2K Services Vendor by BOISE CASCADE
Message 4542834 May 21, 1998

TAVA|R.W. BECK Team with KEANE & DATA DIMENSIONS
Message 4373540 May 7, 1998
FYI - TAVA|BECK is a 50/50 partnership. TAVA supplies software for the utility industry contracts and Beck supplies manpower.
_____________________________________________________________________
APRIL '98

MASTER CONSULTING AGREEMENT - UP TO 1200 SITES
biz.yahoo.com April 23,1998

TAVA & COLORADO MEDTECH Announce Licensing Agreement - MEDICAL
DEVICES

biz.yahoo.com April 17, 1998
_____________________________________________________________________
MARCH '98

Multi-Plant Pilot Engagement with COCA-COLA
Message 3753944 March 5, 1998
_____________________________________________________________________

JANUARY 1998 Y2K CONTRACTS
- General Motors
- Kraft Foods
- Pillsbury
- TRW
- Occidental Petroleum
- UNOCAL
- Cargill
- Medeva Pharmaceuticals
- The US Mint

DECEMBER 1997 Y2K CONTRACTS
- Bristol-Meyers (125 sites worldwide)
Message 3006983 Dec 19, 1997

NOVEMBER 1997 Y2K CONTRACTS
- Cyprus Amax Minerals
- Kennecott Energy
- Unilever Foods North America - TRIPLED Y2K Budget after TAVA Assessment
_____________________________________________________________________

TAVA WHITE PAPER
tavatech.com

FORTUNE Magazine Article - April 27, 1998
Message 5064067

TAVA WEB SITE
tavatech.com

MISC.
Message 5170302