Basic Execution Time Model for Software Reliability: Understanding Software Failure Behavior

Learn about the Basic Execution Time Model, a software reliability growth model. This guide explains its formula, its parameters (initial failure intensity, failure intensity decay), assumptions, and its applications in predicting software reliability and estimating the number of remaining defects.



Basic Execution Time Model for Software Reliability

Introduction to the Basic Execution Time Model

The Basic Execution Time Model, developed by J.D. Musa in 1979, is a popular software reliability growth model. Its popularity stems from its simplicity, practicality, and the clear relationship between its parameters and real-world observations. It uses execution time (which can be later converted to calendar time) to model failure behavior.

This model assumes a nonhomogeneous Poisson process, meaning the probability of failure changes over time. It's closely related to the M-O logarithmic Poisson execution time model, differing mainly in its mean value function, which is based on an exponential distribution.

Key Variables in the Model

  • Failure Intensity (λ): The rate of failures per unit of execution time.
  • Execution Time (τ): The time the software has been running.
  • Mean Failures Experienced (μ): The average number of failures experienced over a given time interval.

Formulas and Calculations

In the Basic Execution Time Model, the mean failures experienced (μ) is related to execution time (τ) by:

μ = v₀ * (1 - e^(-λ₀τ))

Where:

  • v₀ is the total expected number of failures over an infinitely long execution time.
  • λ₀ is the initial failure intensity.

The failure intensity (λ) as a function of execution time (τ) is given by:

λ(τ) = λ₀ * e^(-λ₀τ)

This means the failure intensity decreases exponentially over time.

The failure intensity can also be expressed in terms of μ:

λ(τ) = λ₀e-λ₀τ = (v₀λ₀e-λ₀τ) / v₀(1 - e-λ₀τ) = v₀λ₀ / (v₀ - μ)

To determine the additional failures (Δμ) and execution time (Δτ) needed to reach a specific failure intensity objective (λf):

Δμ = v₀ - μ and Δτ = (1/λ₀) * ln(λ₀v₀ / (λfv₀ + μλf - λ₀v₀))

Example Calculation

Let's say a program is expected to have 200 failures (v₀ = 200) over its lifetime. The initial failure intensity was 20 failures/hour (λ₀ = 20). After 100 hours of execution, 100 failures have been observed (μ = 100). Let's calculate the current failure intensity, the number of failures and failure intensity after 20 and 100 hours, and the additional failures and execution time needed to reach a target failure intensity of 5 failures/hour.

  1. Current Failure Intensity: Using the formula for λ(τ), substitute the values: λ(100) = 10 failures/hour
  2. Decrement per Failure: This would be calculated using the derivative of the failure intensity equation with respect to μ
  3. Failures and Intensity at 20 hours and 100 hours: These are calculated using the μ and λ(τ) equations.
  4. Additional Failures and Time to Reach 5 failures/hour: These values are calculated using the Δμ and Δτ equations.