# US 2014/0196020 A1 · Generating software updates

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2014/0196020 A1
- Document ID: US20140196020A1
- Status: Published application
- Kind: A1
- Application number: 13/736,253
- Filed: 2013-01-08
- Published: 2014-07-10
- Earliest claimed: 2013-01-08
- Assignees: Sap SE
- Inventors: Mahidhar K. Shetty; Preetpal Singh; Biju Balachandran
- Web page: https://patentgrep.com/patent/US20140196020A1

## CPC

- G06F 8/65: Updates (security arrangements therefor G06F21/57)
- G06F 8/658: Incremental updates; Differential updates
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Techniques for generating a software update include determining changes between a previous version of a software package and a new version of the software package. Whether each change can be implemented as automatic correction instructions that can be executed by a client computer system is determined. Automatic correction instructions are generated for changes that can be implemented as automatic correction instructions. Manual correction instructions are generated for changes that cannot be implemented as automatic correction instructions, including, for each of those changes, identifying a corresponding template for a text string for the change from a repository of templates and including the text string in the manual correction instruction.

## Claims

### Claim 1

A computer-implemented method of generating a software update for a software package, the method comprising:
determining a plurality of changes between a previous version of the software package and a new version of the software package;
for each change, determining whether the change can be implemented as one or more automatic correction instructions that can be executed by a client computer system, including determining that one or more first changes can be implemented as automatic correction instructions and that one or more second changes cannot be implemented as automatic correction instructions;
generating one or more automatic correction instructions for the one or more first changes; and
generating one or more manual correction instructions for the one or more second changes, including, for each second change, identifying a corresponding template for a text string for the change from a repository of templates and including the text string in the manual correction instruction.

### Claim 2 (depends on 1)

The method of claim 1, further comprising sending the automatic correction instructions, the manual correction instructions, and update instructions to a computer system storing the software package, wherein the computer system is configured to executing the update instructions, thereby causing the computer system to execute the automatic correction instructions to update the software package and to display the manual correction instructions.

### Claim 3 (depends on 1)

The method of claim 1, wherein determining whether the change can be implemented as one or more automatic correction instructions that can be executed by a client computer system comprises:
determining whether the change is a source code change or a change to a specified object on a list of objects;
if the change is a source code change or a change to a specified object, determining that the change can be implemented in automatic correction instructions; and
if the change is not a source code change or a change to a specified object, determining that the change cannot be implemented in automatic correction instructions.

### Claim 4 (depends on 1)

The method of claim 1, wherein generating one or more automatic correction instructions for the one or more first changes comprises generating the automatic correction instructions so that, when executed by a computer system, the computer system will modify a stored copied of the previous version of the software package to correspond to the new version of the software package as specified by the change.

### Claim 5 (depends on 1)

The method of claim 1, wherein identifying a corresponding template for a text string for the change from a repository of templates and including the text string in the manual correction instructions comprises populating the text string from the corresponding template with information specific to the change.

### Claim 6 (depends on 1)

The method of claim 1, wherein the corresponding template includes a plurality of different text strings each in a different language, and wherein including the text string in the manual correction instructions comprises selecting one of the different text strings to match a specified language of a computer system requesting the software update.

### Claim 7 (depends on 1)

The method of claim 1, wherein the templates in the repository of templates are specified at a uniform level of granularity.

### Claim 8 (depends on 1)

The method of claim 1, further comprising:
determining that a first change lacks a corresponding template in the repository of templates; and
generating a new template for the first change by analyzing the first change and applying natural language processing.

### Claim 9

A computer storage medium encoded with a computer program, the program comprising instructions that when executed by one or more computers cause the one or more computers to perform operations comprising:
determining a plurality of changes between a previous version of a software package and a new version of the software package;
for each change, determining whether the change can be implemented as one or more automatic correction instructions that can be executed by a client computer system, including determining that one or more first changes can be implemented as automatic correction instructions and that one or more second changes cannot be implemented as automatic correction instructions;
generating one or more automatic correction instructions for the one or more first changes; and
generating one or more manual correction instructions for the one or more second changes, including, for each second change, identifying a corresponding template for a text string for the change from a repository of templates and including the text string in the manual correction instruction.

### Claim 10 (depends on 9)

The computer storage medium of claim 9, the operations further comprising sending the automatic correction instructions, the manual correction instructions, and update instructions to a computer system storing the software package, wherein the computer system is configured to executing the update instructions, thereby causing the computer system to execute the automatic correction instructions to update the software package and to display the manual correction instructions.

### Claim 11 (depends on 9)

The computer storage medium of claim 9, wherein determining whether the change can be implemented as one or more automatic correction instructions that can be executed by a client computer system comprises:
determining whether the change is a source code change or a change to a specified object on a list of objects;
if the change is a source code change or a change to a specified object, determining that the change can be implemented in automatic correction instructions; and
if the change is not a source code change or a change to a specified object, determining that the change cannot be implemented in automatic correction instructions.

### Claim 12 (depends on 9)

The computer storage medium of claim 9, wherein generating one or more automatic correction instructions for the one or more first changes comprises generating the automatic correction instructions so that, when executed by a computer system, the computer system will modify a stored copied of the previous version of the software package to correspond to the new version of the software package as specified by the change.

### Claim 13 (depends on 9)

The computer storage medium of claim 9, wherein identifying a corresponding template for a text string for the change from a repository of templates and including the text string in the manual correction instructions comprises populating the text string from the corresponding template with information specific to the change.

### Claim 14 (depends on 9)

The computer storage medium of claim 9, wherein the corresponding template includes a plurality of different text strings each in a different language, and wherein including the text string in the manual correction instructions comprises selecting one of the different text strings to match a specified language of a computer system requesting the software update.

### Claim 15 (depends on 9)

The computer storage medium of claim 9, wherein the templates in the repository of templates are specified at a uniform level of granularity.

### Claim 16 (depends on 9)

The computer storage medium of claim 9, the operations further comprising:
determining that a first change lacks a corresponding template in the repository of templates; and
generating a new template for the first change by analyzing the first change and applying natural language processing.

### Claim 17

A system of one or more computers configured to perform operations comprising:
A computer storage medium encoded with a computer program, the program comprising instructions that when executed by one or more computers cause the one or more computers to perform operations comprising:
determining a plurality of changes between a previous version of a software package and a new version of the software package;
for each change, determining whether the change can be implemented as one or more automatic correction instructions that can be executed by a client computer system, including determining that one or more first changes can be implemented as automatic correction instructions and that one or more second changes cannot be implemented as automatic correction instructions;
generating one or more automatic correction instructions for the one or more first changes; and
generating one or more manual correction instructions for the one or more second changes, including, for each second change, identifying a corresponding template for a text string for the change from a repository of templates and including the text string in the manual correction instruction.

### Claim 18 (depends on 17)

The system of claim 17, the operations further comprising sending the automatic correction instructions, the manual correction instructions, and update instructions to a computer system storing the software package, wherein the computer system is configured to executing the update instructions, thereby causing the computer system to execute the automatic correction instructions to update the software package and to display the manual correction instructions.

### Claim 19 (depends on 17)

The system of claim 17, wherein determining whether the change can be implemented as one or more automatic correction instructions that can be executed by a client computer system comprises:
determining whether the change is a source code change or a change to a specified object on a list of objects;
if the change is a source code change or a change to a specified object, determining that the change can be implemented in automatic correction instructions; and
if the change is not a source code change or a change to a specified object, determining that the change cannot be implemented in automatic correction instructions.

### Claim 20 (depends on 17)

The system of claim 17, wherein identifying a corresponding template for a text string for the change from a repository of templates and including the text string in the manual correction instructions comprises populating the text string from the corresponding template with information specific to the change.
