Most of the existing research in architecture-based software reliability analysis is focused on developing techniques to assess the reliability of a software application taking into consideration its architecture, component and interface reliabilities and a deployment of the components across the nodes of a distributed system. While an assessment of the application reliability for a given placement of components is essential, it does not provide any guidance about how the components must be deployed across the various nodes to maximize the application reliability. In this paper we present a simulated annealing-based optimization framework which produces a desirable deployment configuration of the application components based on its architecture, component and interface reliabilities and two different types of constraints. The node size constraint limits the maximum number of components that can be deployed on a given node and the component location constraint restricts the placement of certain modules on some nodes. We illustrate the value of the framework using a case study, in which an optimal configuration obtained by the framework is compared to the configuration obtained using exhaustive enumeration. A comparison of the time taken by each algorithm indicates that the framework can be used to obtain optimal configurations with much greater efficiency than exhaustive search.
展开▼