To validate the method of analysis, real cases are evaluated. This evaluation is done in three phases. The first phase is to determine the availability of the software solution. Bottlenecks are identified, in order to target components that have the most impact on the availability of the software solution.
In the second phase, logic or virtual components are duplicated and arranged in parallel in order to achieve better availability. The evaluation is limited to duplication of two components of the solution in order to limit the scope of the analysis. Although the study is not concerned with the costs of modifying an architecture, duplication should be applied with caution since it creates additional costs, both in the design of the solution and in its deployment in a physical environment.
The last phase is devoted to establishing the new availability of components and to assessing the availability of the modified solution.
As noted in section A different paradigm, dependencies between components create a directed acyclic graph. The component at the system root must travel several nodes to reach each of the other system components. The length of a path between two nodes is calculated based on the number of edges between them; the distance is the length of the shortest path .
The availability of a software solution comes in two steps. As noted in the methodology of Tsai and Sang , the first step is to determine the components of the software solution that can be connected in series or in parallel. Conversely, subsystems connected in parallel must be composed only of duplicates, and must remain interchangeable since they must serve the same service.
Thereafter, the availability of all the subsystems is determined by calculating the availability of subsystems that can be represented by a graph with only one node, until only one system, parallel or series, remains. Figure below illustrates an example.
Bottlenecks in availability of a software solution are the components that have the greatest impact on the availability of the solution. In order to target them, it is important not only to measure the availability of each component, but also to quantify the impact of the availability of each component on that of the entire solution.
In the context of this study, the transitional virtual components and the communication links determine the dependencies between components, as detailed in section Virtual Layer. The accounting of the availability of the incoming communication links of a system consisting of a logic component and the virtual components it depends on allows us to establish all the subsystems of which the component to quantify is part of. As for parallel systems, the assessment must be done considering that the risk is shared between the duplicates of the virtual components.
This study must be done for each component, and it must be done sequentially in three stages. The first is to determine the availability of each of the components. This is done by calculating the availability of the series and parallel systems consisting of a logic component and the virtual components on which it depends.
Next, you have to identify if the component is part of parallel systems. Once this is done, it is possible to determine the systems, parallel and series, which include the logic component in question.
We must next establish the hierarchy of the systems of which the component is part of, and calculate the parallel and series systems of this hierarchy. This allows identification of the impact of the component’s availability on the solution.
For example, in the case of the system of the figure at the beginning of the page, where the availability of components C1 C2 C3 C4 and C5 is precalculated and is 0.5, the contextual availability can be calculated as follows:
During the evaluation of the contextual availability of the system components, the components having the lowest availability are bottlenecks, since they have the greatest impact on the availability of the solution. The solution given as an example has two bottlenecks, C4 and C5.