Open In App

Jelinski Moranda software reliability model – Software Engineering

Last Updated : 12 Mar, 2024
Like Article

The Jelinski-Moranda Software Reliability Model is a mathematical model used to predict the reliability of software systems. It was developed by M.A. Jelinski and P.A. Moranda in 1972 and is based on the assumption that the rate of software failures follows a non-homogeneous Poisson process.

The Jelinski-Moranda (JM) software reliability model is a mathematical model used to predict the reliability of a software system over time. The model assumes that the software system can be represented as a series of independent components, each with its own failure rate. The failure rate of each component is assumed to be constant over time.

The model assumes that software failures occur randomly over time and that the probability of failure decreases as the number of defects in the software is reduced.

The Jelinski-Moranda model uses an exponential distribution to model the rate of fault detection and assumes that the fault detection rate is proportional to the number of remaining faults in the software. The model can be used to predict the number of remaining faults in the software and to estimate the time required to achieve the desired level of reliability.

Assumptions Based on Jelinski-Moranda Model

  • The number of faults in the software is known.
  • The rate of fault detection is constant over time.
  • The software system operates in a steady-state condition.
  • The faults in the software are assumed to be independent and identically distributed.
  • The fault removal process is assumed to be perfect, meaning that once a fault is detected, it is immediately removed without introducing any new faults.
  • The testing process is assumed to be exhaustive, meaning that all faults in the software will eventually be detected.
  • The model assumes that the software system will not be modified during the testing period and that the number and types of faults in the software will remain constant.
  • The Jelinski-Moranda model assumes that faults are introduced into the software during the development process and that they are not introduced by external factors such as hardware failures or environmental conditions.
  • The model assumes that the testing process is carried out using a specific testing methodology and that the results are consistent across different testing methodologies.

One limitation of the Jelinski-Moranda model is that it assumes a constant fault detection rate, which may not be accurate in practice. Additionally, the model does not take into account factors such as software complexity, hardware reliability, or user behavior, which can also affect the reliability of the software system.

Overall, the Jelinski-Moranda model is a useful tool for predicting software reliability, but it should be used in conjunction with other techniques and methods for software testing and quality assurance.

The Jelinski-Moranda (J-M) model is one of the earliest software reliability models. Many existing software reliability models are variants or extensions of this basic model. 

The program failure rate at the ith failure interval is given by, $$ \lambda (t_i)= \phi [N-(i-1)], \; \; i=1, 2, …, N$$ where $\phi $ = a proportional constant, the contribution any one fault makes to the overall program N = the number of initial faults in the program $t_i$ = the time between the $(i-1)^{th}$ and the $(i)^{th}$ failures. For example, the initial failure intensity is $$\lambda (t_1)=\phi N$$ and after the first failure, the failure intensity decreases to $$\lambda (t_2)=\phi (N-1)$$ and so on. The partial distribution function(pdf) of $t_i$ is $$f(t_i)=\phi [N-(i-1)]e^{-\phi (N-(i-1))t_i}$$ The cumulative distribution function(CDF) of $t_i$ is $$F(t_i)=1- e^{-\phi [N-(i-1)]t_i}$$ The software reliability function is, therefore, $$R(t_i)=e^{-\phi (N-i+1)t_i}$$.

The JM model uses the following equation to calculate the software reliability at a given time t:

R(t) = R(0) * exp(-λt)

where R(t) is the reliability of the software system at time t, R(0) is the initial reliability of the software system, λ is the failure rate of the system, and t is the time elapsed since the software was first put into operation.

Purpose of Jelinski Moranda Software Reliability Model

  • Estimating Failure Rates: Calculate the frequency of software errors that arise during the phases of testing and operation.
  • Examining the Growth of Software Reliability: Examine how the software’s dependability increases with time when bugs are found and resolved during the testing and debugging phases.
  • Direct the Testing Process: Give instructions on how to allocate testing funds and resources to increase software dependability.
  • Help with Making Decisions: Help decision-makers weigh the trade-offs between predicted reliability, testing resources, and development time.
  • Calculate Software Dependability: Calculate the software’s anticipated reliability based on the quantity of flaws and how many are fixed throughout the development process.

Characteristics of the Jelinski Moranda Model

Some of the characteristics of the Jelinski Moranda Model are listed below.

  • This model is a type of Binomial model.
  • Jelinski Moranda Model is the first and most well-known black box model.
  • This model generally makes predictions on optimistic reliability.

Some other characteristics are shown in the table.

Measures of Reliability


Software Reliability Function

R(ti)= e-ϕ[N-(i-1)]ti

Mean value Function

µ(ti )=N(1-e-ϕti)


m={ϕ[N-(i-1)]} -1 In2

Probability Density Function

f(ti)= ϕ[N-(i-1]e-ϕ[N-(i-1)]ti

Failure Rate Function

λ(ti)= ϕ[N-(i-1)]

Failure Intensity Function

€(ti )=Nϕe-ϕti
Cumulative Distributive Function


Variations in Jelinski-Moranda Model

JM Model is one of the first software reliability models. Different Researchers try to modify this model with respect to different parameters. Here are some of the parameters listed below.

Advantages of the Jelinski-Moranda (JM) Software Reliability Model

  • Simplicity: The JM model is simple and easy to understand, making it a useful tool for software engineers who do not have a strong background in mathematical modeling.
  • Widely used: The JM model is widely used in software engineering and has been applied to many different types of software systems.
  • Predictability: The JM model can provide valuable insights into the reliability of software systems over time, helping software engineers to make informed decisions about software testing and maintenance.
  • Flexibility: The JM model is flexible and can be used to model different types of software systems, including those with different fault rates and fault detection rates.
  • Effectiveness: Despite its simplicity, the JM model has been shown to be effective in predicting software reliability, particularly for software systems with a constant fault detection rate.
  • Ease of Implementation: The JM model can be implemented using basic statistical tools and software, making it accessible to software engineers and organizations with limited resources.
  • Data-Driven: The JM model relies on empirical data to make predictions about software reliability, which can provide a more accurate and objective assessment of the software system’s performance.
  • Cost-Effective: The JM model is a cost-effective tool for software testing and maintenance, as it can help identify the most critical faults in the software system, allowing engineers to focus their resources on fixing those faults.

Disadvantages of the Jelinski-Moranda (JM) Software Reliability Model

  • Unrealistic assumptions: The JM model makes several unrealistic assumptions about software systems, including that the failure rate is constant over time and that failures can be modeled as a Poisson process.
  • Limited applicability: The JM model is limited in its applicability and may not be suitable for more complex software systems.
  • Lack of flexibility: The JM model is limited in its ability to take into account the dynamic nature of software systems, such as changes in the environment or the introduction of new features.
  • Dependency on accurate data: The accuracy of the JM model’s predictions is highly dependent on the accuracy of the data used to build the model. Inaccurate or incomplete data can lead to incorrect predictions about software reliability.
  • Inability to account for external factors: The JM model does not take into account external factors that may impact software reliability, such as changes in user behavior or changes in the operating environment.
  • Difficulty in estimating initial failure rate: The JM model requires an estimate of the initial failure rate, which can be difficult to determine accurately, particularly for software systems that are still in the early stages of development.
  • Limited ability to predict long-term reliability: The JM model is most effective at predicting short-term reliability and may not be suitable for predicting the long-term reliability of a software system.

Future Developments

  • Getting Used to Agile Development: Adapting the paradigm to Agile processes and taking into account the difficulties associated with dynamic and iterative development.
  • Taking Complex Systems into Account: Investigation of model adaption for distributed software systems with complicated architectures to address dependability.
  • Monitoring Reliability in Real Time: Creation of techniques for software dependability prediction and monitoring in real-time throughout development and operation.
  • Combining DevOps Methods with Integration: Investigating the model’s integration with DevOps to provide ongoing feedback on the dependability of software across the development process.
  • Interdisciplinarity Cooperation: Working together with professionals in adjacent domains to develop a comprehensive strategy for software reliability assessment.
  • Open-Source Model Creation: Encouragement of cooperation and contributions for model enhancement through the promotion of open-source projects.

Questions For Practice

1. In the Jelinski-Moranda Model, the software fault detection rate is assumed to be:

(A) Constant over time

(B) Decreasing over time

(C) Increasing over time

(D) Randomly fluctuating

Solution: Correct Answer is (A).

2. In the Jelinski-Moranda Model, as the software testing progresses, the number of faults is expected to:

(A) Increase

(B) Decrease

(C) Remain constant

(D) Fluctuate randomly

Solution: Correct Answer is (B).

3. The Jelinski-Moranda Model is based on which of the following assumptions?

(A) The number of faults detected is proportional to the number of faults remaining

(B) The fault detection rate remains constant over time

(C) The software development process is error-free

(D) The model requires no historical data for calibration

Solution: Correct Answer is (A).


1. Tell me the way, how Software Reliability is estimated in Jelinski Moranda Model?


This model estimates software reliability by observing historical data on defect detection and removal of these defects at the time of testing.

2. List some limitations of the Jelinski Moranda Model?


The limitations of the Jelinski Moranda Model are listed below.

It assumes a constant defect arrival rate, which is not true for all of the projects.

3. How can we best use the Jenlinski Moranda Model?


The best practice to use Jelinski Moranda Model is to regularly update the defect data, checking model prediction against the data provided. In this way, it is best used.

Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads