Software reliability prediction : a multi-modelling approach
Many software reliability models are now available to the user who wishes to assess and make predictions about the future reliability of his/her system by using its past failure behaviour. Experience of applying such models to failure data in the past has shown that, to date, there is no one model that will give accurate predictions in all circumstances (i. e., over different data sets). Recent work has thus concentrated on the development of techniquesf or the assessmenot f the accuracyo f predictions madef or the data of interest. One of these techniques also allows the user to improve initially inaccurate predictions via a process of recalibration. The demonstrated success of the recalibration technique suggests that it may be possible to apply fairly simple models, for example nonparametric models, and to achieve reliability predictions which are as accurate as those which could be obtainedf rom more sophisticated models. Here, it is recommended that a "multi-modelling" approach should be taken to the problem of software reliability prediction. That is, a number of parametric and nonparametric models and the recalibration technique should be applied to the failure data from the system of interest and by using the various analysis techniques accurate predictions may be selected for the future failure behaviour of this system, from amongst all the resulting "prediction systems". This thesis gives guidance on how such an approach should be taken and validates the approach by application of these methods to some real software failure data. In order to minimise the effort on the part of the user, the feasibility of automating such selection between prediction systems is also investigated. The general conclusion of this work is that the "multi-modelling" approach suggested is effective, in terms of obtaining, fairly automatically, reliability predictions which can be trusted for each data source. We make recommendations on how to minimise effort on the part of the user of such techniques, by more intelligent choice of initial software reliability models, application of subsequentte chniquesf or improvement in the accuracy of predictions and automatic selection from amongst the available prediction systems. There is evidence here that we could apply a small number of raw models (some parametric and some non-parametric), the recalibration technique, and finally the metapredictor for automatically choosing the best predictions, and the resulting predictions will probably be about the same in accuracy as any single predictor that could have been used.