This document discusses software reliability. It defines software reliability as the probability of failure-free software operation for a specified period of time in a specified environment. Traditional methods to improve reliability include manual testing, code reviews, and coding standards. Reliability can be measured using metrics like MTBF. Software reliability models discussed include error seeding, reliability growth, and non-homogeneous Poisson processes. Choice of model depends on factors like the application area and operational characteristics.
2. Software Reliability
Prof. Kanchana Devi
2
Categorising and specifying the reliability
of software systems
Informal Definition:
Reliability is a measure of how well system users
think it provides the services they require.
Probability of a software component will
produce an incorrect output
Software can continue to operate after a bad
result
3. ………
Prof. Kanchana Devi
3
Software Reliability is the probability of failure-
free software operation for a specified period
of time in a specified environment.
Software Reliability is also an important factor
affecting system reliability.
It differs from hardware reliability in that it
reflects the “design perfection”, rather than
manufacturing perfection.
The high complexity of software is the major
contributing factor of Software Reliability
problems.
4. Traditional Methods For Improving
Software Reliability
Prof. Kanchana Devi
4
Three main techniques are used in industrial and
open source projects to improve software reliability:
Manual Testing
Code Reviews:
Modifications are reviewed by experienced developers
before being committed to the code base.
Coding Standards:
Requiring that all developers adhere to a set of rules when
writing or maintaining code.
Coding standards can improve source code readability,
making it easier to spot defects, and
Ban the use of programming idioms that are arguably
dangerous.
6. Measuring Reliability
Prof. Kanchana Devi
6
A simple measure of reliability can be given
as:
MTBF = MTTF + MTTR , where
MTBF is mean time between failures
MTTF is mean time to fail
MTTR is mean time to repair
8. Error Seeding
Prof. Kanchana Devi
8
Estimates the number of errors in a program.
Errors are divided into
Indigenous Errors
Induced (seeded) Errors.
The unknown number of indigenous errors is
estimated from the number of induced errors.
The ratio of the two types of errors obtained
from the testing data.
9. Reliability Growth
9
Measures and predicts the improvement of
reliability through the testing process using a
growth function to represent the process.
Growth Function has two types of variables:
Independent Variables
Dependent Variables
Independent Variables of the growth function
could be time and number of test cases (or
testing stages)
Dependent Variables can be reliability, failure
rate or cumulative number of errors detected.
10. Non-homogeneous Poisson process (NHPP)
Prof. Kanchana Devi
10
Provide an analytical framework for describing
the software failure phenomenon during
testing.
The main issue is to estimate the mean value
function of the cumulative number of failures.
12. Issues in SR:
Prof. Kanchana Devi
12
SR Growth models are generally “black box”
- no easy way to account for a change in
the “operational profile”
“Operational profile”: description of the input
events expected to occur in actual software
operation – how it will be used in practice
13. Prof. Kanchana Devi
13
Many models have been proposed, perhaps
the most prominent are:
Musa Basic model
Musa/Okomoto Logarithmic model
Some models work better than others
depending on the application area and
operating characteristics:
i.e. interactive?
data intensive?
control intensive?
real-time?
14. Choice of Model - Basic Model:
Prof. Kanchana Devi
14
For studies or predictions before execution
and failure data available
Using study of faults to determine effects of a
new software engineering technology
The program size is changing continually or
substantially (i.e. during integration)
15. Logarithmic Model
Prof. Kanchana Devi
15
System subjected to highly non-uniform
operational profiles.
Highly predictive validity is needed early in the
execution period.
The rapidly changing slope of the failure
intensity during early stages can be better
fitted with the Logarithmic Poisson than the
basic model .