Software Reliability Predictions For Distributed Software H. Pant Room HO 2K-511 Bell Labs, Lucent Technologies 101 Crawfords Corner Road, Holmdel, NJ - 07733 email: hpant@lucent.com; Ph: (732)949-2021; Fax: (732)949-0019 D. R. Jeske Room HO 3J-303 Bell Labs, Lucent Technologies 101 Crawfords Corner Road, Holmdel, NJ - 07733 email: djeske@lucent.com; Ph: (732)949-6074; Fax: (732)834-5906 Key Words: Software Reliability, Predictions, Distributed Software, Project Planning. Abstract The software reliability literature contains several models for estimating software reliability at the end of system test. However, to enable better planning, project management often needs reliability predictions prior to system test. This paper presents a software reliability prediction model that extends the known results on software predictions to the case of a distributed software architecture. The model predictions are based on software code characteristics and the size of code as distributed on the system processors. In particular, the implications of having overlapping code executing on multiple processors are examined. It is shown that the predictions, under suitable assumptions on reliability growth during system test, can be used by project management to plan their test and release time intervals. To illustrate the ideas, the prediction model is applied to a telecommunications software project. The paper explains different methods of obtaining the values of software characteristics that are needed as input to the model. 1. Introduction Accurate prediction of software reliability will be of benefit to project management in deciding the balance between reliability and resource allocation. There are several models that cover reliability estimation based on system test data. However, the literature on reliability prediction based on information prior to system test is relatively limited. Basing estimates on test data promises greater accuracy but precludes the possibility of resource optimization. Recent work in reliability prediction has focused attention on rigorous methods using sophisticated techniques. [1] has treated software reliability predictions as a function of complexity metrics. The statistical techniques involved require up front analyses to determine the static and dynamic program complexity. This could be a challenge in projects where resources and data are limited. Simulation provides an alternate approach [2]. However, it will also require commitment of resources to construct the correct simulation models and inputs. The technique is still in the "proof-of-concept stage" [2]. The procedure we describe in this paper involves relatively little effort. The inputs needed for our model - LOC, fault density, fault exposure ratio and processor characteristics - are well understood. Bench mark values can be obtained in case the inputs are not directly available for a particular project environment. The model for software reliability predictions in the case of software executing on a single processor is described in the literature. This paper extends software reliability predictions to the case of software distributed over multiple processors. The model we