Abstract
Component-based software engineering emphasizes ‘development by means of reuse’ and ‘development meant for reuse’. Whether the system is simple or complex one, the estimation of better reliability remains a crucial concern. The main purpose of this work is to propose a method for reliability estimation and the computation of execution time of component-based software. In this work a metric named ‘reusability-ratio’ is introduced as a factor of reliability estimation. We focus on assessing and exploring reusability of components by defining reusability-ratio for newly developed, mutated (fully-qualified as well as partially-qualified) and off-the-shelf components. On the basis of interactions among components, one more metric is defined called ‘Interaction-ratio’. Interaction-ratio is used as another factor of reliability estimation. Based on the interactions made by components, a graph is constructed, namely ‘Component-Interaction Graph’. The structure of the component-interaction graph depends on the probability of interaction of components as well as the probability of the selection of different path execution-histories. Results obtained through experimental case study conclude that the reusability compete imperative function in the reliability of the component-based applications. Pre-tested, qualified and pre-configured artefacts consume lesser time and are more reliable as compared to the new component constructs. Metrics proposed in this work are well suited to estimate the reliability of component-based software and therefore proved promising to analyze the performance of the software.
Similar content being viewed by others
References
Albrecht A, Gaffney JE (1983) Software function source line of code and development effort prediction: a software science validation. IEEE Trans Softw Eng 9:639–648
Basili VR (2001) Cots-based systems top 10 lists. IEEE Comput 34(5):91–93
Bass L, Clements P, Kazman R (1999) Software architecture in practice. Addison-Wesley, Boston
Behera RK, Shukla S, Santanu Kumar Rath SK, Misra S (2018) Software reliability assessment using machine learning technique. In: ICCSA, LNCS 10964, 2018, pp 403–411
Bennatan EM (1992) Software project management: a practitioner’s approach. McGraw-Hill, New York
Brown JR, Lipow M (1975) Testing for software reliability. In: Proceedings of 1st international conference on reliable software, Los Angeles, California, USA, pp 518–527
Capretz LY (2005) A new component-based software life cycle model. J Comput Sci 1(1):76–78
Chen J (2011) Complexity metrics for component-based software systems. International Journal of Digital Content Technology and its Applications 5(3):235–244
Cheung R (1980) User-oriented software reliability model. IEEE Trans Softw Eng 6(2):118–125
Dimri SC, Tiwari UK, Ram M (2019) Reliability estimation of component based software system with path based model. Nonlinear Stud 26(2):313–325
Eusgeld F, Freiling C, Reussner R (2008) Dependability metrics. LNCS 4909. Springer, Berlin, pp 104–125
Everett W (1999) Software component reliability analysis. In: Proceedings of IEEE symposium. application-specific systems and software engineering & technology (ASSET’99), Richardson, Texas, March 1999, pp 204–211
Farr W (1996) Software reliability modeling survey. Handbook of Software Reliability Engineering. McGraw Hill, New York, pp 71–117
Goel AL (1985) Software reliability models: assumptions, limitations and applicability. IEEE Trans Softw Eng 11(12):1411–1423
Gokhale S, Lyu M, Trivedi K (1998) Reliability simulation of component based software systems. In: Proceedings of 9th international symposium on software reliability engineering (ISSRE Nov 98), Paderborn, Germany, 1998, pp 192–201
Goševa-Popstojanova K, Trivedi KS (2001) Architecture-based approach to reliability assessment of software systems. Perform Eval 45(2–3):179–204
Henry S, Kafura K (1981) Software structure metrics based on information flow. IEEE Trans Softw Eng 7(5):510–518
IEEE Standard 610 (1990) Glossary of software engineering terminology. IEEE Standard 610. 12-1990, New York
John M (1998) Software reliability engineering. McGraw-Hill, New York
Kopetz H (1982) The failure fault (FF) model. In: Digest of papers FTCS-12, IEEE, 1982, pp 14–17
Krishnamurthy S, Mathur AP (1997) On the estimation of reliability of a software system using reliabilities of its components. In: Proceedings of 8th international symposium on software reliability engineering (ISSRE’97), Albuquerque, New Mexico, pp 146–155
Kubat P (1989) Assessing reliability of modular software. Oper Res Lett 8:35–41
Kumari U, Bhasin S (2011) A composite complexity measure for component-based systems. ACM SIGSOFT Softw Eng Notes 36(6):1–5
Li Q, Pham H (2017) NHPP software reliability model considering the uncertainty of operating environments with imperfect debugging and testing coverage. Appl Math Model 51:68–85
Littlewood B (1975) A reliability model for systems with markov structure. Appl Stat 24(2):172–177
Littlewood B, Strigini L (1993) Validation of ultra-high dependability for software-based systems. Commun ACM 36(11):69–80
Lyu MR (1996) Handbook of software reliability engineering. IEEE Computer Society Press, McGraw-Hill, New York
Malaiya YK, Li MN, Bieman JM, Karcich R (2002) Software reliability growth with test coverage. IEEE Trans Reliabil 51(4):420–426
Misra KB (1992) Reliability analysis and prediction. Elsevier, Amsterdam
Park J, Baik J (2015) Improving software reliability prediction through multi-criteria based dynamic model selection and combination. J Syst Softw 101:236–244
Ramamoorthy CV, Bastani FB (1982) Software reliability-status and perspectives. IEEE Trans Softw Eng 8(4):354–371
Sanyal S, Shah V, Bhattacharya S (1997) Framework of a software reliability engineering tool. In: Proceedings of IEEE high-assurance systems engineering workshop (HASE’97), Washington, DC, 1997, pp 114–119
Shaw M, Garlan D (1996) Software architectures: perspectives on an emerging discipline. Prentice Hall, Upper Saddle River
Shepperd M (1988) A critique of cyclomatic complexity as software metric. Softw Eng J 3(2):30–36
Shooman M (1997) Structural models for software reliability prediction. In: Proceedings of 2nd international conference on software engineering, San Francisco, CA, 1997, pp 268–280
Singh H, Cortellessa, Cukic B, Gunel E, Bharadwaj V (2001) A Bayesian approach to reliability prediction and assessment of component based systems. In: 12th IEEE international symposium on software reliability engineering, Hong Kong, Nov. 2001, pp. 12–21
Thayer TA, Lipow M, Nelson EC (1976) Software reliability study report. TADC-TR-76-238
Tiwari U, Kumar S (2014) Cyclomatic complexity for component based software. ACM SIGSOFT Softw Eng Notes 39(1):1–6
Vitharana P (2003) Design retrieval and assembly in component-based software development. Commun ACM 46(11):97–102
Xie M, Wohlin C (1995) An additive reliability model for the analysis of modular software failure data. In: Proceedings of 6th international symposium on software reliability engineering (ISSRE’95), 1995, pp 188–194
Yacoub S, Cukic B, Ammar H (2004) A scenario-based reliability analysis approach for component based software. IEEE Trans Reliabil 53(4):465–480
Author information
Authors and Affiliations
Corresponding author
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
About this article
Cite this article
Tiwari, U.K., Kumar, S. & Matta, P. Execution-history based reliability estimation for component-based software: considering reusability-ratio and interaction-ratio. Int J Syst Assur Eng Manag 11, 1003–1019 (2020). https://doi.org/10.1007/s13198-020-01035-1
Received:
Revised:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s13198-020-01035-1