An analytical model for estimating the reliability of critical software systems by considering the self-healing property of bottleneck components
Subject Areas : journal of Artificial Intelligence in Electrical EngineeringAli Tarinejad 1 , Habib Izadkhah 2 , Mohammad Reza MollaHosieni 3 , Kamal Mirzaie 4
1 - Ali Tarinezhad is Ph.D. student at the Department of Computer Engineering, Islamic Azad University, Maybod Branch, Iran.
2 - 29 Bahman
3 - Faculty of Computer Engineering Department, Meybod Branch, Islamic Azad University, Meybod, Iran
4 - Faculty of Computer Engineering Department, Meybod Branch, Islamic Azad University, Meybod, Iran
Keywords: Software architecture, software reliability, and Sensitivity Analysis, Discrete-time Markov chain, Self-healing component,
Abstract :
Architecture-based techniques for assessing the reliability of critical software systems have attracted a lot of attention in recent years. In order to prevent the failure of software systems in the final phases of development in critical software systems, we must apply the software reliability evaluation process to all stages of software development. Reliability evaluation of component-based critical software systems is very important in the early stages of software system development and from its architecture as one of the quality attributes of software systems. This article proposes a method to evaluate the reliability of critical software systems by considering the self-healing effect of bottleneck components. A self-healing component can automatically repair itself and return to a normal state when a failure occurs. Since the design of a self-healing component is a very complicated and costly task, it is not possible to create self-healing for all components. Therefore, identifying bottleneck components in order to self-repair them in the early stages of software development can have a great impact on reliability. Nowadays, several methods have been proposed based on design models to evaluate the reliability of software systems, but no report has been provided on the effect of self-repair on reliability and also finding components that have a great impact on software reliability in the early stages of software development. In this article, first, a method for modeling self-healing using the Markov chain will be proposed, and then four different methods (without -Taylor series - without self-healing, without Taylor series - with self-healing, with -Taylor series - without self-healing and with Taylor series - with self-healing) will be presented to evaluate the reliability of a software system based on its architecture. The relations proposed will enable a software engineer to identify the influential and bottleneck components for self-healing.