Using Bayesian networks to predict software defects and reliability

This paper reviews the use of Bayesian networks (BNs) in predicting software defects and software reliability. The approach allows analysts to incorporate causal process factors as well as combine qualitative and quantitative measures, hence overcoming some of the well-known limitations of traditional software metrics methods. The approach has been used and reported on by organizations such as Motorola, Siemens, and Philips. However, one of the impediments to more widespread use of BNs for this type of application was that, traditionally, BN tools and algorithms suffered from an obvious ‘Achilles’ heel’ – they were not able to handle continuous nodes properly, if at all. This forced modellers to have to predefine discretization intervals in advance and resulted in inaccurate predictions where the range, for example, of defect counts was large. Fortunately, recent advances in BN algorithms now make it possible to perform inference in BNs with continuous nodes, without the need to prespecify discretization levels. Using such ‘dynamic discretization’ algorithms results in significantly improved accuracy for defects and reliability prediction type models.

[1]  William Marsh,et al.  Predicting software defects in varying development lifecycles using Bayesian nets , 2007, Inf. Softw. Technol..

[2]  Jean-Jacques Gras End-to-End Defect Modeling , 2004, IEEE Softw..

[3]  Avi Pfeffer,et al.  Object-Oriented Bayesian Networks , 1997, UAI.

[4]  Jean-Jacques Gras,et al.  Improving fault prediction using Bayesian networks for the development of embedded software applications: Research Articles , 2006 .

[5]  John H R May,et al.  Integrity prediction during software development , 1992 .

[6]  Michael Dyer The Cleanroom Approach to Quality Software Development , 1992, Int. CMG Conference.

[7]  Bev Littlewood,et al.  Bayesian belief networks for safety assessment of computer-based systems , 2000 .

[8]  Daphne Koller,et al.  Nonuniform Dynamic Discretization in Hybrid Networks , 1997, UAI.

[9]  Martin Neil,et al.  Inference in hybrid Bayesian networks using dynamic discretization , 2007, Stat. Comput..

[10]  Gregory F. Cooper,et al.  The Computational Complexity of Probabilistic Inference Using Bayesian Belief Networks , 1990, Artif. Intell..

[11]  Gustav Dahll,et al.  Combining disparate sources of information in the safety assessment of software-based systems , 2000 .

[12]  Norman E. Fenton,et al.  Using Ranked Nodes to Model Qualitative Judgments in Bayesian Networks , 2007, IEEE Transactions on Knowledge and Data Engineering.

[13]  Pierre-Henri Wuillemin,et al.  Top-Down Construction and Repetetive Structures Representation in Bayesian Networks , 2000, FLAIRS.

[14]  Norman E. Fenton,et al.  Improved Bayesian Networks for Software Project Risk Assessment Using Dynamic Discretisation , 2006, SET.

[15]  Debra J. Richardson,et al.  Bayesian-network Confirmation of Software Testing Uncertainties , 1997 .

[16]  Chin-Feng Fan,et al.  BBN-based software project risk management , 2004, J. Syst. Softw..

[17]  Norman E. Fenton,et al.  A Critique of Software Defect Prediction Models , 1999, IEEE Trans. Software Eng..

[18]  Jean-Jacques Gras,et al.  Improving fault prediction using Bayesian networks for the development of embedded software applications , 2006, Softw. Test. Verification Reliab..

[19]  Ioannis Stamelos,et al.  Software Process Modeling with Bayesian Belief Networks , 2004 .

[20]  D. Marquez A new Bayesian Network approach to Reliability modelling , 2007 .

[21]  Fei Peng,et al.  Software Project Level Estimation Model Framework based on Bayesian Belief Networks , 2006, 2006 Sixth International Conference on Quality Software (QSIC'06).

[22]  Martin Neil,et al.  Building large-scale Bayesian networks , 2000, The Knowledge Engineering Review.

[23]  Norman E. Fenton,et al.  Software Measurement: Uncertainty and Causal Modeling , 2002, IEEE Softw..

[24]  Norman E. Fenton,et al.  Quantitative Analysis of Faults and Failures in a Complex Software System , 2000, IEEE Trans. Software Eng..