|
|
|
|
Research>Modeling |
|
|
Software Reliability Modeling Research at University of Maryland
General Information: The research on software reliability
models tries to answer such a question as “Which of the software
reliability models currently existing is the best for my application?”
The research followed two stages:
Publications :
Models for predicting software reliability in the early phases of development are of paramount importance since they provide early identification of cost overruns, software development process issues, optimal development strategies, etc. A few models geared towards early reliability prediction, applicable to well defined domains, have been developed during the 1990s. However, many questions related to early prediction are still open, and more research in this area is needed, particularly for developing a generic approach to early reliability prediction. This paper presents an approach to predicting software reliability based on a systematic identification of software process failure modes and their likelihood. A direct consequence of the approach and its supporting data collection efforts is the identification of weak areas in the software development process. A Bayes framework for the quantification of software process failure mode probabilities can be useful since it allows use of historical data that are only partially relevant to the software at hand. The key characteristics of the approach should apply to other software-development life-cycles and phases. However, it is unclear how difficult the implementation of the approach would be, and how accurate the predictions would be. Further research will help answer these questions.
Software reliability assessment models in use
today treat software as a monolithic block. An aversion towards
"atomic" models seems to exist. These models appear to add
complexity to the modeling, to the data collection and seem intrinsically
difficult to generalize. In 1997, the authors introduced an
architecturally based software reliability model called FASRE. The model
is based on an architecture derived from the requirements which captures
both functional and nonfunctional requirements and on a generic
classification of functions, attributes and failure modes. The model
focuses on evaluation of failure mode probabilities and uses a Bayesian
quantification framework. Failure mode probabilities of functions and
attributes are propagated to the system level using fault trees. It can
incorporate any type of prior information such as results of developers'
testing, historical information on a specific functionality and its
attributes, and is ideally suited for reusable software. By building an
architecture and deriving its potential failure modes, the model forces
early appraisal and understanding of the weaknesses of the software,
allows reliability analysis of the structure of the system, provides
assessments at a functional level as well as at a systems' level. In order
to quantify the probability of failure (or the probability of success) of
a specific element of their architecture, data are needed. The term
element of the architecture is used here in its broadest sense to mean a
single failure mode or a higher level of abstraction such as a function.
The paper surveys the potential sources of software reliability data
available during software development. Next the mechanisms for
incorporating these sources of relevant data to the FASRE model are
identified.
Software-based digital systems are
progressively replacing analog systems in safety-critical applications
like nuclear power plants. Although they must Most existing software
reliability models estimate the failure intensity function during dynamic
testing. While these models are useful engineering tools, they can not be
applied to earlier life-cycle phases where pay-off is maximum in terms of
avoiding later failures. Few models have been developed to capture
phenomena occurring early in the life cycle and their impact on
reliability and much research effort is still needed in this area. Our
previous research efforts have led to the development of a stochastic
model, which relates human errors committed during software development
and debugging activities to the software failure intensity function. The
software development schedule and other influencing factors (e.g.,
experience, schedule pressure, etc.) were used to predict human error
rates. The model is based on several assumptions. In particular, it is
assumed that repair is instantaneous. The present paper attempts to remove
this assumption and assesses the impact of repair times on previous
findings.
Software reliability prediction models are of
paramount importance since they provide early identification of cost
overruns, software development process issues, optimal development
strategies, etc. Existing prediction models were developed mostly during
the past 5 to 10 years and, hence, have become obsolete. Furthermore, they
are not based on a deep knowledge and understanding of the software
development process. This limits their predictive power. This paper
presents an approach to the prediction of software reliability based on a
systematic identification of software process failure modes and their
likelihoods. A direct consequence of the approach and its supporting data
collection efforts is the identification of weak areas in the software
development process. A Bayesian framework for the quantification of
software process failure mode probabilities is recommended since it allows
usage of historical data that are only partially relevant to the software
at hand. The approach is applied to the requirements analysis phase.
Most existing software reliability models estimate the failure intensity function during dynamic testing. While these models are useful engineering tools, they can not be applied to earlier life-cycle phases where pay-off is maximum in terms of avoiding later failures. Few models have been developed to capture phenomena occurring early in the life cycle and their impact on reliability and much research effort is still needed in this area. Our previous research efforts have led to the development of a stochastic model, which relates human errors committed during software development and debugging activities to the software failure intensity function. The software development schedule and other influencing factors (e.g., experience, schedule pressure, etc.) were used to predict human error rates. The model is based on several assumptions. In particular, it is assumed that repair is instantaneous. The present paper attempts to remove this assumption and assesses the impact of repair times on previous findings.
|
|
Last Updated Wednesday, December 19, 2001
|
|