A technique for early prediction of software reliability based on design metrics

In the early stages of development, it is difficult to quantitatively assess the reliability of a software product. In this context, we propose a bottom-up approach to predict the reliability of an object-oriented software from its product metrics gathered during the architectural design stage. A fault model is constructed to categorize different kinds of faults that can occur in the components making up the software product. Subsequently, the product metrics collected during the software design phase are used to estimate the expected number of different kinds of faults that may occur in a component. Eventually, these estimated values of the different kinds of faults are used to predict the expected values of the total number of faults present in the component. We use the estimated fault content of the component and the number of tests that will be performed over the component, to predict reliability of the component. We adopt a probabilistic approach, Bayesian Belief Network, for reliability prediction of the components from product metrics. Based on predicted reliabilities and usage frequencies of the components, the reliability of a system is predicted. The applicability of our proposed model is illustrated through a case study. Moreover, we performed a set of experiments and also compared our approach with an established approach reported in the literature to investigate the accuracy of our approach. Analysis of the results from our experiments suggests that our approach yields reasonably accurate result.

[1]  Stéphane Ducasse,et al.  Object-Oriented Metrics in Practice , 2005 .

[2]  Swapna S. Gokhale,et al.  Reliability prediction and sensitivity analysis based on software architecture , 2002, 13th International Symposium on Software Reliability Engineering, 2002. Proceedings..

[3]  Carl G. Davis,et al.  A Hierarchical Model for Object-Oriented Design Quality Assessment , 2002, IEEE Trans. Software Eng..

[4]  Michael Luby,et al.  Approximating Probabilistic Inference in Bayesian Belief Networks is NP-Hard , 1993, Artif. Intell..

[5]  Changhe Yuan,et al.  Generalized Evidence Pre-propagated Importance Sampling for Hybrid Bayesian Networks , 2007, AAAI.

[6]  Shigeru Yamada,et al.  Integrable difference equations for software reliability assessment and their applications , 2010, Int. J. Syst. Assur. Eng. Manag..

[7]  Vincenzo Grassi,et al.  A Modeling Approach to Analyze the Impact of Error Propagation on Reliability of Component-Based Systems , 2007, CBSE.

[8]  Hany H. Ammar,et al.  Error propagation in software architectures , 2004 .

[9]  R. Martin Chavez,et al.  Approximating Probabilistic Inference in Bayesian Belief Networks , 1993, IEEE Trans. Pattern Anal. Mach. Intell..

[10]  A. Jefferson Offutt,et al.  A fault model for subtype inheritance and polymorphism , 2001, Proceedings 12th International Symposium on Software Reliability Engineering.

[11]  James A McCall,et al.  Software Reliability, Measurement, and Testing Software Reliability and Test Integration , 1992 .

[12]  Kai-Yuan Cai,et al.  Does software reliability growth behavior follow a non-homogeneous Poisson process , 2008, Inf. Softw. Technol..

[13]  Yann-Gaël Guéhéneuc,et al.  Quantitative Approaches in Object-Oriented Software Engineering , 2008, ECOOP Workshops.

[14]  Rajib Mall,et al.  An approach for early prediction of software reliability , 2010, SOEN.

[15]  John D. Musa,et al.  Operational profiles in software-reliability engineering , 1993, IEEE Software.

[16]  Chin-Yu Huang,et al.  Performance analysis of software reliability growth models with testing-effort and change-point , 2005, J. Syst. Softw..

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

[18]  Rajib Mall,et al.  Early stage software reliability and design assessment , 2005, 12th Asia-Pacific Software Engineering Conference (APSEC'05).

[19]  Arvinder Kaur,et al.  Empirical validation of object-oriented metrics for predicting fault proneness at different severity levels using support vector machines , 2010, Int. J. Syst. Assur. Eng. Manag..

[20]  Nenad Medvidovic,et al.  Early prediction of software component reliability , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[21]  Judea Pearl,et al.  Probabilistic reasoning in intelligent systems - networks of plausible inference , 1991, Morgan Kaufmann series in representation and reasoning.

[22]  Robert V. Binder,et al.  Testing object‐oriented software: a survey , 1996 .

[23]  Bojan Cukic,et al.  Early reliability assessment of UML based software models , 2002, WOSP '02.

[24]  David J. Spiegelhalter,et al.  Local computations with probabilities on graphical structures and their application to expert systems , 1990 .

[25]  Letha H. Etzkorn,et al.  Empirical Validation of Three Software Metrics Suites to Predict Fault-Proneness of Object-Oriented Classes Developed Using Highly Iterative or Agile Software Development Processes , 2007, IEEE Transactions on Software Engineering.

[26]  Chenggang Bai,et al.  Software failure prediction based on a Markov Bayesian network model , 2005, J. Syst. Softw..

[27]  Hany H. Ammar,et al.  Scenario-based reliability analysis of component-based software , 1999, Proceedings 10th International Symposium on Software Reliability Engineering (Cat. No.PR00443).

[28]  Mohammad Zulkernine,et al.  On Failure Propagation in Component-Based Software Systems , 2008, 2008 The Eighth International Conference on Quality Software.

[29]  Chris F. Kemerer,et al.  A Metrics Suite for Object Oriented Design , 2015, IEEE Trans. Software Eng..

[30]  Ralf H. Reussner,et al.  Reliability prediction for component-based software architectures , 2003, J. Syst. Softw..

[31]  Peter G. Bishop,et al.  Rescaling reliability bounds for a new operational profile , 2002, ISSTA '02.