Reliability prediction for component-based software systems: Dealing with concurrent and propagating errors
One of the most important quality attributes of a software system beyond its functional attributes is its reliability. Techniques for predicting reliability of a software system based on the design models can help software architects in evaluating the impact of their design decisions on the system reliability. This can help to make the system more reliable and avoid costs for fixing the implementation. However, existing reliability prediction approaches for component-based software systems are limited in their applicability because they either neglect or do not support modeling explicitly several factors which influence the system reliability: (i) error propagation, (ii) software fault tolerance mechanisms, and (iii) concurrently present errors. In this paper, we present a reliability modeling and prediction approach for component-based software systems that considers explicitly these reliability-relevant factors. Our approach offers a reliability modeling schema whose models are automatically transformed by our reliability prediction tool into Markov models for reliability predictions and sensitivity analyses. We evaluate our approach in two case studies with reliability predictions and sensitivity analyses. Via these two case studies, we demonstrate its applicability in supporting design decisions.
component-based software systems error propagation software fault tolerance mechanisms concurrently present errors reliability modeling and prediction