Abstract
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.
Similar content being viewed by others
References
Abdelmoez W, Nassar DM, Shereshevsky M, Gradetsky N, Gunnalan R, Ammar HH, Yu B, Mili A (2004) Error propagation in software architectures. In: METRICS ’04: proceedings of 10th international symposium on the software metrics. IEEE Computer Society, Washington, DC, pp 384–393
Abreu FBE, Henderson-Sellers B, Piattini M, Poels G, Sahraoui HA (2002) Quantitative approaches in object-oriented software engineering. In: ECOOP ’01: proceedings of the workshops on object-oriented technology. London, UK, Springer-Verlag, pp 174–183
Bai CG, Hu QP, Xie M, Ng SH (2005) Software failure prediction based on a Markov Bayesian network model. J Syst Softw 74(3):275–282
Bansiya J, Davis CG (2002) A hierarchical model for object-oriented design quality assessment. IEEE Trans Softw Eng 28(1):4–17
Binder RV (1996) Testing object-oriented software: a survey. Softw Test Verif Reliab 6(3–4):125–252
Bishop PG (2002) Rescaling reliability bounds for a new operational profile. In: ISSTA ’02: proceedings of the 2002 ACM SIGSOFT international symposium on software testing and analysis. ACM, New York, pp 180–190
Cai KY, Hu DB, Bai CG, Hu H, Jing T (2008) Does software reliability growth behavior follow a non-homogeneous poisson process. Inf Softw Technol 50(12):1232–1247
Cheung L, Roshandel R, Medvidovic N, Golubchik L (2008) Early prediction of software component reliability. In: ICSE ’08: proceedings of the 30th international conference on software engineering. ACM, New York, pp 111–120
Chidamber SR, Kemerer CF (1994) A metrics suite for object oriented design. IEEE Trans Softw Eng 20(6):476–493
Cortellessa V, Grassi V (2007) A modeling approach to analyze the impact of error propagation on reliability of component-based systems. In: CBSE ’07: proceedings of the 10th international conference on component-based software engineering. Springer, Berlin, pp 140–156
Cortellessa V, Singh H, Cukic B (2002) Early reliability assessment of UML based software models. In: WOSP ’02: proceedings of the 3rd international workshop on Software and performance. ACM, New York, NY, USA, pp. 302–309
Dagum P, Chavez RM (1993) Approximating probabilistic inference in Bayesian belief networks. IEEE Trans Pattern Anal Mach Intell 15:246–255
Fenton NE, Neil M (1999) A critique of software defect prediction models. IEEE Trans Softw Eng 25(5):675–689
Genero M, Miranda D, Piattini M (2002) Defining and validating metrics for UML statechart diagrams. In: QAOOSE ’02: 6th international ECOOP workshop on quantitative approaches in object-oriented software engineering, pp 120–136
Gokhale SS, Trivedi KS (2002) Reliability prediction and sensitivity analysis based on software architecture. In: ISSRE ’02: proceedings of the 13th international symposium on software reliability engineering. IEEE Computer Society, Washington, DC, pp 64–75
Huang CY (2005) Performance analysis of software reliability growth models with testing-effort and change-point. J Syst Softw 76(2):181–194
Inoue S, Yamada S (2010) Integrable difference equations for software reliability assessment and their applications. Int J Syst Assur Eng Manag 1(1):5–10
Lanza M, Marinescu R, Ducasse S (2005) Object-oriented metrics in practice. Springer-Verlag New York, Inc., Secaucus
Lauritzen SL, Spiegelhalter DJ (1988) Local computations with probabilities on graphical structures and their application to expert systems. J R Stat Soc B (Methodol) 50(2):157–224
Magicdraw. Available at http://www.magicdraw.com/
Malhotra R, Kaur A, Singh Y (2010) 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
McCall JA, Randell W, Dunham J, Lauterbach L (1992) Software reliability, measurement, and testing software reliability and test integration. Tech. rep. Final Technical Report RL-TR-92-52, Rome Laboratory, Rome
Mohamed A, Zulkernine M (2008) On failure propagation in component-based software systems. In: QSIC ’08: proceedings of the 2008 the eighth international conference on quality software. IEEE Computer Society, Washington, DC, pp 402–411
Mohanta S, Vinod G, Ghosh AK, Mall R (2010) An approach for early prediction of software reliability. ACM SIGSOFT Softw Eng Notes 35(6):1–9
Musa J (1993) Operational profiles in software-reliability engineering. IEEE Softw 10(2):14–32
Netica. Available at http://www.norsys.com/
Offutt J, Alexander R, Wu Y, Xiao Q, Hutchinson C (2001) A fault model for subtype inheritance and polymorphism. In: ISSRE ’01: proceedings of the 12th international symposium on software reliability engineering. IEEE Computer Society, Washington, DC, pp 84–93
Olague HM, Etzkorn LH, Gholston S, Quattlebaum S (2007) Empirical validation of three software metrics suites to predict fault-proneness of object-oriented classes developed using highly iterative or agile software development processes. IEEE Trans Softw Eng 33(6):402–419
Paul D, Michael L (1993) Approximating probabilistic inference in bayesian belief networks is NP-hard. Artif Intell 60(1):141–153
Pearl J (1988) Probabilistic reasoning in intelligent systems: networks of plausible inference. Morgan Kaufmann Publishers, San Francisco
Reussner RH, Schmidt HW, Poernomo IH (2003) Reliability prediction for component-based software architectures. J Syst Softw 66(3):241–252
Tripathi R, Mall R (2005) Early stage software reliability and design assessment. In: APSEC ’05: proceedings of the 12th Asia-Pacific software engineering conference. IEEE Computer Society, Washington, DC, pp 619–628
Yacoub SM, Cukic B, Ammar HH (1999) Scenario-based reliability analysis of component-based software. In: ISSRE ’99: proceedings of the 10th international symposium on software reliability engineering. IEEE Computer Society, Washington, DC, pp 22–31
Yuan C, Druzdzel MJ (2007) Generalized evidence pre-propagated importance sampling for hybrid Bayesian networks. In: Proceedings of the 22nd national conference on artificial intelligence—vol 2. AAAI Press, Vancouver, pp 1296–1302
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Mohanta, S., Vinod, G. & Mall, R. A technique for early prediction of software reliability based on design metrics. Int J Syst Assur Eng Manag 2, 261–281 (2011). https://doi.org/10.1007/s13198-011-0078-1
Received:
Revised:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s13198-011-0078-1