Bottlenecks help identify the logic components most likely to have an adverse impact on the availability of a software solution. They can be defined as logic components whose availability has the most impact on the availability of other components of the solution. Contextual availability of each component then represents the impact of the availability of this component on the other components of the solution.
When the contextual availability of each component is established, it can be compared with those of other components to find the bottlenecks. This then allows one to target components that have the most impact on the availability of the solution.