# US 2014/0157063 A1 · Evaluating Reliability of a Software Module Using Development Life Cycle

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

- Number: US 2014/0157063 A1
- Document ID: US20140157063A1
- Status: Published application
- Kind: A1
- Application number: 13/784,341
- Filed: 2013-03-04
- Published: 2014-06-05
- Earliest claimed: 2012-12-05
- Assignees: International Business Machines Corporation
- Inventors: John J. Bird; Terry R. Ulmer
- Web page: https://patentgrep.com/patent/US20140157063A1

## CPC

- G06F 11/079: {Root cause analysis, i.e. error or fault diagnosis (in a hardware test environment G06F11/22; in a software test environment G06F11/36)}
- G06F 8/70: Software maintenance or management
- G06F 11/008: {Reliability or availability analysis}
- G06F 11/0721: {within a central processing unit [CPU]}
- G06F 11/3495: {for systems}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Reliability of one or more software modules is projected according to a current state in a development life cycle of the software modules and any of various additional indicators. Preferably, a data processing support provider separate from the service-providing enterprise maintains historical field support data concerning significant field defect events with respect to various resources, and uses this data for projecting reliability of the resources. Preferably, software module reliability projections are used to support an analysis of risk of degradation of a service specified in a service requirements specification when provided by a configuration of data processing resources specified in a configuration specification.

## Claims

### Claim 1

A computer program product embodied as a plurality of computer-executable instructions recorded on non-transitory computer readable media, said instructions, when executed by at least one computer system, causing the system to perform a method for evaluating reliability of a first software module, the method comprising:
accessing data recording a state in a software module development life cycle of said first software module;
accessing recorded historical reliability data with respect to said first software module;
using said state in a software module development life cycle of said first software module and said historical reliability data with respect to said first software module to automatically determine a reliability of said first software module corresponding to at least one of (a) a current state in a software module development life cycle of said first software module; or (b) a future state in a software module development life cycle of said first software module; and
providing results of said using said state in a software module development life cycle of said first software module and said historical reliability data with respect to said first software module to automatically determine a reliability of said first software module to a user.

### Claim 2 (depends on 1)

The computer program product of claim 1, wherein said computer program product further includes an degradation of service risk evaluation function which uses said results of said using said state in a software module development life cycle of said first software module and said historical reliability data with respect to said first software module to automatically determine a reliability of said first software module to evaluate degradation of service risk for a service provided by a set of data processing resources, said set of data processing resources containing said first software module, and provides results of evaluating degradation of service risk to said user.

### Claim 3 (depends on 1)

The computer program product of claim 1,
wherein said historical reliability data comprises data concerning failure events occurring in production installations of at least one of: (a) said first software module, and (b) at least one previous version of said first software module.

### Claim 4 (depends on 3)

The computer program product of claim 3,
wherein said historical reliability data further comprises a respective cause for each of at least some of said plurality of failure events;
wherein said state in a software module development life cycle of said first software module includes data concerning any fixes applied to said first software module to correct at least one cause of failure; and
wherein using said state in a software module development life cycle of said first software module and said historical reliability data with respect to said first software module to automatically determine a reliability of said first software module comprises filtering each failure event of said plurality of failure events for which a respective cause has been identified and has been corrected by said any fixes applied to said first software module, and computing a reliability of said first software module from the filtered results.

### Claim 5 (depends on 1)

The computer program product of claim 1,
wherein using said state in a software module development life cycle of said first software module and said historical reliability data with respect to said first software module to automatically determine a reliability of said first software module comprises: (a) using said historical reliability data to derive at least one coefficient of a mathematical model projecting software reliability as a function of time in a software module development life cycle; and (b) predicting a reliability of said first software module from said mathematical model and said state in a software module development life cycle of said first software module.

### Claim 6 (depends on 1)

The computer program product of claim 1,
wherein said historical reliability data includes a plurality of event records, each record corresponding to a respective instance of software unavailability, and indicating a respective length of unavailability as a result of the corresponding event.

### Claim 7

A computer program product embodied as a plurality of computer-executable instructions recorded on non-transitory computer readable media, said instructions, when executed by at least one computer system, causing the system to perform a method for evaluating reliability of a first software module, the method comprising:
accessing data recording a state in a software module development life cycle of said first software module;
accessing at least one of: (a) recorded data of development activity with respect to said first software module, and (b) recorded field event data with respect to said first software module, to automatically derive at least one coefficient of a mathematical model projecting software reliability as a function of time in a software module development life cycle of said first software module;
using said state in a software module development life cycle of said first software module and said mathematical model projecting software reliability as a function of time in a software module development life cycle of said first software module to automatically determine a reliability of said first software module corresponding to at least one of (a) a current state in a software module development life cycle of said first software module; or (b) a future state in a software module development life cycle of said first software module; and
providing results of said using said state in a software module development life cycle of said first software module and said mathematical model projecting software reliability as a function of time in a software module development life cycle of said first software module to automatically determine a reliability of said first software module to a user.

### Claim 8 (depends on 7)

The computer program product of claim 7, wherein said computer program product further includes a degradation of service risk evaluation function which uses said results of said using said state in a software module development life cycle of said first software module and said mathematical model projecting software reliability as a function of time in a software module development life cycle of said first software module to automatically determine a reliability of said first software module to evaluate degradation of service risk for a service provided by a set of data processing resources, said set of data processing resources containing said first software module, and provides results of evaluating degradation of service risk to said user.

### Claim 9 (depends on 7)

The computer program product of claim 7,
wherein using said data arising from at least one of: (a) development activity with respect to said first software module, and (b) field event data with respect to said first software module, to automatically derive, using said data processing system, at least one coefficient of a mathematical model comprises deriving a best fit of field event data to a mathematical function.

### Claim 10 (depends on 7)

The computer program product of claim 7,
wherein using said data arising from at least one of: (a) development activity with respect to said first software module, and (b) field event data with respect to said first software module, to automatically derive, using said data processing system, at least one coefficient of a mathematical model comprises using at least one of a measure of software quality during development of said first software module and a measure of size of said first software module to device said at least one coefficient.

### Claim 11 (depends on 7)

The computer program product of claim 7,
wherein using said state in a software module development life cycle of said first software module and said mathematical model projected software reliability as a function of time in a software module development life cycle of said first software module to automatically determine, with said data processing system, a reliability of said first software module corresponding to at least one of (a) a current state in a software module development life cycle of said first software module; or (b) a future state in a software module development life cycle of said first software module, comprises automatically determining a reliability of said first software module as a weighted average of reliability determined using (a) said state in a software module development life cycle of said first software module and said mathematical model, and (b) field event data with respect to said first software module.

### Claim 12 (depends on 11)

The computer program product of claim 11,
wherein said weighted average is adjusted over time to diminish the weight given reliability determined using said mathematical model with respect to the weight given reliability determined using said field event data.

### Claim 13

A data processing system, comprising:
at least one processor;
a memory;
a software module reliability evaluator embodied as a plurality of instructions recordable in said memory and executable on said at least one processor, said software module reliability evaluator evaluating reliability of a designated software module corresponding to a designated state in a software module development life cycle of said designated software module,
wherein said software reliability evaluator correlates historical reliability data with multiple states in said software module development life cycle of said designated software module to evaluate reliability of said designated software module; and
wherein said software reliability evaluator outputs results of said evaluating reliability of said designated software module.

### Claim 14 (depends on 13)

The data processing system of claim 13, further comprising:
a degradation of service risk evaluation function which uses said results of said evaluating reliability of said designated software module to evaluate degradation of service risk for a service provided by a set of data processing resources, said set of data processing resources containing said designated software module, and output results of evaluating degradation of service risk.

### Claim 15 (depends on 13)

The data processing system of claim 13,
wherein said historical reliability data comprises data concerning failure events occurring in production installations of at least one of: (a) said designated software module, and (b) at least one previous version of said designated software module.

### Claim 16 (depends on 15)

The data processing system of claim 15,
wherein said historical reliability data further comprises a respective cause for each of at least some of said plurality of failure events;
wherein said state in a software module development life cycle of said designated software module includes data concerning any fixes applied to said designated software module to correct at least one cause of failure; and
wherein said software reliability evaluator correlates said historical reliability data with multiple states in said software module development life cycle of said designated software module to evaluate reliability of said designated software module by filtering each failure event of said plurality of failure events for which a respective cause has been identified and has been corrected by said any fixes applied to said designated software module, and evaluating a reliability of said designated software module from the filtered results.

### Claim 17 (depends on 13)

The data processing system of claim 13,
wherein said software reliability evaluator correlates said historical reliability data with multiple states in said software module development life cycle of said designated software module to evaluate reliability of said designated software module by using said historical reliability data to derive at least one coefficient of a mathematical model projecting software reliability as a function of time in a software module development life cycle, and evaluating reliability of said designated software module from said mathematical model and said designated state in a software module development life cycle of said designated software module.

### Claim 18 (depends on 13)

The data processing system of claim 13,
wherein said historical reliability data includes a plurality of event records, each record corresponding to a respective instance of software unavailability, and indicating a respective length of unavailability as a result of the corresponding event.
