Reliability Prediction and Sensitivity Analysis Based on Software Architecture
Swapna S. Gokhale Kishor S. Trivedi
Dept. of CSE CACC, Dept. of ECE
Univ. of Connecticut Duke University
Storrs, CT 06269 Durham, NC 27708
Email: ssg@engr.uconn.edu Email: kst@ee.duke.edu
Abstract
Prevalent approaches to characterize the behavior of
monolithic applications are inappropriate to model mod-
ern software systems which are heterogeneous, and are built
using a combination of components picked off the shelf,
those developed in-house and those developed contractu-
ally. Development of techniques to characterize the be-
havior of such component-based software systems based on
their architecture is then absolutely essential. Earlier ef-
forts in the area of architecture-based analysis have focused
on the development of composite models which are quite
cumbersome due to their inherent largeness and stiffness.
In this paper we develop an accurate hierarchical model to
predict the performance and reliability of component-based
software systems based on their architecture. This model
accounts for the variance of the number of visits to each
module, and thus provides predictions closer to those pro-
vided by a composite model. The approach developed in
this paper enables the identification of performance and re-
liability bottlenecks. We also develop expressions to analyze
the sensitivity of the performance and reliability predictions
to the changes in the parameters of individual modules. In
addition, we demonstrate how the hierarchical model could
be used to assess the impact of changes in the workload on
the performance and reliability of the application. We illus-
trate the performance and reliability prediction as well as
sensitivity analysis techniques with examples.
1 Introduction
The size and complexity of computer systems has in-
creased more rapidly in the past decade, than our ability to
design, test, implement and maintain them. Computer sys-
tems are being increasingly used in various active (control-
ling), and passive (monitoring) applications, and the trend
will surely continue in the future. Computer system fail-
ures make newspaper headlines because at best they incon-
venience people (e.g., malfunctions of home appliances),
cause economic damage (e.g., interruptions of banking ser-
vices), and in the extreme cases cause deaths (e.g., failures
of flight control systems or medical software). The com-
puter industry has seen uneven progress. With the steadily
growing power and reliability of the hardware, software
reliability has been identified as a major stumbling block
in the realization of highly dependable computer systems.
When lives and fortunes depend on software, assurance of
its quality becomes an issue of critical concern.
The impact of the structure of an application on its re-
liability and correctness has been highlighted almost two
decades ago [19, 23]. However, prevalent approaches to
characterizing the behavior of software systems are black-
box based, i.e., the software system is considered as a whole
and only its interactions with the outside world are mod-
eled, without looking into its internal structure. These ap-
proaches were suited to capture the behavior of largely cus-
tom, built-to-specification type of applications. Several cri-
tiques of the black-box based approaches to predict the re-
liability of software systems have appeared in the litera-
ture [8, 9] and some of these include the fact that they are
applicable very late in the life-cycle of the software, ig-
nore information about testing and reliabilities of the com-
ponents of which the software is made, and do not take
into consideration the architecture of the software. With the
advancement and widespread use of object oriented systems
design and web-based development, the use of component-
based software development is on the rise. The software
components can be commercially available off the shelf
(COTS), developed in-house, or developed contractually.
Application, software system and software are used interchangeably
in this paper.
Component and module are used interchangeably in this paper.
1
Proceedings of the 13 th International Symposium on Software Reliability Engineering (ISSRE’02)
1071-9458/02 $17.00 © 2002 IEEE