CA1301939C - Method of applying software modifications - Google Patents

Method of applying software modifications

Info

Publication number
CA1301939C
CA1301939C CA000570368A CA570368A CA1301939C CA 1301939 C CA1301939 C CA 1301939C CA 000570368 A CA000570368 A CA 000570368A CA 570368 A CA570368 A CA 570368A CA 1301939 C CA1301939 C CA 1301939C
Authority
CA
Canada
Prior art keywords
directory
update
drive
recited
features
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CA000570368A
Other languages
French (fr)
Inventor
Alice J. Killebrew
Charles F. Mann
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Application granted granted Critical
Publication of CA1301939C publication Critical patent/CA1301939C/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Abstract

ABSTRACT
A software program having a plurality of sepa-rately installable features installed on a computer system is to be updated. An end user invokes an update program to update the installed software program. The user selects one of a plurality of operating modes for the computer system and identifies a target drive and directory where the software program is stored. Thereafter, the user identifies a source drive and directory where a plurality of update files are stored. If a prompted mode of operation has been selected, the system copies the update files from the source drive and directory to the target drive and directory and then applies all of the updates to the respective features stored on the target drive in a sequential manner. If a full function mode of opera-tion has been selected, the system copies the update files from the source drive and directory to the target drive and directory and then displays the highest numbered update stored on the target drive and directory for a selected installed feature. The user can apply the highest numbered update and all of the lower numbered updates associated with the selected feature or a subset of the updates in a sequential manner.

Description

Description ~iETHODS OF APPLYING SOFThTARE MODIFICATIONS

Technical Field This invention relates generally to updating softwaxe, and more particularly to methods of correct-ing and updating code installed in a computer system in an accurate and user friendly manner.
. " 10 Back~round Information With the introduction of the personal computer, the generation of software programs has become a rapidly growing field. Additionally, the number of users of the personal computer has continued to increase. The increase in the number of users of personal computers has this basis in an increase in computing power in the reduction in cost of such systems. Along with the increase with the number of users of these systems has been an increase in the number of less sophisticated users of such systems.
Software programs are becoming complex to compensate for the skills of these less sophisticated users and in view of the competitive nature of the software ; 25 business, software developers are encountering greater difficulty in thoroughly testing and correcting the software programs prior to the release thereof to the marketplace.
One known technique for providing updates to software programs installed on main frame computers requires the updates to be applied by a vendor's field representative or by a customer's highly trained computer proessional. These updates are not user friendly and typically, cannot be applied by an ordinary end user. This technique for updating ~, ,~

AT9-87-~17 ~3r~3~

software programs installed on a computer system becomes very complicated when the installed program is an operating system or a communication software program having a plurality of features of which a combination of these features are installed on the computer system. This problem becomes more complex when the communication software program having a number of features is installed on a plurality of personal computers and a different combination of features is installed on the various personal comput-ers.
Consequently, a user friendly technique is needed which facilitates the updating of software programs having a plurality of features installed in various combinations on a plurality of computers.

Disclosure of the Invention ~ method of correcting a software program having a plurality of features wherein a combination of the features are installed on a computer system. An end user selects one of a plurality of operating modes for the system. A plurality of update files are then read into a memory system of the computer system. The system then determines which of the plurality of features are installed thereon. Thereafter, selected update files are applied to the software program according to the features of the software program ; installed on the computer system.

Brief Description of the Drawing Figure 1 is a block diagram of a computer system on which the method of the present invention may be employed.
Figure 2 is a flow diagram illustrating the de-tailed steps of the method of the present invention.

. ~

3,.~

Figures 3 through 8 are display screens which are employed by the users of the computer system in updating software installed on the computer system.

Best Mode for Carryinq Out the Invention Referring ~o Fig. 1, there is shown a computer system 10 on which the present invention may be employed. System includes a central processing unit 12 having a microprocessor 14, a memory system 16 and a control system 18 which functions to control input/output operations in addition to the interaction between the microprocessor and the memory system. System 10 also includes a group of conventional peripheral units including a display device 20, a keyboard 22, a printer 24, a data storage unit 26 and a modem 28. ~ince the details of the above described functional systems form no part o~ the present invention and can be found in the prior art, only a brief functional description of each of the systems will be set forth.

The central processing unit 12 corresponds to the "system unit" of a personal computer system such as the IBM~ XTTM
or the IBM AT~ or the IBM Personal System/2~ computer systems. The central processing unit 12 is provided with a multitasking operating system program such as the IBM
Operating System/2~ which is normally employed to run the systems. The operating system program is stored in memory system 16 along with one or more application programs that the user has selected to run. Depending on the capacity of the memory system 16 and the si~e of the application programs, portions of these programs, as needed, may be transferred to the memory system 16 from the data storage unit 26 which may include, or example, a hard disk drive and a diskette drive. The basic function of the A

data storage unit 26 is to store programs and data which are employed by the system 10 and which may readily be transferred to the memory system 16 when needed. The funckion of the diskette drive is to provide a removable storage function for entering programs and data into the system, and a vehicle for storing data in a form that is readily transportable for use on other computer systems.
Display device 20 and keyboard 22 together provide for an interactive operation of the computer system 10 wherein the interpretation that the computer system gives to a specific keystroke by the user depends, in substantially all situations, on what is being displayed to the user at that point in time.
In certain situations, the user, by entering commands into the computer system lO, causes the system to perform a certain function. In other situations, the computer system 10 requests the entry of certain data, generally by displaying a prompt type of menu/message screen. The depth of the interaction between the user and the computer system 10 varies by the type of operating system and the application program, but is a necessary characteristic of the computer systems on which the method of the present ~5 invention mav be employed.
As noted above, computer system 10 includes the printer 24 which functions to provide a hard copy output of data developed or stored in the computer system. The modem 28 functions to trànsfer data from the computer system 10 to a remote host system or server system through one or more communication links which may be a commercial type link or a dedicated communications link.
System 10 includes an update program stored in the memory system 16 thereo~ which enables the system to operate in two selectable modes for updating a software program installed thereon. A prompted mode, which is intended for use by less sophisticated users, provides a method of up~ating the installed so~twa,re program with a minimum number of decisions. A full function mode, which is intended to be used by sophis~
ticated users, provides a menu driven method enabling the user to select (1) different functions of the ' update program and (2) the order of execution of the selected functions.
Set out below is an illustration of the update program for applying software modifications or updates to the software program having a plurality of sepa-rately installable features or components installed on system 10. The update program is in program design language from which source code and machine code are derivable. In the following general description of the update program, it is to be assumed that system lO
is under mouse and keyboard device control. Moreover, it is assumed that the update program is invoked from a driver program contained in the operating system which facilitates the display of all of the screen panels, the monitoring of the keyboard 22 and the installation of the plurality of separately install-able features or components of the software program.Since the interface to the driver program is not essential to the invention, it will not be described in detail. However, it should be noted that whatever software program invokes the update program is assumed to pass thereto the inputs of an OPERATION CODE
parameter and a VISIBLE_PNL parameter. The update program returns an OS ERROR CODE parameter and a RETURN_CODE parameter to the driver program.
The OPERATION CODE parameter contains the value of PROCESS or INITIALIZE. The value INITIALIZE

AT9~87-017 1 3n'~939 indicates that the driver program has invoked the update program for the first time during a current session If the user has selected the prompted mode, the update program then applies all unapplied updates to all of the installed features or components prior to returning control to the operating system. If the user has selected the full function mode, the update program prepares a screen panel which displays a list of all of the features or components of the software 0 program installed on system 10 and respective value of the highest sequential update that can be applied to each of the features. Thereafter, when the update program returns control to the driver program, the driver program displays to the user on the display 20 the prepared screen panel. The user is then permitted to lower any of the update values associated with any of the displayed features. When the update program is invoked a second time in the full function mode, the OPERATION CODE parameter contains the value of PRO-20 CESS . The value PROCESS indicates that the user hashad an opportunity to lower the update values for the features and the updates are to be applied to the installed software program.
The VISIBLF PNL input parameter indicates which screen panel is currently being displayed to the user.
The update program uses this information to determine whether the screen panel of components and update numbers it prepared is the one being shown.
The OS ERROR_CODE parameter indicates the largest 3~ error code value it has received from any of the operations performed by the operating system. These operations include such fllnctions as opening, reading, and closing files. In the update program, a success-ful operation is seen to receive the value of GOOD
from the operating system. The update program will terminate prematurely if any other value is received from the operating system.
The RETURN CODE parameter returns a value to the driver program by the update program inaicating the actions it has taken and operations it expects the driver program to complete. The RETURN CODE parameter contains the value of DISPLAY, BACKUP, or FINISH.
DISPLAY indicates that the screen panel of components and update limits has been prepared and is ready to be displayed to the user. BACKUP indicates that the user has selected to view a panel which was displayed prior to the displa~7 of the screen panel of components and update limits. The driver program thereafter displays the previously displayed screen panel. FINISH indi-cates that the work of the update program has beencompleted. All of the selected updates have been applied or the operating system has encountered an error.
In the prompted mode, the update program is invoked with the INITIALIZE value in the OPERA-TION CODE parameter. The update program then applies all the possible updates and returns with the FINISH
value in the RETURN CODE parameter. In the full function mode, the update program is invoked the first time with the INITIALIZE value in the OPERATION_CODE
parameter. The screen panel is prepared with the upper limits of the updates, and the update program returns with the DISPLAY value in the RETURN_ CODE
parameter. The update program is then invoked the second time in the full function mode with the OPERA-TIO~ CODE parameter containing the PROCESS value. The updates are applied to the various installed compo-nents based upon the user's selections from the displayed screen panel. The update program then returns with the FINISH value in the RETURN_CODE
parameter.
The update program is comprised of nine internal ~ubroutines and one external subroutine (NAME_ LISTER).
The program design language assumes a programming language that defines all variables in the main routine i.n a way that all of the internal subroutines have access to them. Therefore, it is unnecessary to explicitly pass these variables as parameters to any . 10 of the internai subroutines when they are called.
However, any external subroutine which does not have direct access to these va~iables will have to pass the variables back and forth in a parameter list.

MAIN PROC
INITIALIZE OS_ERROR_CODE TO ZERO.
IF OPERATION CODE IS INITIALIZE, THEN
CALL PANEI,_PREP TO SEARCH THE UPDATE DIRECTORY
FILE TO GET FI~ LI.MITS AND PUT THEM IN THE
PANEL PARAMETERS.
; IF NO ERRORS FROM PANEL PREP, THEN
IF ~IODE IS FULL FUNCTION, THEN
RETURN_CODE = DISPLAY
ENDIF
ENDIF
ENDIF
IF NO ERRORS FROM PANEL_PREP, THEN
IF OPERATION_CODE IS PROCESS OR MODE IS PROMPTED, THEN
IF VISIBLE_PNL IS APPLY UPDATES AND USER
PRESSED ESC KEY, THEN
OS_ERROP~_CODE = ZERO
RETURN_CODE = BACKUP
ELSE USER IS NOT BACKING OUT OF PROGRP~I
IF MODE IS FULL FUNCTION, THEN

CALL COMPATIBLE TO DETERMINE THE COMPATIBLE
FIX LIMITS.
CALL UNFIX TO REMOVE ALL UPDATES FROM CODE
GROUPINGS THAT ARE ALREADY APPLIED
S ABOVE THE FIX LIMITS.
ENDIF
IY NO OS ERRORS, THEN
CALL APPLY_FIXES TO APPLY THE FIXES UP TO
THE LIMITS.
RETURN_CODE = FINISH
ENDIF
ENDIF
ENDIF
; ENDIF
; 15 ENDPROC MAIN PROC
., :`
PANEL_PREP PROC
OPEN THE UPDATE DIRECTORY FILE
DO WHILE NOT END OF FILE AND NOT AN ERROR
READ A RECORD FROM UPDATE DIRECTORY FILE GETTING
THE GROUP ID AND ITS UPDATE NUMBER.
FIX LIMIT FOR CODE GROUPING IN RECORD = UPDATE
NUMBER FROM RECORD
ENDDO
CLOSE UPDATE DIRECTORY FILE.
IF ERROR FROM CLOSING FILE IS GREATER THAN THE
OS ERROR CODE THEN
OS_ERROR CODE = CLOSING FILE ERROR VALUE
ENDIF
ENDPROC PANEL_PREP

: .

3g Each of the subroutines will be discussed in detail. The first subroutine, PANEL PR~P, opens an update directory file which contains information on all the updates avai~able. Information on each update is contained in records in the file. The directory file has its records sorted in ascending order by feature or code grouping ID, update number, and sequence number. PANEL PREP reads each record placing the update number from the record into a FIX LIMIT
variable for the corresponding code grouping. After every record has been read, the FIX LIMIT variables will contain the largest update number available for each of the code groupings. The screen panel, which is displayed to the user, shows the contents of the FIX LIMI1' variables adjacent to the name of the code grouping. The update directoxy file is then closed and the largest error value returned from the operat~
ing system i5 returned to the main routine, ~IN, in the OS_ERROR_CODE variable.
If the update program was invoked in the full function mode, then the RETURN_CODE is set to DISPLAY
and control is then returned to the driver program so that the prepared screen panel can be displayed to the user. The screen panel gives the user the opportunity to lower the FIX LIMIT variables displayed thereonO
The driver program then recalls the update program with the PROCESS value in the OPERATION_CODE parameter 50 that the second half of the main program can be executed to apply the updates.
A test is made after the update program is invoked in order to determine if the user pressed an escape key or coresponding selection from a mouse device. This action indicates that the user wishes to return to the previous operation the driver program was engaged prior to the update program being invoked.

' AT9-87-017 3~

If the user has pressed the escape key or its equiva-lent with the aid of the mouse or some other input device, the update program returns the BACKUP value in the RETURN_CODE parameter to the driver program.
Otherwise, the preparation of the screen panel contin-ues by calling the subroutlne COMPATIBLE to adjust the FIX LIMIT variables for each of the code groupings so that they are compatible with each other and by calling subroutine UNFIX to delete software components 10 that have updates applied in excess of the FIX LIMIT
variables.

COMPATIBLE PROC
OPEN THE UPDATE DIRECTORY FILE
DO WHILE NOT END OF FILE AND NOT AN ERROR
READ A RECORD FROM UPDATE DIRECTORY FILE GETTING
THE GROUP ID, FIX_NUMBER, AND ITS
BASE_NUMBER
CALL HIGH_BASE TO SET HIGH BASE FOR CODE GROUPING
FROM THE RECORD.
ENDDO
CLOSE UPDATE DIRECTORY FILE.
IF ERROR FROM CLOSING FII.E IS GREATER THAN THE
OS_ERROR_CODE THEN
OS_ERROR_CODE = CLOSING FILE ERROR VALUE
ENDIF
IF OS_ERROR CODE IS GOOD THEN
CALL LOW_BASE TO SELECT THE LOWEST BASE FIX FOR
THE BASR LIMIT.
CALL FIX_LIMITS TO DETERMINE THE FIX LIMIT FOR
EACH CODE GROUPING CONSTRAINED BY THE LOWEST
COMMON BASE LIMIT.
ENDIF
ENDPROC COMPATIBLE

The suhroutine COMPATIBLE opens the update directory file and reads the following variables GROUP_ID, FIX NUMBER, and BASE_NUMBER associated with records stored therein. The variable BASE_NUMBER is the prerequisite update that must be applied to a common base component o the installed software program prior to the application of the update identi-fied by the variable FIX_NUMBER to its component or feature in order to have a compatible svstem. The variable BASE_NUMBER contains the value of the update which is the lowest base update that must be applied.
Higher updates may be acceptable without conflict.

HIGH_BASE PROC
IF FIX NUMBER = GROUP_FIX-I,IMIT, THEN
GROUP BASE - BASE_NUMBER
ENDIF
IF FIX_NUMBER = GROUP_FIX_LI~IIT + 1, THEN
IF BASE NUMBER ~ GROUP BASE, THEN
GROUP_BASE = BASE_NUMBER - 1 ENDIF
ENDIF
ENDPROC HIGH_BASE

After each of the records is read by the subrou-tine COMPATIBLE, a subroutine HIGH_BASE is called to determine the highest possible update number for updates applied against the common base component. If the value of the variable FIX_NUMBER from the record does not match the value associated with a variable GROUP_FIX_LI~lIT or the value of one plus the value associated with GROUP_FIX_LIMIT, then no action is taken and execution is returned to the subroutine COMPATIBLE. The variable GROUP_FIX_LIMIT contains the value of the fix limit for a particular code grouping.

If the value of the variable FIX NUMBER from a select-ed record is equal to the value associated with the variable GROUP FIX LIMIT, then a variable GROUP_BASE
is set equal to the variable BASE_NUMBER in the selected record. The variable GROUP_BASE now contains the minimum update number of the base component to be compatible with the selected code grouping. If the user has not reduced the value associated with the variable GROUP_FIX_LIMIT displayed on the screen panel, then the variable GROUP_BASE Will also contain the highest possible update number for the base component. However, if updates for the given code grouping exist beyond the value associated wi~h the variable GROUP_FIX_LIMIT, then the subroutine COMPATI-BLE will call HIGH_BASE again. The update that is onehigher than the limit will contain a prerequisite base update number that cannot be exceeded for a compatible system. If the GROUP_FIX LIMIT ~ 1 update has the same BASE NUMBER as the GROUP_FIX_LIMIT update, then the value of the variable GROUP BASE remains equal to the value associated with the variable BASE_NUMBER.
If however, the GROUP_FIX_LIMIT + 1 update has a prerequisite BASE_NUMBER higher than the GROUP_FIX_LIMIT update, the value of the variable GROUP_BASE is reduced by a value of one. Thus, a high base number for a selected code grouping will be at least as high as the prerequisite base number for the code grouping's fix limit but less than the prerequi-site base number for the code grouping's update one beyond the update limit.

LOW_BASE PROC
: DO FOR EACH CODE GROUPING
IF CODE GROUPING BASE < BASE_FIX_LIMIT, THEN
BASE_FIX_LIMIT = CODE GROUPING BASE

:~.3~

ENDIF
ENDDO
ENDPROC LOW_BASE

The subroutine COMPATIBLE then closes the update directory file after all of the update records have been read and processed. A subroutine LOW_BASE is then called in order to determine a variable BASE_FIX LIMIT which is the lowest common base update number that is~compatib].e with all of the code group-ings. The subroutine LOW_BASE facilitates the setting of the variable BASE_FIX_LIMIT to the lowest GROUP_BASE from among all of the code groupings.

FIX_LIMITS PROC
MAX_FIX FOR EACH CODE GROUPING = FIX LIMIT FOR EACH
CODE GROUPING
OPEN THE UPDATE DIRECTORY FILE
DO WHILE NOT END OF FILE AND NOT AN ERROR
READ A RECORD FROM UPDATE DIRECTORY FILE GETTING
THE GROUP ID, FIX_NUMBER, AND ITS
BASE_NUMBER.
IF NOT END OF FILE AND NOT A READ ERROR, THEN
IF BASE_NUMBER IS LESS OR EQUAL TO
BASE_FIX_LIMIT, THEN
DO FOR THE CODE GROUPING THAT MATCHES GROUP_ID
IF FIX NUMBER IS LESS OR EQUAL TO MAX_FIX
FOR THE CODE GROUPING, THEN
FIX LIMIT FOR THE CODE GROUPING =
FIX_NUMBER
ENDIF
ENDDO
ENDIF
ENDIF
ENDDO

~,~r~ 3~ , CLOSE THE UPDATE DIRECTORY FILE.
IF ERROR FROM CLOSING FILE IS GRFATER THAN THE ~RROR
F~OM READING THE FILE, THEN
OS_ERROR_CODE -- CLO~ING FILE ERROR VALUE
ENDIF
ENDPROC FIX_LIMITS

Finally, subroutine COMPATIBLE calls a subroutine . 10 FIX_LIMITS to determine the fi~ limit for each code grouping constrained by this lo~Jest common base limit, BASE_ FIX_LIMIT. The subroutine FIX_LIMII'S initializes a set of temporary MAX_FIX variables for each code grouping that contain the fix limits up to this point.
The subroutine FIX_LIMITS then opens the update directory file and reads every record before finally closing the file. While it is reading the file, the subroutine FIX_LIMITS updates the fix limit for each code grouping. Thereafter, every record is read and tested to determine whether the value o~ the variable BASE NUMBER iS less than or equal to the value associ-ated with the variable BASE_FIX_LIMIT. I f the value of BASE NUMBER is less than or equal to the value of BASE_FIX_LIMIT, then the corresponding code grouping i5 tested to determine whether the FIX_NUMBER from the record is less than or equal to its temporary MAX_FIX
variable. This insures that the new limit does not exceed the limit imposed by the user earlier through the display panel. The new FIX LIMIT for the code grouping is set equal to the FIX_N~MBER from the record. By the time all the records of the file have been thus processed, the FIX LIMIT for each of the code groupings will contain the number of the highest update that can be applied while being compatible with the common, prerequisite base update and not exceeding ~ J

~3~ l.93~

1~
th~ limits imposed by the user. The subroutine FIX_LIMITS then concludes by closing the file ~nd returning t~ the subroutine COMPATIBLE which returns to the main program.

UNFIX PROC

DO FOR EACH CODE GROUPING THAT IS INSTALLED

CALL REINSTALL TO P~EMOVE THE CODE GROUPING'S

FIXES.

IF THE CODE GROUPING WAS REINSTALLED, THEN

SET CODE GROUPING'S DELÆTE FLAG ON.

SET CODE GROUPING'S INSTALL FLAG ON.

ENDIF

ENDDO

ENDPROC UNFIX

REINSTALL PROC

CLEAR THE REINSTALL FLAG.

INITIALIZE OS_ERROR_CODE TO ZERO.

IF GROUP APLD_FIX > GROUP FIX_LIMIT, THEN

CALI, NAME_LISTER TO INITIALIZE FOR GROUP_ID.

IF NO ERROR FROM NAME_LISTER, THEN

DO UNTIL NAME_LISTER RETURN CODE IS EMPTY OR

OS_ERROR IS ENCOUNTERED.

CALL NAME_LISTER FOR NEXT FILE OF GROUP_ID.

IF NAME_LISTER RETURN CODE IS GOOD, THEN

INVOKE OS TO DELETE THE RETURNED FILE.

IF NO ERROR FROM DELETION, THEN REINSTALL

DELETED FILE.

ENDIF

- ELSE - NAME LISTER RETURN CODE IS EMPTY

SET GROUP APLD_FIX BACK TO ZERO.

SET THE REINSTALL FLAG.

ENDIF

AT9~87-017 3~3~3 93~

ENDDO
ENDIF
ENDIF
ENDPROC REINSTALL

NAME_LISTER PROC
IF OPERATION_CODE IS INITITALIZE THEN
PREPARE MEMOP~Y BUFFER WITH FILE NAMES COMPRISING
THE SELECTED CODE GROUPINGS.
SET POINTEP~ TO FIRST FILE NAME IN MEMORY BUFFER.
SET RETURN_CODE TO GOOD.
ELSE - OPERATION_CODE I5 GET_NAME
IF MEMORY BUFFER IS EMPTY THEN
SET RETURN CODE TO EMPTY.
ELSE - AT LEAST ONE NAME IS LEFT IN THE BUFFER
MOVE FILE NAME AT POINTER INTO FILE NAME
PARAMETER.
DECREMENT POINTER TO POINT TO NEXT FILE NAME IN
BUFFER.
SET RETURN_CODE TO GOOD.
DECREMENT POINTER TO POINT TO NEXT FILE NAME IN
BUFFER.
SET RETURN_CODE TO GOOD.
ENDIF
ENDIF
ENDPROC NAME_LISTER

The main program then calls a subroutine UNFIX to remove all updates from the code groupings that are already applied above the fix limits. The subroutine UNFIX then checks an installation flag from a status file associated with each of the code groupings to .. ~,.~ ?

-~ 3f~ 3 ~

determine whether its associated component is in-stalled on system 10. If the code grouping is in-stalled, a subroutine REINSTALL is called to reinstall that code grouping without any updates if it contains updates that are beyond the FIX LIMIT. The subroutine REINSTALL then tests for updates exceeding the fi~
limit by comparing the value associated with a vari-able GROUP_APLD_FIX, which represents the highest applied update, to the value associated with the variable GROUP FIX LIMIT. The variable GROUP_APLD_FIX
is stored in the status file which is updated and - saved each time an update is applied. If GROUP_FIX_LIMIT is greater than or equal to GROUP_APLD_FIX, then no further action is taken and control is returned to the subroutine COMPATIBLE.
Otherwise, when GROUP APLD FIX exceeds GROUP_FIX_LIMIT, more updates have been applied to the component than the user desires. So this component must be deleted and reins~alle~ without any updates.
In order for the subroutine REINSTALL to delete an installed component, a subroutine NAME_LISTER is called to initialize a file name list with names of the files of the particular code grouping that is to be removed. The main loop of REINSTALL calls the subroutine NAr5E_ LISTER to get the next file name in the set~ The subroutine NA~5E_LISTER determines whether a memory buffer is empty, returns the next file name and increments a pointer to the next entry in the buffer. If the memory buffer is empty, the RETURN CODE is set to EMPTY. Otherwise, the operating system is then invoked to delete the ~ile by that name. This loop continues for every file in the component. The last call to the subroutine NAr~lE_LISTER results in a return code of Er5PTY. Since all of the component's files are removed, the r~,9~ , GROUP_APLD FIX is set back to zero to indicate that no updates for this component are applied. A REINSTALL
FLAG is set and subrou~ine REINSTALL returns to subroutine UNFIX. Thereafter, the subroutine UNFIX
sets flags for a report showing that the component was deleted and to be installed again this session. After all the code groupings have been considered by the subroutine UNFIX, control is returned to the main program.
At this point in the main program, all of the in-stalled components of the software program have either all of their updates applied or they need to have some applied. None of the components will have updates applied that exceed those of the imposed fix limits.
; 15 Subroutine APPLY_FIXES is called to apply the unapplied updates to all of the installed co~ponents.

APPLY_FIXES PROC
OPEN THE UPDATE DIRECTORY FILE
DO WHILE NOT END OF FILE AND NOT AN ERROR
READ AN UPDATE DIRECTORY TITLE RECORD GETTING THE
GROUP_ID & FIX_NUMBER
DO FOR EACH CODE GROUPING
CALL FIX_OR_SKIP PASSING IT FIX_NUMBER FROM
RECORD AND APPLIED_FIX_NUM FOR CODE
GROUPING.
ENDDO
ENDDO
CLOSE UPDATE DIRECTORY FILE.
IF ERROR FROM CLOSING FILE IS GREATER THAN THE
OS_ERROR_CODE THEN
OS_ERROR_CODE = CLOSING FILE ERROR VALUE
ENDIF
ENDPROC APPLY_FIXES

-FIX OR_SKIP PROC
IF FIX NOT APPLIED ((FIX_LIMIT >= FIX_NUMBER) AND
(FIX_NUMBER > APPLIED FIX NUM), THEN
DO UNTIL LAST RECORD OF FIX OR AN OS ERROR
READ NEXT UPDATE DIRECTORY FILE TAIL RECORD.
IF NO READ ERROR, THEN
IF FIX IS A PATCH TYPE, THEN
INVOKE OS PATCH FACILITY TO APPLY PATCH FROM
INSTRUCTIONS IN FILE SPECIFIED IN
FXFLSORC OF THE TAIL RECORD.
ELSE - FIX IS A FILE REPLACEMENT
REPLACE THE FILE SPECIFIED IN FXFLDEST WIT~
THE FILE SPECIFIED IN FXFLSORC OF THE
TAIL RECORD.
ENDIF
ENDIF
; ENDDO
IF NO ERROR, THEN
APPLIED FIX_NUM = FIX NUMBER (UPDATE THE APPLIED
FIX STATUS) ENDIF
ELSE - THROW AWAY UPDATE DIRECTORY TAIL RECORDS OF
UPDATE NOT BEING APPLIED
DO UNTIL LAST TAIL RECORD OF UPDA~E READ OR THERE
IS A FILE READ ERROR
READ AN UPDATE DIRECTORY TAIL RECORD.
ENDDO
ENDIF
ENDPROC FIX_OR SKIP
Subroutine APPLY_FIXES opens the update directory file and enters a loop reading update title records and calling a subroutine FIX_OR_SKIP to either apply the update or discard the remaining tail records of that update. The subroutine FIX OR_SRIP performs a ~. ~f ?~3t3~

test to determine whether the update has been applied.
This means that the FIX NUMBER from the record is greater than the APPLIED FIX_NIJM in the status file for the code grouping but less than the FIX LIMIT. If the update record indicates that the update is a patch such that instructions will be used to modify a file of the component, then a patch facility which is an integral part of the operating system is invoked to apply the patch. Otherwise, the update is a replace-ment of an entire file which is copied over theprevious file by that name.
If the update has already been applied or exceeds the limit, then, tail records are read from the update directory file until the title record of the next update is encountered. Then the subroutine FI~ OR_SKIP returns control to the subroutine AP-PLY FIXES. After the suhroutine APPLY_FIXES has read and processed all of the records in the update direc-tory file, all of the updates up to the selected limits have been applied. The file is closed and subroutine APPLY_FI~ES returns control to the main program which returns control to the driver program with the FINISH value in RETURN CODE to indicate that all of its work has been accomplished.
Referring to Fi.g. 2, there is shown a flow diagram which illustrates user and system 10 opera-tions for updating the installed software program. In step 30l the user selects one of the modes of opera-tionO As noted above, system 10 operates in the prompted mode or in the full function mode. The user in step 32 identifies a disk dri~e where the software program, which is to be updated, is stored. System 10 then determines in step 34 whether the user selected the prompted mode of operation in step 30. If the user has selected the prompted mode, the user , instructs the system 10 in step 36 to copy the update files thereto. In step 38, the user identifies a source drive where the update files are stored. It should be noted that the update file may be located on a remote server (not shown) which the system 10 communicates with through the modem 28 or through a direct communication link. ~ystem 10 then copies the update files on the source drive to the target direc-tory and creates the update directory file on the lp target directory. Thereafter, system 10 in step 4~
determines which of the plurality of features o~ the software program have been installed on the system and then applies the respective updates to those features.
If the user has selected the full function mode in step 30, system 10 in step 42 displays a full function menu which sets a plurality of functions which can be performed by the update program. System 10 then prompts the user in step 43 to determine if all of the updates have been applied. If there are additional updates to be applied, the user then instructs the system 10 by selecting an apply update function and the system prompts the user in step 44 to identify the source drive. System 10 then copies the update files on the source drive to the target drive and creates the update directory file on the target directory. Thereafter, system 10 in step 46 displays a screen panel which sets forth the highest update number or update limit appearing in the update direc-tory file for each of the features of the software program. The highest number update and all of the lowex number updates will be applied to the respective features when the user depresses an enter key on the keyboard 22. Alternately, the user may change the update limit to a lower number. System 10 i~ step 48 determines whether any previously installed updates .~

s9 exceed the changed update limit. If the update limit has been exceeded, system 10 in step 50 deletes all of the updates applied to those particular features.
Thereafter, system 10, in step 52, reapplies the updates up to and including the update associated with the changed update limit. If the previously applied updates did not exceed the changed update limit, system 10 applies all unapplied updates in step 52.
System 10 then returns to step 42 wherein the full ~0 function menu is displayed again. If all of the updates have been applied, the user, in step 43, terminates the update program. Otherwise, system 10 repeats steps 44 through 52 in the manner noted above.
Referring to Fig. 3, there is shown a screen panel which i5 displayed to the user in response to the user indicating to the system 10 that a selected software program is to be updated. It is assumed that some or all of the plurality of features or components of the selected software program have been installed on system 10 and that the user has invoked the update program set forth above to facilitate the updating of the selected software program. The user then selects one of the modes of operation by (1~ moving a cursor using a plurality of cursors keys on the keyboard 22 or using a mouse device so that the cursor is posi-tioned adjacent to the mode which is to be selected, (2) pressing a "P" key or a "F" key and pressing the ; enter key on the keyboard to select the prompted mode or the full function mode, respectively, or (3) pressing the respective numerical key associated with the respective modes shown in the screen panel.
System 10 then prompts the user to identify the target drive with a screen panel shown in Fig. 4. Prior to the display of the screen panel shown in Fig~ 4, system 10 determines the location where the software 19~:9 program is stored therein and then displays on the screen panel a suggested tar~et drive and directory for the software program. The user may accept the suggested target drive and directory or enter a different target drive or directory.
If system 10 is operatin~ in the prompted mode, the system then displays a screen panel shown in Fig.
5. The user enables system 10 to copy the update files by selecting a "copy update files" function as set forth in Fig. 5. System 10 then responds to the selection of the copy function with a screen panel shown in Fig. 6 wherein the user must provide the source drive and directory for the update files. The source drive and directory sets forth the location where the update files are stored. In a manner which is similar to that noted above, system 10 will suggest a source drive and directory which the user may accept or enter a different source drive or directory. The user, by pressing the enter key, enables system 10 to create the update directory file on the target drive and directory and store the update files in the directory. System 10 re-displays the screen panel shown in Fig. 5 wherein the user selects (1) the copy function if there are additional updates to be copied from a different drive and directory or (2) a "com-plete the installation" function. Once all of the updates have been copied to the target drive and directory, system 10 then determines which of the features of the software program has been installed and applies all of the updates stored in the update - directory file to the respective features when the complete the installation function has been selected.
After the system has applied all of the updates stored ~T9-87-017 ~3~

in the update directory file to the respective installed features, the system terminates this mode of operation.
If system 10 is operating in the full function mode, a screen panel, full function selection menu, shown in Fig. 7 is displayed to the user after the display of the screen panel shown in Fig. 4. The user instructs system 10 to apply updates by selecting the appropriate function shown in Fig. 7. System 10 responds by displaying the screen panel shown in Fig.
6 wherein the user must provide the source drive and directory associated with the update files. In a similar manner as noted above, the user may accept the suggested drive and directory or enter a different source drive or directory. System 10 then responds to the input of the source drive and directory by dis-playing a screen panel shown in Fig. 8. The screen panel shown in Fig. 8 displays the highest update number or update limit in the update directory file for each of the features of the software program installed on the system. These updates and all of the lower updates will be applied to the associated features when the user presses the enter key. Alter-nately, the user may change the update limit to a lower num~er. System 10 will then determine if any updates which were previously applied exceed the changed update limit for the respective feature. If the previously applied updates exceed the changed update limit, system 10 will delete all of the updates and reapply all of the updates which are below or equal to the update limit. This activity enables the user to remove or backout any updates previously applied which may cause an error condition to e~ist in the software program. Thereafter, system 10 will display the screen panels shown in Figs. 7, 6 and 8 -~1 ~f? ~9 until all of the updates have been applied or removed therefrom.
While the invention has heen particularly shown and described with reference to a preferred embodi-ment, it will be understood by those skilled in the art that various changes in form and detail may be made without departing from the spirit and scope of the invention.

: 15 .

.

Claims (20)

1. In a computer system having a display and a memory system, a method of updating a software program having a plurality of separately install-able features or components installed on said computer system, said method comprising the steps of:

storing a plurality of update files into said computer system;

selecting one of a plurality of operating modes for said computer system; and applying said update files to respective features of said software program installed on said system in response to said step of selecting wherein at least one feature within said software program is updated.
2. The method as recited in claim 1 wherein the mode selected is a prompted mode and further comprises the steps of:

displaying a first target drive and directo-ry on a display screen of said system where said software program is stored in said system; and displaying a first source drive and directo-ry on said display screen where said update files are stored.
3. The method as recited in claim 2 further compris-es the steps of:

identifying a second target drive and directory in response to said step of displaying said first target drive and directory wherein said software program is stored on a drive and directory which is different from said first target drive and directory; and identifying a second source drive and directory in response to said step of displaying said first source drive and directory wherein said update files are stored on a drive and directory which is different from said first source drive and directory.
4. The method as recited in claim 3 wherein the step of storing comprises the step of storing update files for all of the plurality of features irrespective of the features installed on said system.
5. The method as recited in claim 4 wherein a subset of the plurality of features may be installed on said computer system and further comprises the step of determining which of the features have been installed on said system.
6. The method as recited in claim 5 wherein said first target drive and directory and said second target drive and directory each are referred to as a destination drive and directory and wherein the first source drive and directory and said second source drive and directory each are referred to as an initial drive and directory and wherein the step of storing comprises the steps of:

copying the update files on said initial drive and directory to said destination drive and directory; and creating an update directory file on said destination drive and directory.
7. The method as recited in claim 6 wherein said update directory file resides on said destination drive and directory and further comprises the steps of:

copying additional update files residing on said initial drive and directory to said destina-tion drive and directory; and modifying said update directory file on said destination drive and directory in response to said step of copying said additional update files.
8. The method as recited in claim 1 wherein the mode selected is a full function mode and further comprises the steps of:

displaying a first target drive and directo-ry on a display screen of said system where said software program is stored in said system; and displaying a first source drive and directo-ry on said display screen where said update files are stored.
9. The method as recited in claim 8 further compris-es the steps of identifying a second target drive and directory in response to said step of displaying said first target drive and directory wherein said software program is stored on a drive and directory which is different from said first target drive and directory; and identifying a second source drive and directory in response to said step of displaying said first source drive and directory wherein said update files are stored on a drive and directory which is different from said first source drive and directory.
10. The method as recited in claim 9 wherein the step of storing comprises the step of storing update files for all of the plurality of features irrespective of the features installed on said system.
11. The method as recited in claim 10 wherein a subset of the plurality of features may be installed on said computer system and further comprises the step of determining which of the features have been installed on said system.
12. The method as recited in claim 11 wherein said first target drive and directory and said second target drive and directory each are referred to as a destination drive and directory and wherein the first source drive and directory and said source second drive and directory each are referred to as an initial drive and directory and wherein the step of storing comprises the steps of:

copying the update files on said initial drive and directory to said destination drive and directory; and creating an update directory file on said destination drive and directory.
13. The method as recited in claim 12 further com-prises the step of displaying a value which represents the highest numbered update stored in the update directory file and which is associated with a selected feature.
14. The method as recited in claim 13 wherein the highest numbered update represents a update limit and further comprises the steps of:

determining whether any updates which were previously applied exceed the update limit;

deleting all of the previously applied updates if the update limit has been exceeded;
and reapplying all of the updates associated with the selected feature up to and including the update associated with the update limit.
15. The method as recited in claim 14 wherein said update directory file resides on said target drive and directory and further comprises the steps of:
copying additional update files residing on said initial drive and directory to said destination drive and directory; and modifying said update directory file on said destination drive and directory in response to said step of copying said additional update files.
16. In a computer system having a display and a memory system, a method of updating a software program having a plurality of separately installable features or components installed on said computer system, said method comprising the steps of:
storing a plurality of update files into said computer system;
applying said update files to respective features of said software program installed on said system in response to said step of storing wherein at least one feature within said software program is updated.
17. The method as recited in claim 16 wherein the step of storing comprises the step of storing update files for all features, irrespective of the installed features on said system.
18. The method as recited in claim 17 wherein a subset of the plurality of features may be installed on said computer system , said method further comprises the step of determining which of the features have been installed on said system.
19. The method as recited in claim 18 wherein the software program is stored on a target drive and directory and the update files are stored on a source drive and directory in said system and herein the step of storing comprises the steps of:

copying the update files on the source drive and directory to the target drive and directory;
and creating an update directory file on the target drive and directory.
20. The method as recited in claim 19 wherein said update directory file resides on said target drive and directory and further comprises the steps of:

copying additional update files residing on said initial drive and directory to said destina-tion drive and directory; and modifying said update directory file on said destination drive and directory in response to said step of copying said additional update files.
CA000570368A 1987-07-20 1988-06-24 Method of applying software modifications Expired - Fee Related CA1301939C (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US7579487A 1987-07-20 1987-07-20
US07/075,794 1987-07-20

Publications (1)

Publication Number Publication Date
CA1301939C true CA1301939C (en) 1992-05-26

Family

ID=22128026

Family Applications (1)

Application Number Title Priority Date Filing Date
CA000570368A Expired - Fee Related CA1301939C (en) 1987-07-20 1988-06-24 Method of applying software modifications

Country Status (4)

Country Link
US (1) US5577244A (en)
EP (1) EP0300710A3 (en)
JP (1) JPS6437621A (en)
CA (1) CA1301939C (en)

Families Citing this family (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0415863A3 (en) * 1989-08-31 1992-02-26 International Business Machines Corporation Computer system with downward compatibility function
US6044205A (en) * 1996-02-29 2000-03-28 Intermind Corporation Communications system for transferring information between memories according to processes transferred with the information
US5892953A (en) * 1991-04-15 1999-04-06 International Business Machines Corporation Corrective service facility
US5528490A (en) 1992-04-10 1996-06-18 Charles E. Hill & Associates, Inc. Electronic catalog system and method
JP3487559B2 (en) * 1993-06-29 2004-01-19 キヤノン株式会社 Composite control device and control method of composite control device
US5477264A (en) * 1994-03-29 1995-12-19 Eastman Kodak Company Electronic imaging system using a removable software-enhanced storage device
US5694546A (en) 1994-05-31 1997-12-02 Reisman; Richard R. System for automatic unattended electronic information transport between a server and a client by a vendor provided transport software with a manifest list
US5692187A (en) * 1995-02-14 1997-11-25 General Magic Shadow mechanism having masterblocks for a modifiable object oriented system
US5819306A (en) * 1995-02-14 1998-10-06 General Magic Shadow mechanism for a modifiable object oriented system
US6349407B1 (en) * 1995-12-29 2002-02-19 Sun Microsystems, Incorporated Method and apparatus for re-introducing version control
US6625617B2 (en) 1996-01-02 2003-09-23 Timeline, Inc. Modularized data retrieval method and apparatus with multiple source capability
US6161218A (en) * 1996-01-16 2000-12-12 Sun Microsystems Inc. Software patch architecture
US6128771A (en) 1996-02-09 2000-10-03 Sun Microsystems, Inc. System and method for automatically modifying database access methods to insert database object handling instructions
US5862325A (en) * 1996-02-29 1999-01-19 Intermind Corporation Computer-based communication system and method using metadata defining a control structure
US5970471A (en) 1996-03-22 1999-10-19 Charles E. Hill & Associates, Inc. Virtual catalog and product presentation method and apparatus
US6151643A (en) * 1996-06-07 2000-11-21 Networks Associates, Inc. Automatic updating of diverse software products on multiple client computer systems by downloading scanning application to client computer and generating software list on client computer
US6006034A (en) * 1996-09-05 1999-12-21 Open Software Associates, Ltd. Systems and methods for automatic application version upgrading and maintenance
US5809251A (en) * 1996-10-09 1998-09-15 Hewlett-Packard Company Remote installation of software by a management information system into a remote computer
JP2001516475A (en) * 1997-02-24 2001-09-25 ワイルドファイアー コミュニケイションズ インコーポレイテッド Method and apparatus for providing additional product features to a user
KR100213102B1 (en) * 1997-04-11 1999-08-02 윤종용 Method for reforming the program of a personal communications device using pc card and apparatus therefor
US6023763A (en) * 1997-04-23 2000-02-08 Fisher Controls International, Inc. Method of and apparatus for protecting and upgrading software using a removable hardlock
US5948104A (en) * 1997-05-23 1999-09-07 Neuromedical Systems, Inc. System and method for automated anti-viral file update
US5974258A (en) * 1997-07-18 1999-10-26 International Business Machines Corporation Method and apparatus for performing single-function software operations on a server processor for a target of one or more processors in a network of processors
US6460175B1 (en) 1997-07-18 2002-10-01 International Business Machines Corporation Program product for modular, parallel, remote software installation with repeatable, externally-invocable steps
US5896527A (en) * 1997-10-31 1999-04-20 Lucent Technologies Inc. Accessing data during the transition between program releases
US6035423A (en) * 1997-12-31 2000-03-07 Network Associates, Inc. Method and system for providing automated updating and upgrading of antivirus applications using a computer network
US6021276A (en) * 1998-03-11 2000-02-01 International Business Machines Corporation Method and apparatus for microcode downloading
US6230316B1 (en) * 1998-04-17 2001-05-08 Symantec Corporation Patching rebased and realigned executable files
US20020073398A1 (en) * 1998-12-14 2002-06-13 Jeffrey L. Tinker Method and system for modifying executable code to add additional functionality
US6434744B1 (en) * 1999-03-03 2002-08-13 Microsoft Corporation System and method for patching an installed application program
US6438688B1 (en) 1999-03-24 2002-08-20 Dell Usa, L.P. Method and computer for locally and remotely updating a basic input output system (BIOS) utilizing one update file
US6374401B1 (en) * 1999-03-29 2002-04-16 International Business Machines Corporation System, method, and program for updating registry objects with a cross-platform installation program
US6347397B1 (en) * 1999-03-29 2002-02-12 International Business Machines Corporation System, method, and program for providing an object-oriented install architecture
US6385766B1 (en) * 1999-05-20 2002-05-07 Dell Usa L.P. Method and apparatus for windows-based installation for installing software on build-to-order computer systems
JP3655152B2 (en) * 1999-11-29 2005-06-02 富士通株式会社 Software editing apparatus and storage medium
US6526418B1 (en) * 1999-12-16 2003-02-25 Livevault Corporation Systems and methods for backing up data files
US7086050B2 (en) * 2000-08-04 2006-08-01 Mcafee, Inc. Updating computer files
EP1202168A3 (en) * 2000-10-30 2006-08-23 Microsoft Corporation System and method for dynamically veryfying the compatibility of a user interface resource
US6918110B2 (en) * 2001-04-11 2005-07-12 Hewlett-Packard Development Company, L.P. Dynamic instrumentation of an executable program by means of causing a breakpoint at the entry point of a function and providing instrumentation code
US20030028513A1 (en) * 2001-07-13 2003-02-06 Neal Pawar System and method for providing help services
EP1280057A1 (en) * 2001-07-26 2003-01-29 Universite Pierre Et Marie Curie Method of dynamic customization of an application program
JP4589426B2 (en) * 2001-08-27 2010-12-01 株式会社リコー Image forming apparatus, program update method, and recording medium
CA2369228A1 (en) * 2002-01-24 2003-07-24 Alcatel Canada Inc. System and method for managing configurable elements of devices in a network element and a network
US7237238B2 (en) * 2002-03-01 2007-06-26 Dell Products L.P. Method and apparatus for automated operating systems upgrade
US7814476B2 (en) * 2002-10-31 2010-10-12 Oracle America, Inc. Systems and methods for updating software
US8316361B2 (en) * 2003-01-09 2012-11-20 Hewlett-Packard Development Company, L.P. Method of enabling a user to update one or more low-level resources of a computer system in a user-friendly manner
US7313792B2 (en) * 2003-09-08 2007-12-25 Microsoft Corporation Method and system for servicing software
US7225208B2 (en) 2003-09-30 2007-05-29 Iron Mountain Incorporated Systems and methods for backing up data files
US7694295B2 (en) * 2003-12-16 2010-04-06 Hewlett-Packard Development Company, L.P. Displaying a vendor provided information screen in response to a log-in experience
US20060242197A1 (en) * 2005-04-22 2006-10-26 Igor Tsyganskiy Methods of transforming application layer structure as objects
US7958486B2 (en) * 2005-04-22 2011-06-07 Sap Ag Methods and systems for data-focused debugging and tracing capabilities
US8539003B2 (en) * 2005-04-22 2013-09-17 Sap Ag Systems and methods for identifying problems of a business application in a customer support system
CN100338574C (en) * 2005-04-22 2007-09-19 北京中星微电子有限公司 Method and apparatus for allocating dynamic drive for electronic equipment
US20060293934A1 (en) * 2005-04-22 2006-12-28 Igor Tsyganskiy Methods and systems for providing an integrated business application configuration environment
US20070266371A1 (en) * 2005-12-30 2007-11-15 Ramakrishnan Suraj Multiple correction requests occurring from a single request
US8112508B1 (en) * 2006-09-08 2012-02-07 Dell Products L.P. Delivering data from device management services to devices using bulletin system
US8270962B1 (en) 2009-10-20 2012-09-18 Sprint Communications Company L.P. Emergency calls on a wireless communication device during a device reboot
US9378007B2 (en) * 2010-12-01 2016-06-28 Apple Inc. Pre-heated software installation
US10146520B1 (en) * 2010-12-14 2018-12-04 Ivanti, Inc. Updating a running application on a computing device
CN102693181A (en) * 2011-03-25 2012-09-26 鸿富锦精密工业(深圳)有限公司 Firmware update-write system and method
US9317269B2 (en) 2012-09-28 2016-04-19 Wal-Mart Stores, Inc. Systems and methods for installing, managing, and provisioning applications
US8949824B2 (en) 2012-09-28 2015-02-03 Wal-Mart Stores, Inc. Systems and methods for installing, managing, and provisioning applications
US9235491B2 (en) 2012-09-28 2016-01-12 Wal-Mart Stores, Inc. Systems and methods for installing, managing, and provisioning applications
US9128792B2 (en) 2012-09-28 2015-09-08 Wal-Mart Stores, Inc. Systems and methods for installing, managing, and provisioning applications
CN104239312B (en) * 2013-06-11 2019-03-15 富泰华工业(深圳)有限公司 File management system and method
JP5991333B2 (en) * 2014-02-18 2016-09-14 コニカミノルタ株式会社 Information processing apparatus, setting value updating method and setting value updating program in the apparatus
CN110069266B (en) * 2018-01-24 2022-02-01 腾讯科技(深圳)有限公司 Application upgrading method and device, computer equipment and storage medium

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4556954A (en) * 1981-10-13 1985-12-03 International Business Machines Corporation Method for displaying selected text processing task options corresponding to the contents of the combined program diskette
US4477880A (en) * 1981-10-13 1984-10-16 International Business Machines Corporation Method for combining program diskettes in an interactive text processing system
US4498142A (en) * 1981-10-13 1985-02-05 International Business Machines Corporation Method for updating a program on a combined program diskette in an interactive text processing system
JPS5876942A (en) * 1981-10-13 1983-05-10 インタ−ナシヨナル ビジネス マシ−ンズ コ−ポレ−シヨン Display of text processing task option
US4763271A (en) * 1983-09-12 1988-08-09 Pitney Bowes Inc. Method and apparatus for updating parameter data
US4558413A (en) * 1983-11-21 1985-12-10 Xerox Corporation Software version management system
JPS6115203A (en) * 1984-06-30 1986-01-23 Fanuc Ltd Correction of system program
US4734854A (en) * 1985-10-08 1988-03-29 American Telephone And Telegraph Company System for generating software source code components
US4747127A (en) * 1985-12-23 1988-05-24 American Telephone And Telegraph Company, At&T Bell Laboratories Customer programmable real-time system
US4809170A (en) * 1987-04-22 1989-02-28 Apollo Computer, Inc. Computer device for aiding in the development of software system

Also Published As

Publication number Publication date
JPS6437621A (en) 1989-02-08
US5577244A (en) 1996-11-19
EP0300710A3 (en) 1991-10-23
EP0300710A2 (en) 1989-01-25

Similar Documents

Publication Publication Date Title
CA1301939C (en) Method of applying software modifications
US5953532A (en) Installation and deinstallation of application programs
US5115501A (en) Procedure for automatically customizing the user interface of application programs
US4845665A (en) Simulation of computer program external interfaces
US6550061B1 (en) System and method for modifying configuration files in a secured operating system
EP0951679B1 (en) Software update manager
US6601236B1 (en) Cross platform program installation on drives using drive object
US6564369B1 (en) Conflict checking using configuration images
US6367073B2 (en) Centralized, automated installation of software products
US6442754B1 (en) System, method, and program for checking dependencies of installed software components during installation or uninstallation of software
US5367686A (en) Method for automated complex multilevel softward installation in a data processing system
US6239800B1 (en) Method and apparatus for leading a user through a software installation procedure via interaction with displayed graphs
CN1129845C (en) Movable table top parts mounted by factory
US5990906A (en) Undo feature for a graphical programming system
CN1107273C (en) System for manufacturing hard disk master and method therefor
US6687902B1 (en) Method, system, and program for deleting user selected file sets of a program
CA2116772C (en) Procedural user interface
EP0649088B1 (en) Method and system for installing an operating system onto a data processing system
US6631521B1 (en) System, method, and program for performing program specific operations during the uninstallation of a computer program from a computer system
US5291595A (en) Batch/application program processing
US6360365B1 (en) System, method, and program for preserving background settings during install and uninstall operations
US5983368A (en) Method and system for facilitating hierarchical storage management (HSM) testing
US6610103B2 (en) Method for providing precise cumulative updates and fixes to a software product
US6774921B1 (en) Method and apparatus for dynamically saving/restoring the properties of controls in a screen dialog
CA2138661C (en) Sequential information integration service for integrating transfer of files or other data entities between a plurality of program modules and a storage in a computer

Legal Events

Date Code Title Description
MKLA Lapsed