Classification of Software Reliability Models To Improve The Reliability of Software

Download as pdf or txt
Download as pdf or txt
You are on page 1of 5

ISSN (Print) : 0974-6846

Indian Journal of Science and Technology, Vol 8(29), DOI: 10.17485/ijst/2015/v8i29/85287, November 2015 ISSN (Online) : 0974-5645

Classification of Software Reliability Models to


Improve the Reliability of Software
G. Gayathry1* and R. Thirumalai Selvi2
Department of Computer Science, Bharathiar University, Coimbatore – 641046, Tamil Nadu, India;
1

[email protected]
2
Government Arts College (Men), Nandanam, Chennai - 600035, Tamil Nadu, India; [email protected]

Abstract
Background/Objectives: The main objective is to present a classification of reliability models that would be useful in
determining which of the existing model to use in a given software development environment. Methods/Statistical
Analysis: In this research importance is given on comparison of existing software reliability models. The analytical
models are mostly useful in estimating and monitoring reliability. The models can help software testing/debugging
managers to make predictions about the anticipated future reliability of software under growth. Findings: This paper
provides a detailed study of existing software reliability models which claim to progress software quality through efficient
determination of software faults. Failure behavior of the software as predicted by these models has important implication
in understanding the performance of the software and its improvement. One unique part of this paper is that we do not
add any new models to the already large collection of models; rather we give importance to the taxonomy of models
used in the software development process. Application/Improvements: The models are supportive for the software
practitioners to master the schedule of the projects, the performance of the programmers and to improve the reliability
of software system.

Keywords: Classification, Reliability Models, Software Reliability

1.  Introduction Over the past 30 years, many SRGMs have been
­ roposed for estimating reliability growth of products
p
This paper highlights various Software Reliability Growth during the software development process2. Each model
Models. SRGMs are statistical models which can be used seems to work well with a particular data set, but no model
to make predictions about a software system’s failure appeared to do well for all data sets. Many researchers
rate, given the failure history behavior of the system. In like Musa et al.3 have shown that some families of models
practice such models are applied during the final test- have, in general, certain characteristics that are consid-
ing phase when the development is virtually completed. ered better than others; for example, the geometric family
Due to post-development testing, failures are identified of models tends to have better predictive quality than
and fixed in advance, the software becomes more stable other models.
and the reliability of software increases with time. SRGMs In4 published a paper describing a non-homogeneous
can be broadly categorized into two types (Pham, 2006). Poisson process model from the finite exponential class
Deterministic one is used to study the number of dis- of models. This model was one of the first NHPP models
tinct operators and operands and machine instructions proposed. This model predicted well on a unique data set.
in the program. Probabilistic one represents the failure In5 proposed a NHPP based SRGM to describe vari-
occurrence and fault removal phenomenon of the testing ous software failure/reliability curves. Both testing efforts
process as probabilistic events with respect to time and and time dependent fault detection rate are considered for
testing effort1. software reliability modeling. The applicability of proposed

*Author for correspondence


Classification of Software Reliability Models to Improve the Reliability of Software

model is shown by validating it on software failure data sets


obtained from different software development projects.
In6 proposed a method for constructing SRGM based
on NHPP. In this proposed method they have consid-
ered the case where the time dependent behaviors of
testing-effort expenditure are described by Generalized
Exponential Distribution (GED). SRGMs based on
NHPP are developed which incorporates the (GED)
testing-­effort expenditure during the software testing
phase.
In7 first reviewed the logistic testing-effort function
for modeling software reliability growth. They incorporate
the logistic testing-effort function into S-shaped models.
The proposed models are applied to two real data sets,
to show that the logistic testing-effort function is more
suitable for making estimations of resource consumption
during the software testing phase.

2.  Software Reliability Models


Software Reliability Models are used during software
debugging process and it is mainly used to measure the
quality of the software8. In this model, software is tested
for a period of time, during which failures may occur.
These failures cause a modification in design the new ver-
sion of design is tested again. This cycle is repeated until
design objectives are met. The paper discusses about the
Figure 1.  The hierarchy of software reliability models.
taxonomy of various software reliability models.
Figure 1 shows the hierarchy of software reliability
models. At initial stage, the software reliability model is values of time between failures and estimates of software
divided into two type’s namely deterministic and proba- reliability, mean time to the next failure. The key models
bilistic model. Two most common deterministic models in this class are described in the following section.
are Halstead’s software metric, based on unique number
of operators and operands and McCabe’s cyclomatic com- 2.1.1  Jelinski-Moranda Model
plexity metric based on cyclomatic number V (G). The This is one of the most commonly used models for
probabilistic models include the following: ­estimating software reliability9. During testing N inde-
pendent software faults that may cause failures are taken
• Failure Rate Model (times between failure models).
for consideration. During the debugging process no new
• Failure or Fault Count Model (NHPP models).
faults are introduced and the detected fault is removed in
• Error or Fault Seeding Model.
a negligible time. The hazard function also called as soft-
• Reliability Growth Model etc,.
ware failure rate is calculated during t1 time between the
(i-1)th and ith failure is given by:
2.1  Failure Rate Models
It is one of the earliest classes of proposed model used Z(t i ) = ∅  N − (i − 1)
for estimating the reliability of software. In this model
time between failures is taken for the process. The time Where Ø is proportionality constant. This hazard func-
between ith and (i-1)th failure data are taken for analysis. tion is constant between failures, but when the fault is
Fault data parameters are estimated from the observed removed its size decreases.

2 Vol 8 (29) | November 2015 | www.indjst.org Indian Journal of Science and Technology
G. Gayathry and R. Thirumalai Selvi

2.1.2  Schick and Wolverton (SW) Model 2.2  Fault Count Models
The model is based on the assumptions of the JM model 2.2.1  Musa Execution Time Model
except that the hazard function is assumed to be propor-
In this model the reliability of software is analyzed based
tional to the current fault content of the program as well
on execution time. The hazard function for this model is
as to the time elapsed is since the last failure10 is given:
provided as:
Z (t i ) = ∅  N − (i − 1) t i Z ( τ ) = ∅ f ( N − nc )

The hazard rate is linear with time within each failure Where τ is the execution time, f is the linear execution
interval. A modification of the above model is proposed frequency, Ø is a proportionally constant fault exposure
in11 whereby the hazard function is assumed to be ratio and nc is the corrected number of faults.
­parabolic in test time and is given by the function:
2.2.2   Goel-Okumoto NHPP Model
Z (t i ) = ∅  N − (i − 1) (−at i 2 + bt i + c)
It is assumed that at random interval software system is
Where a, b and c are defined as constant. This function con- subject to failures due to the faults in the present system.
sists of two components, the first one is the hazard function Let N(t) is the cumulative number of failures identified in
of the JM model and the second one indicates that the reason time t then N(t) can be modeled as NHPP model for the
for failure occurrence increases rapidly as the test time accu- following.
mulates within a testing interval. At failure times (ti = 0), the
{ } ( )
P N ( t ) = y = m ( t ) e − m( t ) , y = 0, 1, 2.,
y

hazard function is proportional to that of the JM model.


y!

2.1.3 Goel and Okumoto Imperfect Debugging


Model (
m ( t ) = a 1 − e − bt )
λ ( t ) = m ′ ( t ) = abe − bt
Goel and Okumoto12 proposed an imperfect debugging
model, which is the extension of the JM model. In this
Where m(t) is the expected number of failures observed
model, the number of faults in the system at time t, X(t), is
by time t, λ(t) is the failure rate, a is the expected number
treated as a Markov process whose transaction probabil-
of failures observed and b is the fault detection rate per
ity is governed by the probability of imperfect debugging.
fault. In this case, the number of faults to be identified is
Time between the transitions of X(t) is taken to be expo-
treated as random variable whose values depend on the
nentially distributed with rates dependent on the current
test factor.
fault content of the system. The hazard function during
the interval between the (i-1)th and the ith failure is given
by the function:
2.2.3  Goel Generalized NHPP Model
During testing process, the failure rate is not constant it
Z(t i ) = ∅  N − p (i − 1) λ first increases and then decreases. Goel proposed a gener-
alized NHPP model to handle the increasing/decreasing
Where N is the initial fault content of the system, p is the failure rate process.
probability of imperfect debugging and λ is the failure
{ } ( )
P N ( t ) = y = m ( t ) e − m( t ) , y = 0, 1, 2.,
y
rate per fault.
y!
2.1.4  Littlewood-Verrall Bayesian Model
In this model the times between failures are assumed to
(
m ( t ) = a 1 − e − bt )
follow an exponential distribution but the parameters of Where ‘a’ is the expected number of faults, b and c are
this distribution are treated as a random variable with a constants that reflect the quality of testing. The failure rate
gamma distribution that is: is defined as follows:

F(t i | λ i ) = λ i e − λi ti λ ( t ) = m ′ ( t ) = abe − btc t c −1

Vol 8 (29) | November 2015 | www.indjst.org Indian Journal of Science and Technology 3
Classification of Software Reliability Models to Improve the Reliability of Software

2.2.4  IBM Binomial and Poisson Model seeded and then the program is tested for a particular time
In these models, the fault detection rate is considered as interval. The number of original indigenous faults can be
a discrete process, and it follows a poisson or binomial estimated from the number of indigenous and seeded
distribution. It is assumed that the software system is faults which are not taken into account at the time of
developed and tested incrementally. These models can be testing. These models are also known as a tagging model
applied to both module and system level testing. since a given fault is tagged as seeded or indigenous.

2.2.5  Shoo Man Exponential Model 2.3.2  Basin Model


It is same as JM model. The hazard function for this Basin, suggested a two stage procedure with the use of two
model13,14 is provided as: programmers which can be used to estimate the number
of indigenous faults in the program.
Z ( t ) = k ( N / I) − nc (τ )
2.3.3  Lipow Model
Where t is the operating time of the system, I is the total
number of instruction in the program, τ is the debugging Lipow16 proposed a model, which identifies the probability
time, nc(τ) is the total number of corrected faults and k is of fault in any test of the software. Then the probabilities
the proportionality constant. of finding given number of indigeneous and seeded faults
are calculated for independent tests.
2.2.6  Generalized Poisson Model
The mean value function for this model is:
2.4  Input Domain based Models
In this model, test cases are generated from an input
m ( t i ) = ∅  N − Mi −1 )] t iα domain. Partition of input domain into equivalence
classes is a difficult task. The reliability is measured from
Where Mi-1 is the total number of faults, Ø is a propor-
the number of failures or execution of test cases.
tionality constant and α is a constant value used to rescale
time ti .
2.4.1  Nelson Model
2.2.7 Musa-Okumoto Logarithmic Poisson Nelson proposed a model17, in which the reliability of
Execution Time Model software is measured by running the software for a sample
of n inputs. The n inputs are randomly chosen from the
In this model15,the observed number of failures is
input domain. The random sampling of n input is done
assumed to be NHPP model and the mean value function
through either probability distribution or simple through
is defined as :
user input distribution.
µ ( τ ) = 1 / θ.Ln ( λ 0 θτ + 1)
2.4.2  Ramamurthy and Bastani Model
Where λ0 represent initial failure intensity and θ represent
In this input domain based model18, author mainly
the reduction in normalized failure intensity.
focuses on the reliability of real time, critical process
control program. This model provides an estimate of
2.3  Fault Seeding Models
conditional probability that the program is correct for all
In this model, a known number of faults are ‘seeded’ in a possible input given that it is correct for a specified set of
program. The number of indigenous and seeded faults is inputs.
counted at the time of testing. Using different estimation
models, the number of indigenous faults and the reliabil-
ity of the software are estimated. 3.  Conclusion
Software reliability is a measuring technique for defects
2.3.1  Mills Seeding Model that causes software failures in which software behavior
It is one of the most popular and basic fault seeding is different from the specified behavior in a defined envi-
­models. To test a program, a random number of faults are ronment with fixed time. In this paper, various software

4 Vol 8 (29) | November 2015 | www.indjst.org Indian Journal of Science and Technology
G. Gayathry and R. Thirumalai Selvi

reliability models are reviewed. Above analytical models   8. Goel AL. Software reliability models: Assumptions,
are primarily useful in estimating and monitoring and it Limitations and Applicability. IEEE Transaction on Software
is viewed as a measure of estimation of software reliability Engineering. 1985; SE-11(12):1411–23.
  9. Jelinski Z, Moranda P. Software Reliability Research, In
and to enhance the quality of software.
Statistical Computer Performance evaluation. Freiberger
W, Editor. New York: Academic; 1972. p. 465–84.
4.  References 10. Schick GJ, Wolverton RW. An analysis of competing soft-
ware reliability models. IEEE Transaction on Software
1. Lyu MR. Handbook of software reliability engineering. NY: Engineering. 1978; SE-4(2):104–20.
McGraw-Hill/IEEE Computer Society Press; 1996. 11. Schick GJ, Wolverton RW. An analysis of component soft-
2. Zhang X, Pham H. An analysis of factors affecting soft- ware reliability models. IEEE Transaction on Software
ware reliability. The Journal of Systems and Software. 2000; Engineering. 1982; SE-R:359–71.
50(1):43–56. 12. Goel AL, Okumoto K. An Analysis of recurrent software
3. Musa JD, Iannino A, Okumoto K. Software reliability: failure in a real-time control system. Proc ACM Annual
Tech Conf, ACM; Washington, DC. 1978. p. 496–500.
measurement, prediction, and application. New York:
13. Chaurasia PK. Classification of Software Reliability Models.
McGraw-Hill Publication; 1987.
IJARCSSE. 2014 Aug; 4(8):1084–91.
4. Goel AL, Okumoto K. A time-dependent error detection
14. Shooman ML. Probabilistic models for software reliability
rate model for software reliability and other ­performance prediction. In: Freiberger W, editor. Statistical Computer
measure. IEEE Transaction on Reliability. 1979; Performance Evaluation. New York: Academic; 1972.
R-28(3):206–11. p. 485–502.
5. Kapur PK et al. Flexible software reliability growth model 15. Musa JD. A theory of software reliability and its applica-
with testing effort dependent learning process. Applied tion. IEEE Transaction on software engineering. 1971;
Mathematical Modeling. 2008; 32(7):1298–307. SE-1:312–27.
6. Quadri SM, Ahmad N, Farooq SU. Software reliability 16. Lipow M. Estimation of software package residual
growth modeling with generalized exponential test- errors. TRW Redondo Beach, CA: Software Series. 1972;
ing-effort and optimal software release policy. Global ­Rep-SS:359–71.
Journal of Computer Science and Technology. 2011; 17. Nelson E. Estimating Software Reliability from test data.
11(2):27–42. Micro electron. 1978; 17:67–74.
18. Ramamurthy CV, Bastani FB. Software reliability: Status and
7. Huang CY, Kuo SY. Analysis of incorporating testing-
perspective. IEEE Transaction on Software Engineering.
effort function into software reliability modeling. IEEE
1982 Jul; 8(4):359–71.
Transaction on Reliability. 1979; 51(3):206–11.

Vol 8 (29) | November 2015 | www.indjst.org Indian Journal of Science and Technology 5

You might also like