1. A Parametric Empirical Bayes Model to predict Software Reliability Growth
A Parametric Empirical Bayes Model to
predict Software Reliability Growth
Néstor R. Barraza
nbarraza@untref.edu.ar
March - 2015
Universidad Nacional de Tres de Febrero
2. A Parametric Empirical Bayes Model to predict Software Reliability Growth
Contents
1 Software Reliability
3. A Parametric Empirical Bayes Model to predict Software Reliability Growth
Contents
1 Software Reliability
2 Software Reliability Growth Models
4. A Parametric Empirical Bayes Model to predict Software Reliability Growth
Contents
1 Software Reliability
2 Software Reliability Growth Models
3 Poisson Processes
5. A Parametric Empirical Bayes Model to predict Software Reliability Growth
Contents
1 Software Reliability
2 Software Reliability Growth Models
3 Poisson Processes
4 Empirical Bayes Estimator
6. A Parametric Empirical Bayes Model to predict Software Reliability Growth
Contents
1 Software Reliability
2 Software Reliability Growth Models
3 Poisson Processes
4 Empirical Bayes Estimator
5 Simulation
9. A Parametric Empirical Bayes Model to predict Software Reliability Growth
Software Reliability
Software Development (waterfall, agile sprint)
Quality:
Standards
ISO-IEC 9126 (1991)
ISO-IEC 14598 (1995)
ISO-IEC 15504 (1998)
CMMI (1991)
Analysis
Reliability
Metrics
10. A Parametric Empirical Bayes Model to predict Software Reliability Growth
Software Reliability
Software Reliability (waterfall, agile sprint).
Models
Growth Models
Markov Chains
Clusters
...
11. A Parametric Empirical Bayes Model to predict Software Reliability Growth
Software Reliability
Software Reliability Growth
12. A Parametric Empirical Bayes Model to predict Software Reliability Growth
Software Reliability
Software Reliability Growth
13. A Parametric Empirical Bayes Model to predict Software Reliability Growth
Software Reliability Growth Models
Independent Increments Stochastic process P(N(t) = n).
Remaining number of failures µ(t, s) = E[N(s)|N(t)].
14. A Parametric Empirical Bayes Model to predict Software Reliability Growth
Software Reliability Growth Models
Non homogeneous Poisson Process
P((N(s) − N(t)) = n) =
µ(t, s)n
n!
e−µ(t,s)
µ(t, 0) = a(1 − e−bt
) Goel − Okumoto
µ(t, 0) =
1
θ
ln(µ0θt + 1) Musa − Okumoto
15. A Parametric Empirical Bayes Model to predict Software Reliability Growth
Software Reliability Growth Models
Other Models
Model µ(t, 0)
Delayed S-shaped a(1 − (1 + b t)e−b t )
Log Power α lnβ
(1 + t)
Gomperts a(bct
)
Yamada Exponential a(1 − e−b c (1−e(−d t)))
16. A Parametric Empirical Bayes Model to predict Software Reliability Growth
Poisson Processes
Compound Poisson Process
P(N(t) = n) =
m
k=1
(λ t)k
k!
e−λt
f∗k
(X1 + X2 + · · · + Xk = n)
E[N(t)] = λ t E[X]
17. A Parametric Empirical Bayes Model to predict Software Reliability Growth
Empirical Bayes Estimator
Empirical Bayes Estimator
Estimate a binary probability based on a previous number of
occurrences. Applications:
18. A Parametric Empirical Bayes Model to predict Software Reliability Growth
Empirical Bayes Estimator
Empirical Bayes Estimator
Estimate a binary probability based on a previous number of
occurrences. Applications:
Speech recognition
19. A Parametric Empirical Bayes Model to predict Software Reliability Growth
Empirical Bayes Estimator
Empirical Bayes Estimator
Estimate a binary probability based on a previous number of
occurrences. Applications:
Speech recognition
Word processing
20. A Parametric Empirical Bayes Model to predict Software Reliability Growth
Empirical Bayes Estimator
Empirical Bayes Estimator
Estimate a binary probability based on a previous number of
occurrences. Applications:
Speech recognition
Word processing
Arithmetic compression
21. A Parametric Empirical Bayes Model to predict Software Reliability Growth
Empirical Bayes Estimator
Empirical Bayes Estimator
Estimate a binary probability based on a previous number of
occurrences. Applications:
Speech recognition
Word processing
Arithmetic compression
Reliability
22. A Parametric Empirical Bayes Model to predict Software Reliability Growth
Empirical Bayes Estimator
Empirical Bayes Estimator
Try to estimate the probability of success θ, given n samples with
r successful events.
23. A Parametric Empirical Bayes Model to predict Software Reliability Growth
Empirical Bayes Estimator
Empirical Bayes Estimator
Try to estimate the probability of success θ, given n samples with
r successful events.
Maximum likelihood: ˆθ = r
n
24. A Parametric Empirical Bayes Model to predict Software Reliability Growth
Empirical Bayes Estimator
Empirical Bayes Estimator
Try to estimate the probability of success θ, given n samples with
r successful events.
Maximum likelihood: ˆθ = r
n → Problems when r = 0
25. A Parametric Empirical Bayes Model to predict Software Reliability Growth
Empirical Bayes Estimator
Empirical Bayes Estimator
Try to estimate the probability of success θ, given n samples with
r successful events.
Maximum likelihood: ˆθ = r
n → Problems when r = 0
Smoothing ˆθ = r+a
n+b
26. A Parametric Empirical Bayes Model to predict Software Reliability Growth
Empirical Bayes Estimator
Family of estimators
27. A Parametric Empirical Bayes Model to predict Software Reliability Growth
Empirical Bayes Estimator
Family of estimators
Laplace law of succession ˆθ = r+1
n+2
28. A Parametric Empirical Bayes Model to predict Software Reliability Growth
Empirical Bayes Estimator
Family of estimators
Laplace law of succession ˆθ = r+1
n+2
Lidstone law ˆθ = r+b
n+s b
29. A Parametric Empirical Bayes Model to predict Software Reliability Growth
Empirical Bayes Estimator
Family of estimators
Laplace law of succession ˆθ = r+1
n+2
Lidstone law ˆθ = r+b
n+s b
Good-Turing ˆθ = r+1
n
Nr
Nr+1
30. A Parametric Empirical Bayes Model to predict Software Reliability Growth
Empirical Bayes Estimator
Family of estimators
Laplace law of succession ˆθ = r+1
n+2
Lidstone law ˆθ = r+b
n+s b
Good-Turing ˆθ = r+1
n
Nr
Nr+1
Discount ˆθ = r−b
n
31. A Parametric Empirical Bayes Model to predict Software Reliability Growth
Empirical Bayes Estimator
Family of estimators
Laplace law of succession ˆθ = r+1
n+2
Lidstone law ˆθ = r+b
n+s b
Good-Turing ˆθ = r+1
n
Nr
Nr+1
Discount ˆθ = r−b
n
New approach, to introduce a non linear function of
r: ˆθ = f(r)
n
32. A Parametric Empirical Bayes Model to predict Software Reliability Growth
Empirical Bayes Estimator
P(r/λ) =
λr
r!
e−λ
. (1)
θ =
λ
n
(2)
33. A Parametric Empirical Bayes Model to predict Software Reliability Growth
Empirical Bayes Estimator
ˆθ =
ˆλ
n
=
E[λ|r]
n
(3)
ˆθ =
1
n
λλr
r! e−λdS(λ)
λr
r! e−λdS(λ)
=
r + 1
n
P(r + 1)
P(r)
(4)
34. A Parametric Empirical Bayes Model to predict Software Reliability Growth
Empirical Bayes Estimator
θ: Probability of failure occurrence
r : The number of failures up to time n
P(r): Prior probability of the number of failures
Reliability Growth → A decreasing probability of failure θ
ˆθ = r+1
n
> 1
P(r+1)
P(r)
n
r
r
P(r)
35. A Parametric Empirical Bayes Model to predict Software Reliability Growth
Empirical Bayes Estimator
θ: Probability of failure occurrence
r : The number of failures up to time n
P(r): Prior probability of the number of failures
Reliability Growth → A decreasing probability of failure θ
ˆθ = r+1
n
> 1> 1
P(r+1)
P(r)
P(r+1)
P(r)
n
r
r
P(r)
36. A Parametric Empirical Bayes Model to predict Software Reliability Growth
Empirical Bayes Estimator
θ: Probability of failure occurrence
r : The number of failures up to time n
P(r): Prior probability of the number of failures
Reliability Growth → A decreasing probability of failure θ
ˆθ = r+1
n
> 1< 1
P(r+1)
P(r)
P(r+1)
P(r)
n
r
r
P(r)
37. A Parametric Empirical Bayes Model to predict Software Reliability Growth
Simulation
Simulation procedure
s ← initial count of seconds
r ← initial number of failures
for i = s to the total testing time do
p =
r + 1
i
P(r + 1)
P(r)
{Estimate the probability of failure}
GENERATE a failure with probability p
if a failure arrived then
r ← r + 1
end if
print number of arrived failures r and seconds i
end for
(Failure generation code)
38. A Parametric Empirical Bayes Model to predict Software Reliability Growth
Simulation
5,000,000 10,000,000 15,000,000
10
20
30
40
secs
Number of failures
39. A Parametric Empirical Bayes Model to predict Software Reliability Growth
Simulation
5,000,000 10,000,000 15,000,000
10
20
30
40
secs
Number of failures
ˆθ0 = r0+1
n0
P(r0+1)
P(r0)
40. A Parametric Empirical Bayes Model to predict Software Reliability Growth
Simulation
5,000,000 10,000,000 15,000,000
10
20
30
40
secs
Number of failures
ˆθ0 = r0+1
n0
P(r0+1)
P(r0)
41. A Parametric Empirical Bayes Model to predict Software Reliability Growth
Simulation
5,000,000 10,000,000 15,000,000
20
40
60
80
100
120
secs
Number of failures
Actual Data
Simulation
42. A Parametric Empirical Bayes Model to predict Software Reliability Growth
Simulation
5,000,000 10,000,000 15,000,000
20
40
60
80
100
120
secs
Number of failures
Actual Data
SimulationSimulation
43. A Parametric Empirical Bayes Model to predict Software Reliability Growth
Simulation
Same Mixing Distribution
Different Starting Points
5,000,000 10,000,000 15,000,000
20
40
60
80
100
120
secs
Number of failures
44. A Parametric Empirical Bayes Model to predict Software Reliability Growth
Simulation
Same Mixing Distribution
Different Starting Points
5,000,000 10,000,000 15,000,000
20
40
60
80
100
120
secs
Number of failures
45. A Parametric Empirical Bayes Model to predict Software Reliability Growth
Simulation
Same Mixing Distribution
Different Starting Points
5,000,000 10,000,000 15,000,000
20
40
60
80
100
120
secs
Number of failures
46. A Parametric Empirical Bayes Model to predict Software Reliability Growth
Simulation
Same Mixing Distribution
Different Starting Points
5,000,000 10,000,000 15,000,000
20
40
60
80
100
120
secs
Number of failures
47. A Parametric Empirical Bayes Model to predict Software Reliability Growth
Simulation
SS1 Project
0 20 40 60 80 100 120
0
2
4
6
·105
Failure Number
MeanTimeBetweenFailures(Secs)
+ + Actual Data
ML
Our Model
48. A Parametric Empirical Bayes Model to predict Software Reliability Growth
Simulation
SS1 Project
0 20 40 60 80 100 120
0
2
4
6
·105
Failure Number
MeanTimeBetweenFailures(Secs)
+ + Actual Data
MLML
Our Model
49. A Parametric Empirical Bayes Model to predict Software Reliability Growth
Simulation
SS1 Project
0 20 40 60 80 100 120
0
2
4
6
·105
Failure Number
MeanTimeBetweenFailures(Secs)
+ + Actual Data
MLML
Our ModelOur Model
50. A Parametric Empirical Bayes Model to predict Software Reliability Growth
Simulation
Naval Tactical Data System
5 10 15 20 25 30
0
50
100
Failure Number
MeanTimeBetweenFailures(Days)
Actual Data
51. A Parametric Empirical Bayes Model to predict Software Reliability Growth
Simulation
Naval Tactical Data System
5 10 15 20 25 30
0
50
100
Failure Number
MeanTimeBetweenFailures(Days)
Actual Data
Mazzuchi Model I
52. A Parametric Empirical Bayes Model to predict Software Reliability Growth
Simulation
Naval Tactical Data System
5 10 15 20 25 30
0
50
100
Failure Number
MeanTimeBetweenFailures(Days)
Actual Data
Mazzuchi Model I
Mazzuchi Model II
53. A Parametric Empirical Bayes Model to predict Software Reliability Growth
Simulation
Naval Tactical Data System
5 10 15 20 25 30
0
50
100
Failure Number
MeanTimeBetweenFailures(Days)
Actual Data
Mazzuchi Model I
Mazzuchi Model II
Our Model
54. A Parametric Empirical Bayes Model to predict Software Reliability Growth
Conclusions
Conclusions
55. A Parametric Empirical Bayes Model to predict Software Reliability Growth
Conclusions
Conclusions
A new method in order to predict software failures
production was proposed.
56. A Parametric Empirical Bayes Model to predict Software Reliability Growth
Conclusions
Conclusions
A new method in order to predict software failures
production was proposed.
This method is based on The Empirical Bayes estimator
usually used in other areas of Engineering.
57. A Parametric Empirical Bayes Model to predict Software Reliability Growth
Conclusions
Conclusions
A new method in order to predict software failures
production was proposed.
This method is based on The Empirical Bayes estimator
usually used in other areas of Engineering.
In order to model reliability growth, a specially smoothing
nonlinear factor was introduced in the estimate.
58. A Parametric Empirical Bayes Model to predict Software Reliability Growth
Conclusions
Conclusions
A new method in order to predict software failures
production was proposed.
This method is based on The Empirical Bayes estimator
usually used in other areas of Engineering.
In order to model reliability growth, a specially smoothing
nonlinear factor was introduced in the estimate.
This factor comes from a mixed Poisson distribution.
59. A Parametric Empirical Bayes Model to predict Software Reliability Growth
Conclusions
Conclusions
A new method in order to predict software failures
production was proposed.
This method is based on The Empirical Bayes estimator
usually used in other areas of Engineering.
In order to model reliability growth, a specially smoothing
nonlinear factor was introduced in the estimate.
This factor comes from a mixed Poisson distribution.
A simulation of the cumulative failures curve using a
Poisson mixed by a Generalized Inverse Gaussian
probability density function has been performed with good
agreement with reported data.
60. A Parametric Empirical Bayes Model to predict Software Reliability Growth
Bibliography
Bibliography