Jelinski–Moranda (JM) Model in Software Reliability
The Jelinski–Moranda (JM) Model is one of the earliest and most influential software reliability models. Built on a Markov process foundation, it has inspired numerous later models that either refine or extend its basic assumptions.
1. Overview of the JM Model
The JM model is a binomial-type, black-box reliability model. Despite its simplicity, it often produces overly optimistic predictions about software reliability. A key feature is its perfect debugging assumption—every detected fault is removed completely without introducing new ones.
The software failure rate at the i-th failure interval is defined as:
𝜆(𝑡𝑖)=𝜑[−(𝑖−1)],𝑖=1,2,…,𝑁λ(ti)=φ[N−(i−1)],i=1,2,…,N
Where:
- ϕ = constant of proportionality (failure rate contributed by each fault)
- N = initial number of software faults
- tᵢ = time between the (i−1)-th and i-th failure
2. Core Reliability Functions of the JM Model
The mean value and failure intensity functions are:
𝜇(𝑡𝑖)=𝑁(1−𝑒−𝜑𝑡𝑖)μ(ti)=N(1−e−φti)
ε(𝑡𝑖)=𝑁𝜑𝑒−𝜑𝑡𝑖ε(ti)=Nφe−φti
Summary of Reliability Measures
3. Assumptions of the JM Model
- The initial number of errors (N) is unknown but fixed.
- All errors are independent and equally likely to cause a failure.
- Time between failures follows an exponential distribution.
- The failure rate is proportional to the number of remaining faults.
- Perfect debugging: no new faults are introduced during removal.
4. Variations of the JM Model
Over time, researchers have modified the JM model to address its limitations, such as imperfect debugging, multiple bug removals, and Bayesian adjustments.
4.1 Lipow Modified JM Geometric Model
Allows multiple bug removals in one interval:
𝜆(𝑡𝑖)=−1λ(ti)=DKni−1
4.2 Sukert Modified Schick–Wolverton Model
Extends the S–W model to allow multiple failures in an interval.
4.3 Schick–Wolverton (S–W) Model
Failure rate increases with time since last debugging:
𝜆(𝑡𝑖)=𝜑[𝑁−(𝑖−1)]𝑡𝑖λ(ti)=φ[N−(i−1)]ti
4.4 GO Imperfect Debugging Model (Goel–Okumoto)
Faults removed with probability p:
𝜆(𝑡𝑖)=φ[𝑁−𝑝(𝑖−1)]
4.5 JM Geometric Model
Failure rate reduces geometrically over failures:
𝜆(𝑡𝑖)=𝐷𝐾𝑖−1,0<𝐾<1λ(ti)=DKi−1,0<K<1
4.6 Little–Verrall Bayesian Model
Uses a Bayesian prior gamma distribution to account for programmer quality and task difficulty.
4.7 Shanthikumar General Markov Model
Failure intensity:
𝜆𝑆𝐺(𝑛,𝑡)=Ψ(t)(𝑁0−𝑛)λSG(n,t)=Ψ(t)(N0-n)
4.8 Error Detection Model During Development
Incorporates program growth during development.
4.9 Langberg–Singpurwalla Model
A Bayesian view linking reliability to shock models.
4.10 Jewell Bayesian Model
Generalizes the number of faults using a Poisson-Beta distribution.
4.11 Quantum Modification
Accounts for different fault severities using failure quantum units.
4.12 Optimal Software Release (Markovian)
Optimizes release policy by including testing time wastage.
4.13 Cloud Model Modification
Introduces a new parameter θ with confidence intervals for reliability evaluation.
4.14 Modified JM Model with Imperfect Debugging
Considers three outcomes after a failure:
- Fault removed successfully (p)
- Fault not removed (q)
- New fault introduced (r)
with 𝑝+𝑞+𝑟=1p+q+r=1 and 𝑞≥𝑟q≥r.
Key formulas:
5. Key Takeaways
- JM Model is the foundation of many Software Reliability Growth Models (SRGMs).
- Its perfect debugging assumption makes it simpler but less realistic.
- Variation handle imperfect debugging, multiple failures, and Bayesian uncertainty.
- It remains a benchmark model for studying software reliability trends.