Data processing: software development – installation – and managem – Software program development tool
Reexamination Certificate
1999-10-12
2003-02-18
Khatri, Anil (Department: 2122)
Data processing: software development, installation, and managem
Software program development tool
C717S100000, C707S793000, C707S793000
Reexamination Certificate
active
06523167
ABSTRACT:
TECHNICAL FIELD
The present invention relates to an electronic spreadsheet software program, and is more particularly directed to a recalculation engine version stamp for a spreadsheet program.
BACKGROUND OF THE INVENTION
Spreadsheet programs, such as Microsoft's “EXCEL” spreadsheet, are useful tools in performing computational tasks such as keeping household budgets, work schedules, tracking bank accounts, maintaining inventories, and so on. As the use of personal computers within the home and business environments becomes more common, so too does the use of spreadsheet programs. The versatility of spreadsheet applications and the ease with which they are adapted to various tasks has resulted in their widespread use. With ongoing advances in the speed and capabilities of personal computers, enhanced features have been developed for spreadsheet programs.
A spreadsheet program is comprised of multiple cells arranged in rows and columns, with each individual cell containing its own data. An individual cell is usually identified by its column and row. For example, the cell that is located in column A at row
1
is referred to as “cell A1”, the cell that is located in column C at row
5
is referred to as “cell C5”, and so forth.
One of the benefits of a spreadsheet program is that the user can set up a dependency relationship among multiple cells in a spreadsheet. For example, a user may specify that the sum of two cells (A
1
and A
2
) is reflected in a third cell A
3
as SUM (A
1
:A
2
). The spreadsheet program will then automatically calculate the value of cell A
3
by summing the values in cells A
1
and A
2
. This eliminates the need for the user to manually calculate the value of the cell.
In the example above, cell A
3
is said to “depend” on cells A
1
and A
2
. That means that if the user changes the value of either cell A
1
or cell A
2
, then the value in cell A
3
needs to be recalculated. Most spreadsheet programs, including Microsoft “EXCEL”, are designed to recognize these “dependency chains” and to recalculate the cells when necessary.
From time to time, calculation bugs are found in spreadsheet programs. These calculation bugs take the form of the user creating or modifying a spreadsheet in such a way that one of the cells of the spreadsheet evaluates to the wrong value. When these calculation bugs are identified by the developer of the spreadsheet program, a patch is commonly issued to repair the bugs in subsequent versions of the program. While this software patch is effective to prevent that particular calculation bug in the program files subsequently created, all previously saved program files may still exhibit the calculation bug. Thus, a user that opens a program file that was saved in an older version of the spreadsheet program, in order to be completely safe from the calculation bug, must perform a full recalculation of the file. Once a full recalculation is performed, the cells that evaluated incorrectly will have been reevaluated to the correct value.
Requiring the user to perform a full recalculation every time that a file is opened has many problems. One significant problem is performance, as a full recalculation of a program file can take a lot of time (e.g., even several hours for large program files). Moreover, the user has no way of knowing whether the full recalculation is actually necessary or not. That is to say, if a full recalculation is required for every instance, there will be occasions when the full recalculation is performed on a file that did not exhibit the calculation bug. Finally, even when a full recalculation is performed, the user may not be able to notice whether a change was effected.
Thus, there is a need for a mechanism for identifying whether a particular program file is likely to need a full recalculation when the file is opened. By only performing a full recalculation on those files likely to need it, users are spared from having to fully recalculate every single file.
SUMMARY OF THE INVENTION
The invention is a recalculation engine version stamp that provides a method for determining whether a particular spreadsheet program file is likely to need a full recalculation upon open. According to one aspect of the present invention, a “calculation engine version number” will be stored internally in the spreadsheet program. The calculation engine version number represents the current version of the program's calculation engine, not the version of the program itself. Thus, the calculation engine version number is different than and independent from any program version number that may be stored in the program.
According to another aspect of the present invention, when a file that has been calculated at least once is saved, the calculation engine version number of the program is written out and saved in the spreadsheet program file. The calculation engine version number that is saved in the spreadsheet program file is referred to as a “recalculation engine version stamp” because it identifies which version of the calculation engine was used when the file was last recalculated and saved. Accordingly, the recalculation engine version stamp enables the program to determine when newer versions of the calculation engine version number are available and to recalculate the program file at that time.
According to another aspect of the present invention, when a spreadsheet program file is opened, the recalculation engine version stamp is compared to the calculation engine version number of the program. If the numbers are the same, this would indicate that the program file was saved in the most current version of the calculation engine available. Thus, it would be of no benefit to perform a full recalculation on this file.
On the other hand, if the recalculation engine version number of the program file is older than the version of the calculation engine of the program used to open the file, this would indicate that the program file may contain calculation bugs and that the more recent calculation engine version number may repair those bugs. In this case, the program will perform a full recalculation of the program file.
More specifically described, the present invention is a method for determining whether a spreadsheet program file should be fully recalculated upon opening. According to the method, the spreadsheet program file is opened in a first spreadsheet application program, where the first spreadsheet application program has a first calculation engine version number. After at least one calculation operation is performed on the spreadsheet program file, the spreadsheet application program file is saved and a recalculation engine version stamp is written to the spreadsheet program file. The recalculation engine version stamp corresponds to the first calculation engine version number.
Subsequently, when the spreadsheet program file is opened in a second spreadsheet application program, the recalculation engine version stamp is compared to the calculation engine version number of the second spreadsheet application program. If the calculation engine version number of the second spreadsheet application program is more recent than the recalculation engine version stamp of the spreadsheet program file, then a full recalculation of the spreadsheet program file is performed.
REFERENCES:
patent: 5317686 (1994-05-01), Salas et al.
patent: 5768158 (1998-06-01), Adler et al.
patent: 5918232 (1999-06-01), Pouschine et al.
patent: 5983242 (1999-11-01), Brown et al.
patent: 5983268 (1999-11-01), Freivald et al.
patent: 6041267 (2000-03-01), Dangat et al.
patent: 6073123 (2000-06-01), Staley
patent: 6138130 (2000-10-01), Adler et al.
patent: 6341292 (2002-01-01), Cho et al.
patent: 6360188 (2002-03-01), Freidman et al.
Bowman, “A graphical user interface proposal for APL”, ACM APL 1994, pp 17-22.*
Littlewood et al, “Modeling software design diversity- a review”, ACM Computing Survey, vol. 33, No. 2, pp 177-208, Jun. 2001.
Ahlers Timothy Fred
Becker Andrew J.
Khatri Anil
Merchant & Gould P.C.
Microsoft Corporation
Whitaker John E.
LandOfFree
Spreadsheet recalculation engine version stamp does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Spreadsheet recalculation engine version stamp, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Spreadsheet recalculation engine version stamp will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-3160187