0% found this document useful (0 votes)
43 views

Software Reliability: SEG3202 N. El Kadri

This document discusses software reliability and reliability modeling. It defines key terms like error, fault, failure, and availability. It explains that software reliability aims for fault-free performance and is assessed using test results. Classical reliability is defined as the probability of failure-free operation over time. Two main types of reliability models are presented: time dependent models that consider failure intensity over time, and time independent models. Specific models discussed include the Jelinsky-Moranda and Goel-Okumoto models. The Jelinsky-Moranda model models time between failures as an exponential distribution. The Goel-Okumoto model extends this with imperfect debugging. Failure counting models like the non-homogeneous Poisson process model are also introduced.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
43 views

Software Reliability: SEG3202 N. El Kadri

This document discusses software reliability and reliability modeling. It defines key terms like error, fault, failure, and availability. It explains that software reliability aims for fault-free performance and is assessed using test results. Classical reliability is defined as the probability of failure-free operation over time. Two main types of reliability models are presented: time dependent models that consider failure intensity over time, and time independent models. Specific models discussed include the Jelinsky-Moranda and Goel-Okumoto models. The Jelinsky-Moranda model models time between failures as an exponential distribution. The Goel-Okumoto model extends this with imperfect debugging. Failure counting models like the non-homogeneous Poisson process model are also introduced.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 33

Software Reliability

SEG3202

N. El Kadri
Define SW reliability and analyze its role in
SW Systems.
Two main types of reliability models:
Time dependant
Time independent
Develop Reliability Characteristics based
on experimental data
Software Reliability and Software Design

2
Notion of Reliability
Aims at fault-free performance of software
systems
Software reliability goes hand-in-hand with
software verification
Input: collection of software test results
Goal: assess the validity of the software
system
Targets safety-critical software

3
Reliability Assessment

4
Role of Reliability in Software Engineering

5
Error, Fault and Failure

Error: human action that results in software


containing a fault

Fault: a cause for an internal error (failure)

Failure: any observable divergence of software


behavior in execution from user needs

Failure intensity: the number of failures per time unit


6
Error, Fault and Failure

7
More Basic Notions

Failure: any observable divergence of software


behavior in execution from user needs
Failure intensity: the number of failures per
natural or time unit. Failure intensity is a way of
expressing reliability.
Availability: The probability that at a given time
that a system or a capability of a system functions
satisfactorily in a specified environment.
If you are given an average downtime per failure, then
availability implies a kind of reliability.
8
Classical Definition of Reliability
Software Reliability is the probability that a
system will operate without failure under given
environmental conditions for a specified period of
time.
We express reliability on a scale from 0 to 1:
highly reliable system will have a reliability measure
close to 1, and
unreliable system will have a measure close to 0.
Reliability is measured over execution time so
that it more accurately reflects system usage.
GOAL: reliability must be quantified so that we can
compare software systems
9
Time
Time is execution exposure that
software receives through usage.

It is usually measured in central


processing unit (CPU) execution-
time, calendar-time or clock time.

10
Characters of Software Reliability
Failures are primarily due to design faults.
Repairs are made by modifying the design to make it robust
against conditions that can trigger a failure.
There is no wear-out phenomena.
Software errors occur without warning.
Old code can exhibit an increasing failure rate as a function
of errors induced while making upgrades.
External environment conditions do not affect software
reliability.
Internal environmental conditions, such as insufficient memory
or inappropriate clock speeds do affect software reliability.
Reliability is not time dependent.
Failures occur when the logic path that contains an error is
executed.
Reliability growth is observed as errors are detected and
corrected. 11
Software Reliability Modeling
A software reliability
model specifies the
Idealized curve general form of the
dependence of the failure
process on the principal
factors that affect it:
- Time,
- fault introduction,
- fault removal,
- operational environment

14
Software Reliability Modeling

15
Basics of Reliability Theory

16
Basics of Reliability Theory
Given the pdf function f(t), the probability that the
component fails in a given time interval [t1,t2] is:

Example:
1. for the uniform pdf on the previous slide the probability of failure from
time 0 to 2 hours is 1/5
2. For the exponential pdf on the previous slide, the probability of failure
from time 0 to 2 hours is :

17
Basics of Reliability Theory

dt

18
Basics of Reliability Theory

19
Basics of Reliability Theory

E(T)

20
Basics of Reliability Theory

21
Software Reliability Growth Problem
In software we want to fix the problem, i.e., to have a
lower probability of failure after a repair
or having longer
The quality of the product improves over time, and we
talk about reliability growth
We need a model for reliability change over time

22
Taxonomy of Software Reliability Models

23
Time Between Failure Reliability Models

Reliability is a function of time


Time between successive failures
Failure counts completed over time
Time variable is regarded as a random variable
characterized by a certain probability density
function, (pdf).
The reliability models in this class vary with
respect to the assumptions made with regard to
the form of the pdf.

24
Time Between Failure Reliability Models:
Jelinsky & Moranda, 1972
Failures occur at some discrete time moments t1, t2,
ti are independent exponential distributed random variables

N0 number of initial faults is unknown


Hazard rate (the probability of failure in interval ti ):

25
Time Between Failure Reliability Models:
Jelinsky & Moranda, 1972
After n failures the mean Time To Failure (MTTF) is
computed as follows:

Inference procedure: maximum likelihood estimation

Objective:
26
Time Between Failure Reliability Models:
Jelinsky & Moranda, 1972

Objective:

Resolve numerically the following two equations with respect


to the parameters of the model using any method of non-
linear optimization:

27
Jelinsky & Moranda Model: Example

Sample software reliability data:


t1=7, t2=11, t3=8, t4=10, t5 =15, t6 =22, t7 =20, t8 =25,
t9 =28, t10=35

Model parameters values:

Estimated MTTF:

28
Jelinski-Moranda Model

Assumptions:
The software has N0 faults at the beginning of the test.
Each of the faults is independent and all faults will
cause a failure during testing.
The repair process is instantaneous and perfect, i.e., the
time to remove the fault is negligible, new faults will
not be introduced during fault removal.

29
Goel-Okumoto Imperfect
Debugging Reliability Model
This model extends the basic JM model by adding an
assumption:
1. A fault is removed with probability p whenever a
failure occurs.
The failure rate function of the base JM model with
imperfect debugging at the ith failure interval
becomes
(ti) = [N- p( i 1)], i =1, 2,,N
The reliability function is
R(ti) = e - (N-p(i-1))ti
30
Failure Counting Reliability Models

Concerned with counting the number of


faults detected in a certain time interval
A representative model: Goel-Okumoto
NHPP reliability model

31
Non-homogeneous Poisson
process (NHPP)
Non-homogeneous Poisson process
(NHPP):
This group of models provides an
analytical framework for describing the
software failure phenomenon during
testing.
The main issue in the NHPP model is to
estimate the mean value function of the
cumulative number of failures experienced
up to a certain time point.
32
Goel-Okumoto NHPP Reliability Model
Model:

N(t): Cumulative
Number of Failures at
time t
N(t) is as a Poisson
process with a time-
dependent failure rate
File dependent rate
follows an exponential
distribution
33
Goel-Okumoto NHPP Reliability Model
In this equation:
m(t) is expected # of Model:
failures over time
(a.k.a. the cdf F(t))

is the failure density


(a.k.a. probability density
function f(t))
a is the expected number of
failures to be observed
eventually
b is the fault detection rate
per fault 34
Next
Time independent Software reliability
models
Computation of System reliability

35

You might also like