Topics Covered: Lesson 16
Topics Covered: Lesson 16
LESSON 16:
Topics Covered
Reliability concept, Reliability and failure intensity, Uses of
1.0
reliability studies, Reliability models, Macro models, Criteria for Reliability
a good model
Objectives
Failure
Upon completion of this Lesson, you should be able to: Intensity
Reliability
• Know what is reliability concept
• Know what are the uses of reliability studies
• Know what is a reliability model – Macro model and the
criteria for a good model.
Reliability Concept
The definition that we will present here for software reliability is
Time [hr]
one that is widely accepted throughout the field. “It is the
probability of failure-free operation of computer program for a
specified time in a specified environment”. For example, a Thus an important use of software reliability measurement in is
time-sharing system may have a reliability of 0.95 for 10 hr, in system engineering. However, there are at lease four other
when employed by the average user. This system, when ways in which software reliability measures can be of great value
executed for 10hr, would operate without failure for 95 of these to the software engineer, manager, or user.
periods out of 100. As a result of the general way in which we First, you can use software reliability measures to evaluate
defined failure, not that the concept of software reliability software engineering technology quantitatively. New techniques
incorporates the notion of performance being satisfactory. For are continually being proposed for improving the process of
example, excessive response time at a given load level may be developing software, but unfortunately they have been exposed
considered unsatisfactory, so that a routine must be recorded in to little quantitative evaluation. Because of the inability to
more efficient form. distinguish between good and bad, new technology has often
Failure intensity is an alternative way of expressing reliability. led to a general resistance to change that is counter productive.
We just gave the example of the reliability of a particular system Software reliability measures offer the promise of establishing
being 0.95 for 10 hr of time. An equivalent statement is that at least one criterion for evaluating the new technology. For
the failure intensity of 0.05 failure/hr. Each specification has its example, you might run experiments to determine the decrease
advantages. The failure intensity statement is more economical, in failure intensity (failures per unit time) at the start of system
as you only have to give one number. However, the reliability test resulting from design reviews. A quantitative evaluation
statement is better suited to the combination of reliabilities of such as this makes the benefits of good software engineering
components to get system reliability. If the risk of failures at technology highly visible.
any point in time is of paramount concern, failure intensity may Second, software reliability measures offer you the possibility of
be the more appropriate measure. Such would be the case for a evaluating development status during the test phases of a
nuclear power plant. When proper operation of system to project. Methods such as intuition of designers of test team,
accomplish some function with time duration is required percent of tests completed and successful execution of critical
reliability specification is often best. An example would be a functional tests have been used to evaluate testing progress.
space flight to the moon. Fig. 6.5 shows how failure intensity None of these have been really satisfactory and some have been
and reliability typically vary during a test period, as failure are quite unsatisfactory. An objective reliability measure (such as
removed; Note that we define failure intensity, just like we do failure intensity) established from test data provides a sound
reliability, with respect to a specified environment. means of determining status. Reliability generally increases with
Uses of Reliability Studies the amount of testing. Thus, reliability can be closely linked
Pressures have been increasing for achieving a more finely tuned with project schedules. Furthermore, the cost of testing is
balance among product and process characteristics, including highly correlated with failure intensity improvement. Since two
reliability. Trade offs among product components with respect of the key process attributes that a manager must control are
to reliability are also becoming increasingly important. schedule and cost, reliability can be intimately tied in with
project management.
Reliability and Failure Intensity
Third, one can use software reliability measures to monitor the
operational performance of software and to control new
reliability of software usually decreases as a result of such next sub-section is devoted to a discussion of such models.
changes. A reliability objective can be used to determine when,
Macro-Models
and perhaps how large, a change will be allowed. The objective
A large number of macro models have been proposed. From a
would be based on user and other requirements. For example,
data-analytic point of view, the objective of the research into
a freeze on all changes not related to debugging can be imposed
modeling is to find a model that explains failure data well
when the failure intensity rises above the performance objective.
enough to forecast the future. For credibility, the model should
Finally, a quantitative understanding of software quality and the have natural, meaningful parameters. Each model mathemati-
various factors influencing it and affected by it enriches into the cally summarizes a set of assumptions the researcher has made
software product and the software development process. One about the phenomenon of software failure and debugging.
is then much more capable of making informed decisions. The models may give fairly accurate results even though all of
Reliability Models the assumptions are not satisfied. The selection of a model
To model software reliability one must first consider the needs to be justified by the realism of the model’s assumptions
principal factors that affect it: fault introduction, fault removal, and the model’s “predictive validity”.
and the environment. Fault introduction depends primarily on The practitioner has several choices:
the characteristics of the developed code (code created or 1. One model can be chosen a priori, and then that model is
modified for the application) and development process only one used.
characteristics, which include software engineering technologies
2. One model can be chosen a priori, but a recalibration
and tools used and level of experience of personnel. Note that
technique is later applied to adapt the model to the project.
code can be developed to add features or remove
3. Several models can be employed. The results can be
faults. Fault removal depends upon time, operational profile,
combined into a weighted average. The weighted average
and the quality or repair activity. The environment directly
with the best goodness-of-fit is used.
depends on the operational profile. Since some of the forego-
ing are probabilistic in nature and operate over time, software It is important not to use too many models in approaches 3
reliability models are generally formulated in terms of the and 4, because two models might fit the failure data well but
random processes. The models are distinguished from each disagree on how to extrapolate to the future. There is a Yiddish
other in general terms by the nature of the variation of the proverb, “The man who owns one watch always knows what
random process with time. time it is: the man who owes two watches is never quite sure”.
A software reliability model specifies the general form of the It is recommended that software reliability models be compared
dependence of the failure process on the factors mentioned. by criteria discussed below. It is expected that comparisons will
We have assumed that it is, by definition, time based (this is cause some models to be rejected because they meet few of the
not to say that non-time-based models may not provide useful criteria discussed here. On the other hand, there may or may
insights). The possibilities for different mathematical forms to not be a clear choice between the more acceptable models. The
describe the failure process are almost limitless. relative weight to be placed on the different criteria may depend
on the context in which the model is being applied. When
As with any emerging discipline, software reliability has
comparing two models, we should consider all criteria simulta-
produced its share of models. Software reliability models are
neously. We should not eliminate models by one criterion
propounded to assess reliability of software from either
before considering other criteria, except if predictive validity is
specified parameters, which are assumed to be known, or from
grossly unsatisfactory. It is not expected that a model must
software-error generated data.
satisfy all criteria to be useful.
The past few years have seen the introduction of a number of
The proposed criteria include predictive validity, capability,
different software reliability models. These models have been
validity, capability, and quality of assumptions, applicability, and
developed in response to the urgent need of software engi-
simplicity. We will discuss each of the criteria in more details in
neers, system engineers, and managers to quantity the concept
the following sections.
of software reliability.
Predictive Validity
After some thought about how to construct a software
reliability model, two viewpoints emerge – the macro approach Predictive validity is the capability of the model to predict future
and the micro approach. In the macro approach we ignore the failure behaviour from present and past failure behaviour (that
differences between types of statements, details of the control is, data). This capability is significant only when failure
structure, etc. We step back and examine the number of behaviour is changing. Hence, it is usually considered for a test
instructions, the number of errors removed, and the overall phase, but is cant be applied to the operational phase when
details of the control structure and base our model on these repairs are being regularly made.
features. Constants for the model can be evaluated from data There are at least two general ways of viewing predictive validity.
on past systems as well as analysis of test data on the software These are based on the two equivalent approaches to characteriz-
being developed. In the case of micro approach, a detailed ing failure random process, namely:
analysis of the statements and the control structure is per- 1. The number of failures approach and
formed, leading to a detailed model structure. Most of the 2. The failure time approach