| FastAbstracts
WHAT IS a
FastAbstract
The
History
Archives
of
FastAbstracts
ISSRE
2003
ISSRE 2002
ISSRE
2001
ISSRE 2000
ISSRE 1999
ISSRE 1998
FTCS
1999
FTCS 1998
|
|
|
|
|
|
|
Software Component Reliability Analysis
William W. Everett1
Principal Consultant, SPRE, Inc.
Over the years of teaching and applying quantitative methods of analyzing
software reliability, I have not been satisfied with having to wait until
testing starts before doing any real quantitative analysis of software
reliability. Current approaches rely on collecting failure event data
during system test and then fitting one of a number of reliability
growth models to the data . The fitted model is used to estimate
reliability measures of interest.
To overcome this shortcoming, we have been developing an approach called
Software Component Reliability Analysis (SCRA). The approach has been
distilled into a six step procedure (see the table below for an outline
of what is involved in each step). The procedure starts very early in
the software development process, during the architecture or high level
design phase. During this phase, the software is divided into modules
and the features and functions specified in the requirements are allocated
to the modules. The analysis starts by dividing the software into components.
The component breakdown follows the software module breakdown but includes
additional structure to aid reliability analysis. Descriptive reliability
models such as Musas Basic Execution Time (BET, see [MUS87])
and Everetts Extended Execution Time (EET, see [EVE92]) models
are used to model the reliability of each component. The parameters of
these models can be estimated in terms of the properties of the software
and the processing patterns it is subjected to. Thus component reliabilities
can be estimated in terms of software and processing properties prior
to the start of test. As test cases are developed, they are analyzed in
terms of there processing impact on individual components. Also, estimates
are developed of the processing impact on components during operational
usage. The occurrence frequencies of test cases in operational usage (as
specified in the operational profile (see [MUS93]) help in doing
this). This information on processing patterns is used in combining component
reliabilities to estimate software module and software system reliabilities.
As the reliability analysis is done prior to the start of testing, the
output of such analysis can be used in:
- engineering the reliability of software during design
- developing a testing strategy to attain optimal reliability
growth during test
- estimate the amount of testing needed to attain a specified
level of reliability.
Also, the analysis does not assume that test cases must be executed in
an order as specified by the operational profile, thus different orders
can be selected and their effect on reliability growth investigated. When
testing starts, modeling is used in a different way than current approaches.
Rather than using failure data to fit models, the calibrated models from
SCRA are used to create control charts. Failures observed during test
are tracked on the control charts to determine whether the calibrated
SCRA models explain the failures observed during test. When failure
events fall outside control limits, this triggers the need to redo reliability
analysis, using more information that becomes available during testing.
SCRA Six Step Procedure
|
|
|
|
Step |
Notes |
| 1. |
Divide software into components |
Start with architecture breakdown of software into modules.
Further divide into components taking into account newly developed code,
incremental delivery of code, critical nature of processing, and distributed
processing if there are multiple processors. |
| 2. |
Characterize properties of components |
Properties that affect reliability of a software component
include: residual fault content, component size in source and machine instructions,
machine processing speed, fault exposure ratio, loopiness/branchness of
code, operational stress. |
| 3. |
Characterize how usage stresses components |
During Test: determine how each test case stresses (in terms
of relative processing) each component and the order in which test cases
are run. During Operation: the relative likelihood of occurrence of test
cases in operation. |
| 4. |
Model reliability growth of components |
Use BET, EET models or approximations to EET model. Model
parameters can be determined from properties developed in steps 2 and 3. |
| 5. |
Superimpose component reliabilities |
Using Poisson properties of models, can express software
system reliability quantities (e.g. cumulative failures, field failure rate)
as weighted sums of individual component quantities. Need to specify order
in which test cases will be executed in test. |
| 6. |
Do confirmatory analysis during testing |
Use models from step 5 to create control charts. Log failure
event observe during test on control charts. When failures fall outside
control limits, repeat analysis in steps 1 - 5. Use added information available
during test. |
Currently, we are in the process of implementing guidelines,
tools and pracniques (= practical techniques) trade-off
guidelines (effort vs. accuracy) to support the analyst in carrying
out each step of the SCRA procedure.
REFERENCES
[EVE92] - An Extended Execution Time
Software Reliability Model; Everett, W. W.; Third International
Symposium on Software Reliability Engineering; IEEE CS Press;
October, 1992; pp 4-13.
[MUS87] - Software Reliability; Measurement, Prediction,
Application; Musa, J. D.: Iannino, A.; Okumoto, K.;
McGraw Hill, 1987.
[MUS93] - Operational Profiles in Software Reliability
Engineering, Musa, J. D., IEEE Software Magazine; vol. 10,
no. 2; March 1993, pp. 14-32.
1 Author Contact: SPRE, Inc.,
4212 Rancho Centro NW, Albuquerque, NM 87120-3495,
phone: (505) 890-7773, fax: (505) 890-2933, email: w.w.everett@computer.org
|
|