A Method for Considering Error Propagation in Reliability Estimation of Component-Based Software Systems
Department of Computer Science and Engineering, Graphic Era Deemed to be University, Dehradun, Uttarakhand, India.
Department of Computer Science and Engineering, Graphic Era Deemed to be University, Dehradun, Uttarakhand, India.
Department of Mathematics; Department of Computer Science and Engineering, Graphic Era Deemed to be University, Dehradun, Uttarakhand, India.
Received on September 29, 2018
Accepted on February 11, 2019
Component-based software engineering has proved itself as a strong pillar in software engineering community. Large number of factors are involved in the success of software product developed using Component-based software engineering, for instance, security, reliability, quality, safety, and testability. As the component-based software is made up of large number of components put together, therefore components’ reliability influence the reliability of the complete software. Numerous models and principles have been established to estimate the reliability of software by applying information regarding architecture, quality and security attributes of the software. Many researchers overlooked a major factor while estimating reliability of component-based software and that is error-propagation. Although it can be a case that the components are not dependent on each other and they are supplemented with the wrappers. However it is not true for many component-based applications. In this paper, a framework for reliability estimation has been proposed. In our proposal we have considered error propagation. We have analyzed the program structure and also presented how they are handled in estimation process. Further sensitivity analysis is done to identify the most sensitive component of the system. A numerical simulation is also presented for better understanding of the proposed framework.
Keywords- Component-based software, Reliability estimation, Error propagation, Path-based model, Transition probability, Sensitivity analysis.
Malik, P., Nautiyal, L., & Ram, M. (2019). A Method for Considering Error Propagation in Reliability Estimation of Component-Based Software Systems. International Journal of Mathematical, Engineering and Management Sciences, 4(3), 635-653. https://dx.doi.org/10.33889/IJMEMS.2019.4.3-051.
Conflict of Interest
The author(s) confirm that this article contents have no conflict of interest.
The authors would like to express their sincere thanks to the referee and for their valuable suggestions towards to the improvement of the paper.
Abdelmoez, W., Nassar, D.M., Shereshevsky, M., Gradetsky, N., Gunnalan, R., Ammar, H.H., Yu, B, & Mili, A. (2004, September). Error propagation in software architectures. In Software Metrics, 2004. Proceedings. 10th International Symposium on (pp. 384-393). IEEE.
Almering, V., van Genuchten, M., Cloudt, G., & Sonnemans, P.J. (2007). Using software reliability growth models in practice. IEEE Software, 24(6), 82-88
Brosch, F., Koziolek, H., Buhnova, B., & Reussner, R. (2012). Architecture-based reliability prediction with the palladio component model. IEEE Transactions on Software Engineering, 38(6), 1319-1339.
Chen, M.H., Lyu, M.R., & Wong, W.E. (2001). Effect of code coverage on software reliability measurement. IEEE Transactions on Reliability, 50(2), 165-170.
Cheung, L., Roshandel, R., Medvidovic, N., & Golubchik, L. (2008). Early prediction of software component reliability. In Proceedings of the 13th International Conference on Software Engineering - ICSE ’08 (p. 111-120). Leipzig, Germany: ACM Press.
Cheung, R.C. (1980). A user-oriented software reliability model. IEEE Transactions on Software Engineering, SE-6(2), 118–125.
Cortellessa, V., & Grassi, V. (2007). A modeling approach to analyze the impact of error propagation on reliability of component-based systems. In Schmidt, H.W., Crnkovic, I., Heineman, G.T. & Stafford, J.A. (Eds.), Component-based software engineering (pp. 140–156). Springer Berlin Heidelberg.
Cortellessa, V., Singh, H., & Cukic, B. (2002). Early reliability assessment of UML based software models. In Proceedings of the 3rd International Workshop on Software and Performance (pp. 302–309). New York, NY, USA: ACM.
D‟Souza D.F., & Wills A.C. (1997). Objects, components, and frameworks with UML: the catalysis(SM) approach. Addison-Wesley. Retrieved from https://www.pearson.com/us/higher-education/program/D-Souza-Objects-Components-and-Frameworks-with-UML-The-Catalysis-SM-Approach/PGM93470.html
Dubey, S.K., Singh, S., & Chaudhary, H. (2017). Evaluation of reliability of critical software system using fuzzy approach. International Journal of System Assurance Engineering and Management, 8(2), 1327–1335.
Filieri, A., Ghezzi, C., Grassi, V., & Mirandola, R. (2010). Reliability analysis of component-based systems with multiple failure modes. In Grunske, L., Reussner, R. & Plasil, F. (Eds.), Component-Based Software Engineering (pp. 1–20). Springer Berlin Heidelberg.
Garg, N., Nautiyal, L., & Preeti. (2016). Limiting the reliability of component based software system. International Journal of Computer Science Engineering, 5(5), 216–224.
Gokhale, S.S. (2007). Architecture-based software reliability analysis: overview and limitations. IEEE Transactions on Dependable and Secure Computing, 4(1), 32–40.
Gokhale, S.S., & Trivedi, K.S. (1997). Structure-based software reliability prediction. In In Proc. of Fifth Intl. Conference on Advanced Computing (ADCOMP ’97 (pp. 447–452), Chennai, India.
Gokhale, S.S., Wong, W.E., Trivedi, K.S., & Horgan, J.R. (1998, September). An analytical approach to architecture-based software reliability prediction. In Computer Performance and Dependability Symposium, 1998. IPDS'98. Proceedings. IEEE International (pp. 13-22). IEEE.
Goševa-Popstojanova, K., & Trivedi, K.S. (2001). Architecture-based approach to reliability assessment of software systems. Performance Evaluation, 45(2-3), 179-204.
Goseva-Popstojanova, K., Hassan, A., Guedem, A., Abdelmoez, W., Nassar, D.E.M., Ammar, H., & Mili, A. (2003). Architectural-level risk analysis using UML. IEEE Transactions on Software Engineering, 29(10), 946-960.
Grassi, V. (2005). Architecture-based reliability prediction for service-oriented computing. In de Lemos, R., Gacek, C., & Romanovsky, A. (Eds.), Architecting Dependable Systems III (pp. 279–299). Springer Berlin Heidelberg.
Heineman, G.T., & Councill, W.T. (Eds.). (2001). Component-based software engineering: putting the pieces together. Boston, MA, USA: Addison-Wesley Longman Publishing Co., Inc.
Hiller, M., Jhumka, A., & Suri, N. (2004). EPIC: profiling the propagation and effect of data errors in software. IEEE Transactions on Computers, 53(5), 512–530.
Huang, C.Y., Lyu, M.R., & Kuo, S.Y. (2003). A unified scheme of some nonhomogenous poisson process models for software reliability estimation. IEEE Transactions on Software Engineering, 29(3), 261-269.
Huang, C.-Y., & Lin, C.-T. (2006). Software reliability analysis by considering fault dependency and debugging time lag. IEEE Transactions on Reliability, 55(3), 436–450.
Immonen, A., & Niemelä, E. (2007). Survey of reliability and availability prediction methods from the viewpoint of software architecture. Software & Systems Modeling, 7(1), 49.
Jorgensen, P.C. (2008). Software testing: a Craftsman’s approach, Third Edition (3rd ed.). Auerbach. Retrieved from https://www.crcpress.com/Software-Testing-A-Craftsmans-Approach-Third-Edition/Jorgensen/p/book/9781439889510.
Krishnamurthy, S., & Mathur, A.P. (1997, November). On the estimation of reliability of a software system using reliabilities of its components. In Software Reliability Engineering, 1997. Proceedings., The Eighth International Symposium on (pp. 146-155). IEEE.
Lau, K.K., Ornaghi, M., & Wang, Z. (2005, November). A software component model and its preliminary formalisation. In International Symposium on Formal Methods for Components and Objects (pp. 1-21). Springer, Berlin, Heidelberg.
Lil, M., Wei, Y., Desovski, D., Nejad, H., Ghose, S., Cukic, B., & Smidts, C. (2004, November). Validation of a methodology for assessing software reliability. In Software Reliability Engineering, 2004. ISSRE 2004. 15th International Symposium on (pp. 66-76). IEEE.
Lipton, M.W., & Gokhale, S.S. (2008). Heuristic component placement for maximizing software reliability. In H. Pham (Ed.), Recent Advances in Reliability and Quality in Design (pp. 309–330). London: Springer London.
Littlewood, B. (1979). Software reliability model for modular program structure. IEEE Transactions on Reliability, R-28(3), 241–246.
Lo, J.H., Huang, C.Y., Kuo, S.Y., & Lyu, M.R. (2003, November). Sensitivity analysis of software reliability for component-based software applications. In Computer Software and Applications Conference, 2003. COMPSAC 2003. Proceedings. 27th Annual International (pp. 500-505). IEEE.
Lyu, M. R. (1996). Handbook of software reliability engineering (Vol. 222). CA: IEEE Computer Society Press. New York: McGraw-Hill.
Malaiya, Y.K., Li, M.N., Bieman, J.M., & Karcich, R. (2002). Software reliability growth with test coverage. IEEE Transactions on Reliability, 51(4), 420–426.
Meyer, B. (2003). The grand challenge of trusted components. In Proceedings of the 25th International Conference on Software Engineering (pp. 660–667). Washington, DC, USA: IEEE Computer Society.
Misra, K.B., & Sharma, U. (1991). An efficient algorithm to solve integer-programming problems arising in system-reliability design. IEEE Transactions on Reliability, 40(1), 81-91.
Mohamed, A., & Zulkernine, M. (2008, August). On failure propagation in component-based software systems. In The Eighth International Conference on Quality Software (pp. 402-411). IEEE.
Musa, J.D., Iannino, A., & Okumoto, K. (1987). Software reliability: measurement, prediction, application. New York, NY, USA: McGraw-Hill, Inc.
Myers, G.J., Sandler, C., & Badgett, T. (2011). The art of software testing. John Wiley & Sons.
Nassar, D.M., Rabie, W.A., Shereshevsky, M., Gradetsky, N., Ammar, H.H., Yu, B., Bogazzi, S., & Mili, A. (2002). Estimating error propagation probabilities in software architectures1. College of Computer Science, New Jersey Institute of Technology.
National Security Agency. (2003). Requirement specification for personnel access control system.
Nautiyal, L., Gupta, N., & Dimri, S.C. (2014). Measurement of the reliability of a component-based development using a path-based approach. ACM SIGSOFT Software Engineering Notes, 39(6), 1-5.
Nautiyal, L., Gupta, N., & Dimri, S.C. (2013). A new path based reliability approach for estimation of reliability of component based software development. International Journal of Computer Science Engineering, 2(6), 295–299.
Pasquini, A., Crespo, A.N., & Matrella, P. (1996). Sensitivity of reliability-growth models to operational profile errors vs. testing accuracy [software testing]. IEEE Transactions on Reliability, 45(4), 531-540.
Pham, H. (2006). System software reliability. Berlin: Spriner-Verlag. Online ISBN 978-1-84628-295-9.
Pham, T.T., & Defago, X. (2013, September). Reliability prediction for component-based software systems with architectural-level fault tolerance mechanisms. In Availability, Reliability and Security (ARES), 2013 Eighth International Conference on (pp. 11-20). IEEE.
Popic, P., Desovski, D., Abdelmoez, W., & Cukic, B. (2005, November). Error propagation in the reliability analysis of component based systems. In Software reliability engineering, 2005. ISSRE 2005. 16th IEEE international symposium on (pp. 10-pp). IEEE.
Reussner, R.H., Schmidt, H.W., & Poernomo, I.H. (2003). Reliability prediction for component-based software architectures. Journal of Systems and Software, 66(3), 241–252.
Rodrigues, G., Rosenblum, D., & Uchitel, S. (2005). Using scenarios to predict the reliability of concurrent component-based software systems. In M. Cerioli (Ed.), Fundamental Approaches to Software Engineering (pp. 111–126). Springer Berlin Heidelberg.
Sato, N., & Trivedi, K.S. (2007, July). Accurate and efficient stochastic reliability analysis of composite services using their compact Markov reward model representations. In Services Computing, 2007. SCC 2007. IEEE International Conference on (pp. 114-121). IEEE.
Schneidewind, N. (2009). Integrating testing with reliability. Software Testing, Verification and Reliability, 19(3), 175–198.
Schneidewind, N.F., & Keller, T.W. (1992). Applying reliability models to the space shuttle. IEEE Software, 9(4), 28–33.
Sharma, V.S., & Trivedi, K.S. (2007). Quantifying software performance, reliability and security: An architecture-based approach. Journal of Systems and Software, 80(4), 493–509.
Shooman, M.L. (1973). Operational testing and software reliability estimation during program development. In IEEE Symposium Computer Software Reliability, pp. 51-57.
Singh, H., Cortellessa, V., Cukic, B., Gunel, E., & Bharadwaj, V. (2001, November). A Bayesian approach to reliability prediction and assessment of component based systems. In Proceedings 12th International Symposium on Software Reliability Engineering, Hong Kong, China, 2001, pp. 12-21). IEEE.
Sitaraman, M. & Weide, B.W. (1994). Special feature component-based software using RESOLVE. ACM SIGSOFT Software Engineering Notes, 19(5), 21–67.
Tian, J., Rudraraju, S., & Li, Z. (2004). Evaluating web software reliability based on workload and failure data extracted from server logs. IEEE Transactions on Software Engineering, 30(11), 754-769.
Voas, J. (1997). Error propagation analysis for COTS systems. Computing Control Engineering Journal, 8(6), 269–272.
Wang, W.L., Wu, Y., & Chen, M.H. (1999). An architecture-based software reliability model. In Dependable Computing, 1999. Proceedings. 1999 Pacific Rim International Symposium on (pp. 143-150). IEEE.
Xie, M. (1991). Software reliability modelling. Vol. 1, World Scientific, Singapore.
Yacoub, S., Cukic, B., & Ammar, H.H. (2004). A scenario-based reliability analysis approach for component-based software. IEEE Transactions on Reliability, 53(4), 465-480.
Zheng, Z., & Lyu, M.R. (2010, May). Collaborative reliability prediction of service-oriented systems. In Software Engineering, 2010 ACM/IEEE 32nd International Conference on (Vol. 1, pp. 35-44). IEEE.