Font Size: a A A

Analysis of software reliability and performance

Posted on:1999-04-15Degree:Ph.DType:Dissertation
University:Duke UniversityCandidate:Gokhale, Swapna SudhirFull Text:PDF
GTID:1468390014972635Subject:Computer Science
Abstract/Summary:
With the steadily growing power and reliability of hardware, software has been identified as a major stumbling block in achieving desired levels of system dependability. Conventional approaches for the assessment of software reliability suffer from several limitations and are based on various stringent and unrealistic assumptions. The emphasis of this dissertation is to relax some of the stringent and unrealistic assumptions underlying the software reliability models, discuss some of their limitations and propose new approaches to overcome these limitations. In particular, we focus on the following three objectives:; It is an old programming adage that a relatively small number of modules in a software system contain disproportionately large number of errors. Software complexity metrics have been shown to be closely related to the number of faults in the software modules. A number of predictive relationships have been developed to classify the software modules into fault-prone and non-fault prone categories based on the software complexity metrics. Some techniques have also been proposed to predict the actual number of errors in a software module based on the complexity metrics. However, these techniques are unstable in the presence of correlated data, and cannot handle missing values, which are a commonly occurring feature in case of software engineering data sets. We propose the application of a regression tree modeling technique to predict the number of faults in a software module at the end of the development phase based on software complexity metrics, so that testing and validation efforts can be channeled in an effective direction. Data analysis using the regression tree model demonstrates that this technique enjoys better performance than the commonly used fault density approach.; The predictions obtained using the existing software reliability growth models are optimistic due to several reasons, namely, the saturation effect of testing, inaccuracies in the operational profile, and the assumption of instantaneous and perfect fault removal. We focus on the enhancement of software reliability growth models to incorporate code coverage and finite fault removal time which can help alleviate the problem of optimistic predictions. A methodology to compute the failure rate of the software based on the model with finite fault removal time is described. In addition, an economic model which accounts for finite fault removal is presented, which can help determine optimal software release criterion based on cost constraints.; Prevalent black-box based approaches to software reliability modeling are inappropriate to model the modern heterogeneous systems, where components having different failure behaviors and workloads interact. We outline the specification and solution methods for architecture-based software reliability and performance prediction, and present an exhaustive discussion of the Markov chain based approaches. We then present a hybrid approach to architecture-based reliability prediction, where we parameterize the analytic model of an application using trace information obtained from the testing of the application. To facilitate this, we use ATAC (Automatic Test Analyzer in C) which is a part of Software Understanding and Diagnosis System developed at Bellcore, and demonstrate the methodology by predicting the reliability and performance of SHARPE (Symbolic Hierarchical Automated Reliability and Performance Evaluator), which has been used to solve stochastic models of reliability, performance and performability.
Keywords/Search Tags:Reliability, Software, Finite fault removal, Model
Related items