Abstract
The applications of machine learning techniques have shown remarkable improvements for the prediction of software reliability than traditional statistical techniques. In this paper, we apply some well-known machine learning methods such as artificial neural networks, support vector machines, cascade correlation neural network, decision trees and fuzzy inference system to predict the reliability of a software product. The proposed models have been evaluated using mean absolute error, root mean squared error, correlation coefficient and precision. The 16 software life cycle databases have been used for empirical studies. These databases are extracted from data and analysis center for software. A comparative analysis is performed in order to determine the importance of each method to assess the capability of software reliability prediction models. We also observe that these models may use in reliability predictions and results may be more close to the reality and precision is very effective with varied real-life failure datasets. Finally we conclude that proposed approach is more precise in its prediction capacity having better capability of generalization.







Similar content being viewed by others
References
Aggarwal KK, Singh Y, Kaur A, Malhotra R (2006) Investigating the effect of coupling metrics on fault proneness in object-oriented systems. Softw Qual Prof 8(4):4–16
Aggarwal KK, Singh Y, Kaur A, Malhotra R (2009) Empirical analysis for investigating the effect of object-oriented metrics on fault proneness: a replicated case study. Softw Process Improv Pract 14(1):39–62
Chen KC, Shiang Y, Liang TZ (2008) A study of software reliability growth from the perspective of learning effects. Reliab Eng Syst Saf 93(10):1410–1421
Eduardo OC, Aurora TR, Silvia RV (2010) A genetic programming approach for software reliability modeling. IEEE Trans Reliab 59(1):222–230
Fawcett T (2006) An introduction to ROC analysis. Pattern Recognit Lett 27:861–874
Fei X, Ping G, Lyu MR (2005) A novel method for early software quality prediction based on support vector machine. In: Proceedings of the 16th IEEE international symposium on software reliability engineering (ISSRE’05), Beijing, China: 213–222
Goel AL, Okumoto K (1979) Time-dependent fault detection rate model for software and other performance measures. IEEE Trans Reliab 28(3):206–211
Goel B, Singh Y (2009) An empirical analysis of metrics. Softw Qual Prof 11(3):35–45
Han J, Kamber M (2006) Data mining: concepts and techniques. Morgan Kaufmann, India
Hanley J, McNeil BJ (1982) The meaning and use of the area under a receiver operating characteristic ROC curve. Radiology 143:29–36
Jung Hua L (2010) Predicting software reliability with support vector machines. In: Proceedings of 2nd international conference on computer research and development (ICCRD’10), Kuala Lumpur, Malaysia: 765-769
Kapur PK, Garg RB, Kumar S (1999) Contributions to hardware & software reliability. World Scientific, Singapore
Kapur PK, Gupta A, Jha PC, Goyal SK (2010) Software quality assurance using software reliability growth modelling: state of the art. Int J Bus Inf Syst 6(4):463–496
Kapur PK, Pham Hoang, Gupta A, Jha PC (2011) Software reliability assessment with OR applications. Springer, London
Karunanithi N, Whitley D, Malaiya Y (1992) Prediction of software reliability using connectionist models. IEEE Trans Softw Eng 18(7):563–574
Kohavi R (1995) The power of decision tables. In: The eighth european conference on machine learning (ECML-95), Heraklion, Greece, pp 174–189
Lawson J, Wesselman S, Craig W, Scott D (2003) Simple plots improve software reliability prediction models. Qual Eng 15(3):411–417
Littlewood B (1979) Software reliability model for modular structure. IEEE Trans Reliab 28(3):241–246
Lyu M (2005) Handbook of Software reliability engineering. TMH, India.
Malhotra R, Singh Y, Kaur A (2009) Comparative analysis of regression and machine learning methods for predicting fault proneness models. Int J Comput Appl Technol 35(2):183–193
Malhotra R, Kaur A, Singh Y (2011) Empirical validation of object-oriented metrics for predicting fault proneness at different severity levels using support vector machines. Int J Syst Assur Eng Manag 1(3):269–281. doi:10.1007/s13198-011-0048-7
Matlab fuzzy logic toolbox: tutorials on fuzzy inference system and ANFIS using MatLab. Available at http://www.mathworks.com. Accessed 14 Feb 2011
Mueller JA, Lemke F (1999) Self-organizing data mining: an intelligent approach to extract knowledge from data. Dresden, Berlin
Musa JD (1980) Software life cycle empirical/experience data, data & analysis center for software. Available at http://www.dacs.org. Accessed 17 Sep 2010
Musa JD (1998) More reliable, faster, cheaper testing with software reliability engineering. Softw Qual Prof 1(1):27–37
Musa JD (2005) Software reliability engineering: making solid progress. Softw Qual Prof 7(4):5–16
Norman F (1997) Application of software reliability engineering for NASA space shuttle. International Symposium on Software Reliability Engineering (ISSRE) 1:71–82
Ohba M (1984) Inflexion S-shaped software reliability growth models. Stochastic models in reliability theory. Springer, Berlin, pp 144–162
Pham H (2006) System software reliability. Springer, London
Phillip S (2003) DTReg predictive modeling software available at http://www.dtreg.com. Accessed 8 Jan 2011
Ping PF, Hong WC (2006) Software reliability forecasting by support vector machines with simulated annealing algorithms. J Syst Softw 79(6):747–755
Raj K, Ravi V (2008) Software reliability prediction using soft computing techniques. J Syst Softw 81:576–583. doi:10.1016/jss.2007.05.005
Ross Q (1993) C4.5: programs for machine learning. Morgan Kaufman, San Mateo
Scott E, Christian L (1991) The cascade-correlation learning architecture. Tech Rep. CMU-CS-90-100, School of computer science Carnegie Mellon University, Pittsburgh
Singh Y, Kumar P (2010a) A software reliability growth model for three-tier client–server system. Int J Comp Appl 1(13):9–16. doi:10.5120/289-451
Singh Y, Kumar P (2010b) Determination of software release instant of three-tier client server software system. Int J Softw Eng 1(3):51–62
Singh Y, Kumar P (2010c) Application of feed-forward networks for software reliability prediction. ACM SIGSOFT Softw Eng Notes 35(5):1–6
Singh Y, Kumar P (2010d) Prediction of software reliability using feed forward neural networks. In: Proceedings of computational intelligence and software engineering (CiSE’10), Wuhan, China: 1–5. doi:10.1109/CISE.2010.5677251
Vapnik V (1995) Nat Stat Learn Theory. Springer, New York
Weka: classification and regression software (2010). Available at http://www.cs.waikato.ac.nz. Accessed 17 Feb 2011
Witten IH, Frank E (2011) Data Mining: Practical machine learning tools and techniques with Java implementations, 3rd edn. Morgan Kaufman, Addison-Wesley, San Francisco
Xingguo L, Yanhua S (2007) An early prediction method of software reliability based on support vector machine. In: Proceedings international conference on wireless communications, networking and mobile computing (WiCom’07), Hefei: 6075–6078
Yang B, Xiang L (2007) A study on software reliability prediction based on support vector machines. In: Proceedings of international conference on industrial engineering and engineering management (IEEM’07), Singapore, 1176–1180
Acknowledgments
The authors wish to thank all anonymous reviewers for their valuable suggestions and useful comments.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Kumar, P., Singh, Y. An empirical study of software reliability prediction using machine learning techniques. Int J Syst Assur Eng Manag 3, 194–208 (2012). https://doi.org/10.1007/s13198-012-0123-8
Received:
Revised:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s13198-012-0123-8