International Journal of Computer Applications (0975 – 8887) Volume 47– No.22, June 2012 46 Software Reliability Prediction using Neural Network with Encoded Input Manjubala Bisi Reliability Engineering Centre IIT Kharagpur West Bengal, India Neeraj Kumar Goyal Reliability Engineering Centre IIT Kharagpur West Bengal, India ABSTRACT A neural network based software reliability model to predict the cumulative number of failures based on Feed Forward architecture is proposed in this paper. Depending upon the available software failure count data, the execution time is encoded using Exponential and Logarithmic function in order to provide the encoded value as the input to the neural network. The effect of encoding and the effect of different encoding parameter on prediction accuracy have been studied. The effect of architecture of the neural network in terms of hidden nodes has also been studied. The performance of the proposed approach has been tested using eighteen software failure data sets. Numerical results show that the proposed approach is giving acceptable results across different software projects. The performance of the approach has been compared with some statistical models and statistical models with change point considering three datasets. The comparison results show that the proposed model has a good prediction capability. General Terms Software reliability prediction, fault count prediction, neural network modeling. Keywords Failure prediction, neural network, encoded input, encoded parameter. 1. INTRODUCTION In today’s society, many commercial and government organizations use software projects in order to increase their efficiency and effectiveness. Software exists starting from a simple system like mobile to high complex and safety critical system like, air traffic control. As the use of software is increasing, the failures are also increasing rapidly. The consequences of failures may lead to loss of life or economic loss. So, the software professionals need to develop software systems which are not only functionally attractive but also safe and reliable. Software reliability is defined as the probability of failure-free operation of a computer program in a specified environment for a specified time. Reliability of software is measured in terms of failures which are a departure of program operation from program requirements. The software reliability is characterized as a function of failures experienced. Software reliability models are used to describe failures as a random process. Software engineers can measure or forecast software reliability using software reliability models. In real software development process, cost and time are limited. The models are used to develop reliable software under given time and cost constraints. The software managers also determine the release time of the software with the help these models. In past few years, a large number of software reliability models/statistical models have been developed. Every model is based on certain assumptions. So the predictive capability of different models is different for different data sets. There exist no single models that can best suit for all cases. The statistical models are also influenced by different external parameters. To overcome these problems, non-parametric models like neural network and support vector machines have been used for last few years. The non-parametric models are not influenced by any external parameter and also not based on assumptions which are unrealistic in real situation. Neural network has become an alternative method in software reliability modeling, evaluation and prediction. In the literature, many neural network based software reliability prediction models exist and their prediction capability is proven better than some statistical models [4-6]. All the neural network based software reliability models are basically experimental in nature. Anyone who wants to apply the models on real software data set, they have to first find out the architecture of the network in hit and trial method. In real cases, people lose their confidence to apply the models with high level of confidence. In this work, neural network models with Exponential and Logarithmic encoding scheme have been proposed to build non-parametric models for software reliability prediction. It has been shown in [14] that neural network models with the above two encoding scheme has better prediction for cumulative number of failures than some statistical models. But in [14], the value of the encoding parameter is determined by doing repeated experiments with hit and trial method. The purpose of this paper is to provide a guideline for the selection of encoding parameter which gives consistent results for different datasets. The proposed approach is applied using eighteen different data sets and found to provide consistent result for all datasets. The approach has been compared using three data sets with existing statistical models with change points. The rest of the paper has been organized as follows: In Section 2, some works related to software reliability prediction are introduced. Section 3 presents the proposed method to predict cumulative number of failures in software using neural network with two different encoding schemes such as Exponential and Logarithmic encoding. Section 4 shows the experimental result. Finally, Section 5 concludes the paper. 2. RELATED WORK In recent years, many papers have presented various models for software reliability prediction [2]. In this section, some works related to neural network modeling for software reliability modeling and prediction is presented. Numerous factors like software development process, software development organization, and software test/use characteristics, software complexity, and nature of software faults and the possibility of occurrence of failure affect the software reliability behavior. These factors represent non-