As per IEEE:
“Software Reliability is defined as the ability of a
system or component to perform its required
functions under stated condition for a specified
amount of time.”
Thus, Reliability of a software product denotes its
The most acceptable definition of Software
“It is the probability of a failure free operation of a
program for a specified time in a specified
For example, a time sharing system may have a reliability
of 0.95 for 10 hr when employed by the average user.
This system, when executed for 10 hr, would operate
without failure for 95 times out of 100.
An important feature that sets hardware and
software reliability issues apart is the difference
between their failure patterns.
Hardware components fail due to very different
reasons as compared to software components.
Hardware components fail mostly due to wear and
tear, whereas software components fail due to
Useful life phase
a) Hardware Product
Useful Life Obsolete
b) Software Product
of a Product
Software may be retired only if becomes obsolete.
Some of the factors are:
Change in environment
Change in infrastructure/ technology
Major change in requirements
Increase in complexity
Extremely difficult to maintain
Deterioration in the structure of the code
Slow execution speed
Poor graphical user interfaces.
The reliability requirements for different categories
of software may be different.
Therefore, we need some metrics to quantitatively
express the reliability of a software product.
A good reliability measure should be observer-
independent, so that different people can agree to
the reliability of a system.
We have six metrics that correlate with reliability.
They are as follows:
Rate of Occurrence of Failure (ROCOF):
Measures the frequency of occurrence of failures.
It can be obtained by observing the behaviour of a s/w
product in operation over a specified time interval, and
then calculating total number of failures during this
MeanTime to Failure (MTTF):
It is the average time between two successive failures.
Σ ti+1- ti/ n-1
Where ‘n’ is the number of failures, and ‘t’ is the time
distance at which failure occurs.
MeanTime to Repair (MTTR):
Once the failure occurs, some time is required to fix the
MTTR measures the average time it takes to track the
error causing the failure and then to fix it.
MeanTime Between Failure (MTBF):
We can combine the MTTF and MTTR to get MTBF.
MTBF= MTTF + MTTR
Availability of the System:
Is a measure of how likely will the system be available for
use over a given period of time.
This metric not only considers the number of failures
occurring during a time interval but also considers the
repair time of a system when a failure occurs.
Availability= (MTTF/ MTBF) * 100
What is the availability of a software with the
following reliability figures:
MTBF= 25 days
MTTR= 6 hours
The availability of a complex software is 90%. Its
MTBF is 200 days. Because of its critical nature, the
organization developing the software, further
enhanced it to obtain an availability of 95%. In the
process, the MTTR was increased by 5 days. What is
the MTBF of the enhanced software?
a) 205 days
b) 300 days
c) 500 days
d) 700 days