331
Chapter 21
Gompertz Software
Reliability Growth Model
S Curves
e S curves in software project management represent cost evolution and reli-
ability growth within projects. e strength of the S curve is that it is based on
nature. It represents a natural law of growth. e forecasting power of the S curve
is due to the basic concept of limiting resources that lies at the basis of any growth
process.
e earliest known S curve is the logistic function, introduced to describe the
self-limiting growth of a population by Verhulst in 1838, based on the Principle
of Population published by omas Malthus. Benjamin Gompertz developed the
Malthusian growth model further and invented the law of mortality, a Gompertz
curve, in 1825 (see Box 21.1 for a brief biography).
Since then, S-shaped curves have been applied for studies in various fields. e
more precise the data and the bigger the section of the S curve they cover, the more
accurately the parameters can be recovered. When a system is closer to the end of its
evolution, it increases the accuracy of the forecast with the S curve [1].
332 Simple Statistical Methods for Software Engineering
Modeling Reliability Growth with
Gompertzian S Curves
e application of the Gompertz curve as a software reliability model (more than a
century later after Gompertz introduced his curve) is of interest to us.
e Gompertz growth curve is shown in Figure 21.1. e y axis represents reli-
ability growth. In practice, the y axis is calibrated in terms of cumulative defects
Box 21.1 Benjamin Gompertz 17791865
Benjamin Gompertz, a member of a distinguished Jewish family, was born
in London, where his father and grandfather had been successful diamond
merchants. It is said that so great was his thirst for knowledge while he was a
boy that frequently, when his parents had removed all candles to prevent him
from injuring his health by studying too late at night, he stole out into the
garden and pursued his investigations by moonlight.
He turned his attention to the theory of imaginary quantities. He would
have liked the Royal Society to publish the results of his work on this subject,
but his paper was rejected by the society, apparently on the basis that it was
too profound and that no one would understand it.
e last published paper by Gompertz on astronomy was produced in
1829. He maintained an interest in the subject until his death, studying other
people’s papers and investigating meteors, shooting stars, comets, and so on.
It was as an actuary, however, that Gompertz’s most lasting work was
performed. His two famous papers on the subject of life contingencies were
submitted to the Royal Society in 1820 and 1825. Gompertz discovered that
“e force of mortality at age x might be denoted by Bc
x
.
Gompertz then proceeded to test several mortality tables that were in use
at the time and to show that they followed his “law” approximately over a
limited range of ages such as 10 to 50 or 15 to 55.
Gompertz’s paper of 1825 marked the beginning of a new era, not merely
because his formula was, for several reasons, an enormous improvement on
others, which had been suggested previously, but because it opened up a new
approach to the life table.
In 1860, he contributed a paper to the International Statistical Congress.
In this paper, he suggested modifications to his law” of mortality, which
would make it applicable over the entire period of life from birth to old age.
Gompertz’s name will be known by future generations of actuaries not only
because it cannot be omitted from any textbook on life contingencies but
also because his outstanding brilliance as a mathematician was equaled by
his modesty and generosity (JIA 91, 1965).
Gompertz Software Reliability Growth Model 333
discovered until now. We can also calibrate the y axis in terms of the percentage
of defects found, if we have an estimate of the total defects in the application. e
expression “percentage of defects foundis believed to be a direct measure of the
percentage of reliability.
e growth curve starts at some xed point, and the growth rate increases mono-
tonically to reach an inflection point. After this point, the growth rate approaches
a final value asymptotically. According to this model assumption, failure detection
rate increases until the inflection point and then decreases.
In Figure 21.1, the inflection point is marked on the growth curve. Also shown
is the growth rate curve, which is obtained by differentiating the growth curve. e
inflection point in the growth curve corresponds with the peak of the growth rate
curve. A vertical dashed line is drawn to show the correspondence.
Maximum
growth rate
Inflection point
0
0
0.2
0.4
0.6
0.8
1
1.2
2 4 6 8 10 12 14
Time
Gompertzian growth
Growth
16 18 20 22 24 26
y = e
Be
Ct
0
0
0.002
0.004
0.006
0.008
0.01
0.012
0.014
2 4 6 8 10 12 14
Time
Gompertzian growth rate
Growth
rate
16 18 20 22 24 26
Figure 21.1 Gompertzian growth curve and growth rate curve.
334 Simple Statistical Methods for Software Engineering
Building a Reliability Growth Curve
Building a reliability growth curve in real life is fraught with basic problems.
Software reliability models have not delivered the desirable deliverables that they
are intended to realize, as commented by Faqih [2], who listed eight major causes
for this problem,
Unfounded types of assumption, complexity of the software,
complexity of the reliability models, weakness of the reliabil-
ity models, the misconception of fault and failure phenomena,
inaccurate modeling parameters, difficulty in selecting the reli-
ability model, difficulty in building software operational profile.
ere are many who will adopt a cautious approach to reliability growth models.
Stringfellow and Andrews [3] saw many challenges,
It is difficult to define operational profiles and perform opera-
tional tests. Defects may not be repaired immediately. Defect
repair may introduce new defects. New code is frequently
introduced during the test period. Failures are often reported
by many groups with different failure-finding efficiency. Some
tests are more or less likely to cause failures than others. Test
effort varies due to vacations and holidays.
Whether growth is Gompertzian is the next question.
Gompertz Software Reliability Growth Model Curves
e Gompertz software reliability growth model (SRGM) is dened as follows:
G t A B
C
t
( )
( )
=
( )
(21.1)
where G(t) is the defects found until time (t), A is the total defects in the applica-
tion, B and C are the constants with fractions between 0 and 1, and t is the time
elapsed from the start of testing.
Constraining C to values less than 1 is of paramount importance; that is what makes
the expression within the inner brackets decrease with time. Likewise, constraining B
Gompertz Software Reliability Growth Model 335
to values less than 1 is equally important to make the overall function grow with time.
e constant A is equal to the number of total defects in the application.
Figure 21.2 contains two sets of Gompertz curves. e first set of three curves
are constructed with C = 0.3. e second set of three curves are plotted with
C = 0.6. e value of A is fixed at 100.
e effect of C on the curves can be easily seen on the patterns that discriminate
the two sets. Increasing C delays defect discovery.
Within each group, three values of B are shown: 0.1, 0.01, and 0.001. Decreasing
B delays defect discovery.
e x axis of the graph is time varying from 0 to 10 units. It could be days,
weeks, or months. It could also be proxies for time. However, we had weeks in
mind while plotting the graph; this roughly coincides with the time required to
find 100 defects in a small project.
Set 1
C = 0.3
B = 0.1, C = 0.3
B = 0.01, C = 0.3
B = 0.001, C = 0.3
0
0
10
20
30
40
50
60
70
80
90
100
2 4 6
Time
A = 100
Cumulative defects fixed
G(t)
8 10
G(t) = A(B
(C
t
)
) A = Total defects, 0
B
1, 0
C
1
Set 2
C = 0.6
B = 0.1, C = 0.6
B = 0.01, C = 0.6
B = 0.001, C = 0.6
0
0
10
20
30
40
50
60
70
80
90
100
2 4 6
Time
A = 100
Cumulative defects fixed
G(t)
8 10
G(t) = A(B
(C
t
)
) A = Total defects,
0
B
1, 0
C
1
Figure 21.2 Gompertz reliability growth curves for C = 0.3 and C = 0.6.
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.147.127.153