# An Efficient Library for Reliability Block Diagram Evaluation
## 1 Introduction
### Context and Motivation  
Our aim is to support the layered approach presented in [28; 29], where RBDs are adopted to model major transitions of system structure (e.g., in a reconfiguration), while the finer modeling of the lower levels is based on STPNs and GSPNs. Our goal consists of the definition of a predictive diagnostics approach for the health assessment of complex systems. Specifically, we propose the usage of diagnostics data to estimate the reliability of basic components, leveraging the usage of a reliability hierarchical model to estimate the reliability curve of the system under analysis. By using this _tuned_ reliability curve, we can compute the probability of system failure in a given future time interval, thus implementing a predictive diagnostics system. This approach requires a frequent evaluation of the reliability curve, hence efficient tools to evaluate it are needed. Consider, for example, the system shown in Figure 1. The system has been subdivided into four statistically independent subsystems. The subsystems \(C_{1}\) and \(C_{2}\) model two identical power supplies in current sharing, \(C_{3}\) is the computing subsystem, while \(C_{4}\) is the acquisition subsystem. Each separate subsystem can then be modeled using an STPN/GSPN: in this example, all subsystems are modeled using GSPNs. The approach to the reliability analysis using this layered model is shown in Figure 2. The input data of this approach is the failure rate function \(\lambda(t)\) for each modeled component. By inserting the failure rates into the STPN/GSPN models, we can analyze the models and we obtain, for each modeled subsystem, its reliability curve. Please note that, by modifying  
Figure 1: Example of layered reliability model. the failure rate function \(\lambda(t)\) of at least one modeled component, we have an impact on its distribution of failures and, as a consequence, we produce a reliability curve of the modeled subsystem with a different shape. Furthermore, by varying both the failure rate functions and their parameters, it is possible to refine the model, hence considering the uncertainties of the model. Finally, by feeding the reliability curves of all subsystems into the RBD model, we can analyze the whole system and we obtain its reliability curve. Please note that the input data of this second phase are the reliability curves of all subsystems obtained through the analysis of the STPN/CSPN models. Thus, we combine the strength of combinatorial approaches, i.e., their efficiency, with the one of state-space based ones, i.e., their ability to model the statistical dependence of faults. This hierarchical approach to the reliability evaluation can be extended to model the system-level reliability, i.e., the reliability of the whole system composed by both hardware and software. In general, hardware-related failures are statistically independent from software-related ones, i.e., software bugs [30; 31]. The estimation of the number of failures in the source code is a difficult task [32]. However, in recent years, several methodologies have been developed to model and increase the software reliability [33; 34; 35]. The ORIS tool [36] has been adopted to support STPN and GSPN modeling. In this paper, we focus on the implementation of an efficient tool to evaluate RBD blocks. More specifically, we looked for a tool with the following characteristics:  
* To be highly optimized. * To allow the resolution of RBD basic blocks (excluding singleton given its trivial formula). * To allow the reliability computation of an RBD basic block in a time interval. * To be available as a free software. * To be available for the most common Operating Systems (OS), i.e., Windows, Mac OS and Linux. Several tools for RBD definition and analysis exist, although the majority of them are commercial tools. We provide a list of tools that were considered during our work:  
* **RBDTool**: this open-source and multiplatform tool allows the definition of RBD models and it provides support for their quantitative analysis [37].