# US 10,310,842 B1 · Recommendation system for software updates

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

- Number: US 10,310,842 B1
- Document ID: US10310842B1
- Status: Granted
- Kind: B1
- Application number: 15/828,710
- Filed: 2017-12-01
- Published: 2019-06-06
- Granted: 2019-06-04
- Earliest claimed: 2017-12-01
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Keith J. Miller; Anthony Sofia; Marna Walle
- Web page: https://patentgrep.com/patent/US10310842B1

## CPC

- G06F 8/65: Updates (security arrangements therefor G06F21/57)
- G06F 8/10: Requirements analysis; Specification techniques
- G06F 8/71: Version control (security arrangements therefor G06F21/57); Configuration management
- G06F 11/3409: {for performance assessment}
- G06F 2201/88: Monitoring involving counting
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Embodiments of the invention are directed to methods for recommending software updates for a computer system. The method includes receiving a request to find software updates from a requesting computer system. The method further includes analyzing specifications of the requesting computer system and determining similar computer systems. The method further includes determining a subset of software updates for recommendation based on the determination. The method further includes presenting the subset to the requesting computer system.

## Claims

### Claim 1

A computer-implemented method for recommending software updates for a mainframe computer system, the method comprising:
receiving a request to find software updates from a requesting mainframe computer system;
analyzing specifications of the requesting mainframe computer system, wherein analyzing specifications of the requesting mainframe computer system comprises:
determining hardware components of the requesting mainframe computer system;
wherein determining hardware components comprises determining performance of the hardware components;
wherein determining performance of the hardware components comprises using counters to determine existence of performance issues; and
wherein using counters comprises:
grouping a software update into one or more code sections (CSECTS),
determining a number of counted execution instances (clicks) used to process each CSECT, and
using the number of clicks to determine existence of performance issues; and
determining software installed on the requesting mainframe computer system;
determining similar mainframe computer systems that have installed software updates;
determining a subset of software updates for recommendation based on the specifications of the requesting mainframe computer system and the software updates installed on the similar mainframe computer systems;
presenting, to a system administrator of the requesting mainframe computer system, the subset of software updates to the requesting mainframe computer system;
installing at least one software update of the subset of software updates; and
storing each installed software updates in a database.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, wherein:
using counters further comprises determining dependencies between CSECTS.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, wherein:
the existence of performance issues is used to determine the subset of software updates for recommendation.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, wherein:
determining a subset of software updates based on determining the similar mainframe computer systems comprises determining software updates installed on similar mainframe computer systems.

### Claim 5

A computer system for recommending software updates, the system comprising:
a memory; and
a processor system communicatively coupled to the memory;
the processor system configured to perform a method comprising:
receiving a request to find software updates from a requesting mainframe computer system;
analyzing specifications of the requesting mainframe computer system, wherein analyzing specifications of the requesting mainframe computer system comprises:
determining hardware components of the requesting mainframe computer system;
wherein determining hardware components comprises determining performance of the hardware components;
wherein determining performance of the hardware components comprises using counters to determine existence of performance issues; and
wherein using counters comprises:
grouping a software update into one or more code sections (CSECTS),
determining a number of counted execution instances (clicks) used to process each CSECT, and
using the number of clicks to determine existence of performance issues; and
determining software installed on the requesting mainframe computer system;
determining similar mainframe computer systems that have installed software updates;
determining a subset of software updates for recommendation based on the specification of the requesting mainframe computer system and the software updates installed on the similar mainframe computer systems; and
presenting, to a system administrator of the requesting mainframe computer system, the subset of software updates to the requesting mainframe computer system;
installing at least one software update of the subset of software updates; and
storing each installed software update in a database.

### Claim 6 (depends on 5)

The computer system of claim 5, wherein:
using counters further comprises determining dependencies between CSECTS.

### Claim 7 (depends on 5)

The computer system of claim 5, wherein:
the existence of performance issues is used to determine the subset of software updates for recommendation.

### Claim 8

A computer program product for recommending software updates for a mainframe computer system comprising:
a computer-readable storage medium having program instructions embodied therewith, wherein the computer-readable storage medium is not a transitory signal per se, the program instructions readable by a processor system to cause the processor system to perform a method comprising:
receiving a request to find software updates from a requesting mainframe computer system;
analyzing specifications of the requesting mainframe computer system, wherein analyzing specifications of the requesting mainframe computer system comprises:
determining hardware components of the requesting mainframe computer system;
wherein determining hardware components comprises determining performance of the hardware components:
wherein determining performance of the hardware components comprises using counters to determine existence of performance issues; and
wherein using counters comprises:
grouping a software update into one or more code sections (CSECTS),
determining a number of counted execution instances (clicks) used to process each CSECT, and
using the number of clicks to determine existence of performance issues; and
determining software installed on the requesting mainframe computer system
determining similar mainframe computer systems that have installed software updates;
determining a subset of software updates for recommendation based on the specification of the requesting mainframe computer system and the software updates installed on the similar mainframe computer systems;
presenting, to a system administrator of the requesting mainframe computer system, the subset of software updates to the requesting mainframe computer system;
installing at least one software update of the subset of software updates; and
storing each installed software update in a database.
