# US 2014/0157235 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/0157235 A1
- Document ID: US20140157235A1
- Status: Published application
- Kind: A1
- Application number: 13/784,304
- Filed: 2013-03-04
- Published: 2014-06-05
- Earliest claimed: 2012-12-05
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: John J. Bird; Terry R. Ulmer
- Web page: https://patentgrep.com/patent/US20140157235A1

## 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 method for evaluating reliability of a first software module, comprising:
recording in a data processing system a state in a software module development life cycle of said first software module;
recording in said data processing system 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, 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; 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 method of claim 1, wherein said 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 comprises outputting reliability of said first software module to a computer-implemented process for evaluating 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 providing results of said process for evaluating degradation of service risk to said user.

### Claim 3 (depends on 1)

The method 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 method 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 method 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 method 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 method for evaluating reliability of a first software module, comprising:
recording in a data processing system a state in a software module development life cycle of said first software module;
using 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 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, 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; 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 method of claim 7, wherein said 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 comprises outputting reliability of said first software module to a computer-implemented process for evaluating 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 providing results of said process for evaluating degradation of service risk to said user.

### Claim 9 (depends on 7)

The method 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 method 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 method 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 method 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 method for evaluating reliability of a first software module, comprising:
recording in a data processing system version identifying information indicating a first version of said first software module for which reliability is to be evaluated;
recording in said data processing system data with respect to a plurality of failure events occurring with respect to said first software module;
automatically identifying, with said data processing system, a first non-empty subset of said plurality of failure events in which failure is due to a defect in said first software module which has been corrected in said first version of said first software module, and a second non-empty subset of said plurality of failure events in which failure is not due to a defect in said first software module which has been corrected in said first version of said first software module;
using said second non-empty subset but not said first non-empty subset to automatically determine, with said data processing system, a reliability of said first version of said first software module; and
providing results of said using said second non-empty subset but not said first non-empty subset to automatically determine, with said data processing system, a reliability of said first version of said first software module to a user.

### Claim 14 (depends on 13)

The method of claim 13, wherein said providing results of said using said second non-empty subset but not said first non-empty subset to automatically determine, with said data processing system, a reliability of said first version of said first software module to a user comprises outputting reliability of said first software module to a computer-implemented process for evaluating 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 providing results of said process for evaluating degradation of service risk to said user.

### Claim 15 (depends on 13)

The method of claim 13,
wherein said data with respect to a plurality of failure events occurring with respect to said first software module 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.
