Application of Machine Learning Techniques to Predict Software Reliability

Application of Machine Learning Techniques to Predict Software Reliability

Ramakanta Mohanty (Berhampur University, India), V. Ravi (Institute for Development and Research in Banking Technology, India) and M. R. Patra (Berhampur University, India)
Copyright: © 2012 |Pages: 17
DOI: 10.4018/978-1-60960-818-7.ch301
OnDemand PDF Download:
List Price: $37.50


In this paper, the authors employed machine learning techniques, specifically, Back propagation trained neural network (BPNN), Group method of data handling (GMDH), Counter propagation neural network (CPNN), Dynamic evolving neuro–fuzzy inference system (DENFIS), Genetic Programming (GP), TreeNet, statistical multiple linear regression (MLR), and multivariate adaptive regression splines (MARS), to accurately forecast software reliability. Their effectiveness is demonstrated on three datasets taken from literature, where performance is compared in terms of normalized root mean square error (NRMSE) obtained in the test set. From rigorous experiments conducted, it was observed that GP outperformed all techniques in all datasets, with GMDH coming a close second.
Chapter Preview


Software reliability engineering has become a vital skill for both the software manager and software engineer. The software engineering knowledge is also important to managers and engineers of software oriented products and to users of the products. The primary objective of software reliability engineering is to help the engineer, manager, or users to make more precise decisions. The secondary objective is to make everyone more concretely aware of software reliability by focusing attention on it. Better decisions can save money on a project or during the life cycle of a piece of software in many ways. In general, the total savings can be more than 10 times greater than the cost of applying these ideas (Musa, 1998).

Reliability is probably the most important of the characteristics inherent in the concept “software quality”. Software reliability is defined as the probability that the software will work without failure for a specified period of time (Musa, 1998). Software reliability is an important factor which is related to defects and faults. It differs from hardware reliability in that it reflects the design perfection, rather than manufacturing perfection. The principal factors that affect software reliability are (i) fault introduction (ii) fault removal and (iii) the environment. Fault introduction depends primarily on the characteristics of the product and the development process. The characteristics of development process include software engineering technologies and tools used the level of experience of the personnel, volatility of requirements, and other factors. Failure discovery, in turn, depends on the extent to which the software has been executed and the operational profile. Because some of the foregoing factors are probabilistic in nature and operate over time, software reliability models have generally been formulated in terms of random processes in execution time.

In the past few years much research work has been carried out in software reliability and forecasting but no single model could capture software characteristics.

In this paper, we investigate the performance of some of the well known machine learning techniques in predicting software reliability. The rest of the paper is organized as follows. In Literature review section, a brief review of the works carried out in area of software reliability prediction is presented. In the next section, the various stand-alone machine learning techniques applied in this paper are briefly described. In the next section, the experimental design followed in this paper is presented. It is followed by a section that discusses the results obtained. Finally, the last section concludes the paper.

Complete Chapter List

Search this Book: