# US 11,030,004 B2 · Resource allocation for software development

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

- Number: US 11,030,004 B2
- Document ID: US11030004B2
- Status: Granted
- Kind: B2
- Application number: 15/833,347
- Filed: 2017-12-06
- Published: 2018-04-19
- Granted: 2021-06-08
- Earliest claimed: 2010-11-29
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Arthur F. Crotty; Shailaja S. Golikeri; Brian C. Schimpf; Yuhong Yin
- Web page: https://patentgrep.com/patent/US11030004B2

## CPC

- G06F 9/50: Allocation of resources, e.g. of the central processing unit [CPU]
- G06F 8/20: Software design
- G06Q 10/06313: {Resource planning in a project environment}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR

## Abstract

Software development data indicative of a development activity is accessed. A component parameter of a component of a software development platform is set, in which the component parameter is based upon, at least in part, an anticipated component workload associated with the development actively. At least one system resource is allocated for the component of the software development platform based upon, at least in part, the component parameter.

## Claims

### Claim 1

A computer program product comprising a non-transitory computer readable medium having a plurality of instructions stored thereon, which, when executed by a processor, cause the processor to perform operations comprising:
accessing software development data indicative of a development activities of a software development project carried out using a plurality of components, wherein the plurality of components are allocated system resources based at least in part on an anticipated component workload of a first phase of a plurality of phases of the software development project, wherein accessing the software development data includes accessing a transaction log storing transaction data for software development transactions that include instances of use of the plurality of components;
inferring a phase change of the software development program to a second phase of the plurality of phases based upon, at least in part, the software development data, including a relative frequency and nature of the various software development platform transactions determined from transaction data of the transaction log;
providing a plurality of application server profiles, wherein each profile of the plurality of application server profiles corresponds to a respective phase of the plurality of phases of the software development project and includes parameter settings for the plurality of components of a software development platform, wherein a component parameter controls allocation of system resources for the plurality of components and the parameter settings in each profile, which are based at least in part on an anticipated workload of the plurality of components during the corresponding phase;
in response to inferring the phase change of the software development program to the second phase, setting the component parameter in accordance with the parameter settings in the application server profile which corresponds to the second phase of the plurality of phases; and
allocating system resources to the plurality of components software development platform in accordance with the set component parameters.

### Claim 2 (depends on 1)

The computer program product of claim 1, further comprising accessing software development data that includes a software development schedule which specifies timeframes for the plurality of phases of the software development project.

### Claim 3 (depends on 1)

The computer program product of claim 1, wherein system resources include one or more of a number of CPU's, a number of CPU cores, memory, and disk space.

### Claim 4 (depends on 1)

The computer program product of claim 1, wherein the components include a virtual machine.

### Claim 5 (depends on 1)

The computer program product of claim 1, wherein the plurality of phases of the software development project include one or more of a planning phase, a coding phase, and a testing phase.

### Claim 6 (depends on 1)

The computer program product of claim 1, wherein the plurality of components includes one or more of a collaboration component, a source code editing component, a software configuration management component, and an automated testing component.

### Claim 7 (depends on 1)

The computer program product of claim 1, wherein the plurality of phases of the software development project include a planning phase and the parameter settings in the application server profile corresponding to the planning phase reflect a relatively high anticipated workload for a collaboration component and a relatively low anticipated workload for an automated testing component.

### Claim 8 (depends on 1)

The computer program product of claim 1, wherein the plurality of components of the software development platform are accessed by one or more client devices via a network to perform one or more of the software development activities.

### Claim 9

A system comprising: a processor;
a memory;
a first software module executable by the processor and the memory, the first software module configured to access software development data indicative of development activities of a software development project carried out using a plurality of components, wherein the plurality of components are allocated system resources based at least in part on an anticipated component workload of a first phase of a plurality of phases of the software development project, wherein accessing the software development data includes accessing a transaction log storing transaction data for software development transactions that include instances of use of the plurality of components;
a second software module executable by the processor and the memory, the second software module configured to infer a phase change of the software development program to a second phase of the plurality of phases based upon, at least in part, the software development data, including a relative frequency and nature of the various software development platform transactions determined from transaction data of the transaction log;
a third software module executable by the processor and the memory, the third software module configured to provide a plurality of application server profiles, wherein each profile of the plurality of application server profiles corresponds to a respective phase of the plurality of phases of the software development project and includes parameter settings for the plurality of components of a software development platform, wherein a component parameter controls allocation of system resources for the plurality of components and the parameter settings in each profile, which are based at least in part on an anticipated workload of the plurality of components during the corresponding phase;
in response to inferring the phase change of the software development program to the second phase, a fourth software module executable by the processor and the memory, the fourth software module configured to set the component parameter in accordance with the parameter settings in the application server profile which corresponds to the second phase of the plurality of phases; and
a fifth software module executable by the processor and the memory, the fifth software module configured to allocate system resources to the plurality of components software development platform in accordance with the set component parameters.

### Claim 10 (depends on 9)

The system of claim 9, further comprising accessing software development data that includes a software development schedule which specifies timeframes for the plurality of phases of the software development project.

### Claim 11 (depends on 9)

The system of claim 9, wherein system resources include one or more of a number of CPU's, a number of CPU cores, memory, and disk space.

### Claim 12 (depends on 9)

The system of claim 9, wherein the components include a virtual machine.

### Claim 13 (depends on 9)

The system of claim 9, wherein the plurality of phases of the software development project include one or more of a planning phase, a coding phase, and a testing phase.

### Claim 14 (depends on 9)

The system of claim 9, wherein the plurality of components includes one or more of a collaboration component, a source code editing component, a software configuration management component, and an automated testing component.

### Claim 15 (depends on 9)

The system of claim 9, wherein the plurality of phases of the software development project include a planning phase and the parameter settings in the application server profile corresponding to the planning phase reflect a relatively high anticipated workload for a collaboration component and a relatively low anticipated workload for an automated testing component.

### Claim 16 (depends on 9)

The system of claim 9, wherein the plurality of components of the software development platform are accessed by one or more client devices via a network to perform one or more of the software development activities.
