Basic Execution Time Model
The Basic Execution Time Model, introduced by J.D. Musa in 1979, is one of the most widely used software reliability growth models. It is based on execution time and is preferred because:
- It is practical, simple, and easy to understand.
- Its parameters have clear physical meaning.
- It allows accurate reliability predictions.
Initially, failure behavior is measured using execution time, which can later be converted into calendar time.
Key Characteristics
- The failure process follows a nonhomogeneous Poisson process (NHPP) — a Poisson process whose parameters change over time.
- It is equivalent to the Musa–Okumoto logarithmic Poisson execution time model, but with a different mean value function.
- The mean value function in this model is based on an exponential distribution.
Variables Used in the Model
- Failure intensity (λ): Failures per unit of time.
- Execution time (Ï„): Time elapsed while the program is running.
- Mean failures experienced (μ): Expected number of failures in a given time interval.
Model Parameters
- λ₀: Initial failure intensity at the start of execution.
- v₀: Total number of failures expected over an infinite execution time (eventual total failures).
The failure intensity as a function of execution time is expressed as:
It can also be written in terms of the mean number of failures experienced (μ) as:
Where:
Failure Intensity Over Time
From the relationship above, given a failure intensity objective, one can compute:
- The expected additional failures (Δμ) required.
- The additional execution time (Δτ) needed to meet that objective.
Equations for Additional Failures & Execution Time
Additional Failures:
Δμ=v0⋅ln(λF/λP)⋅λ0/v0
Additional Execution Time:
Δτ=λ0/v0⋅ln(λF/λP)
Where:
- λ₀: Initial failure intensity.
- λP: Present failure intensity.
- λF: Target failure intense
Given:
- Total expected failures, v₀ = 200
- Failures experienced so far, μ = 100
- Initial failure intensity, λ₀ = 20 failures/CPU hr
- Target failure intensity, λF = 5 failures/CPU hr
Find:
- Current failure intensity.
- Decrement in failure intensity per failure.
- Failures experienced & failure intensity after 20 CPU hrs and 100 CPU hrs.
- Additional failures (Δμ) and execution time (Δτ) needed to reach the target.
Step 1: Current Failure Intensity
λP=λ0(1−v0μ)=20(1−200/100)=10 failures/CPU hr
Step 2: Decrement per Fail
v0λ0=200/20=0.1 failures/CPU hr per failure
Step 3: Failure Intensity After Specific Execution Times
(a) After 20 CPU hrs
Using the exponential model:
λ(20)=20⋅e−200/20⋅20≈16.37 failures/CPU hr
(b) After 100 CPU hrs
λ(100)=20⋅e−200/20⋅100≈7.36 failures/CPU hr
Step 4: Additional Failures & Time to Target
Additional Failures (Δμ):
Δμ=v0[ln(λF/λP)]⋅λ0v0
Additional Execution Time (Δτ):
Δτ=λ0/v0⋅ln(λF/λP)=20/200⋅ln(510)≈6.93 CPU hrs
Conclusion
The Basic Execution Time Model is a practical and accurate method for predicting software reliability over time. By applying its equations, we can estimate current reliability, forecast future performance, and determine execution time needed to achieve a target failure rate.