Metrics for assessing reliability of self-healing software systems. (March 2021) - Tarinejad, Ali; Izadkhah, Habib; Ardakani, Mohammadreza Mollahoseini; Mirzaie, Kamal
Abstract: Evaluating the reliability of component-based software systems from their architecture is of great importance. This paper proposes metrics to assess the reliability of software systems considering the self-healing effect of components on software reliability. A self-healing component when being broken, heals itself with a probability and returns to normal conditions. Because designing a self-healing component is complex and costly, it is not possible to add self-healing operations to all components. Identifying effective components on the overall reliability of a software system, for adding self-healing operations to them, especially in the early stages of Software Development Life Cycle (SDLC) can have a great impact on reliability. In the literature, considering design models, many methods are presented for assessing the reliability of the software systems, but there exists no method to evaluate the impact of self-healing on reliability and also to identify candidate components to perform self-healing. In this paper, first, using the Markov chain, a method for modeling the self-healing behavior of a component is proposed. Then, by different combinations of Taylor series expansion and self-healing, several metrics are proposed to evaluate the reliability of a software system. Finally, we will present relationships that help a software engineer to identify the influential and bottleneck components for self-healing.