Development of dependable applications requires selection of appropriate fault tolerance techniques that balance efficiency in fault handling and resulting consequences, such as increased development cost or performance degradation. This paper describes an advisory system that recommends fault tolerance techniques considering specified development and runtime application attributes. In the selection process, we use the K-means clustering algorithm to identify similarities between known fault tolerance techniques to select those ones that are possibly different, but simultaneously conform to developer specification. As a part of the research, we implemented a web-based system that covers definition of attributes, aggregates knowledge about fault tolerance techniques together, and implements the advisory algorithm.
['Paweł L. Kaczmarek', 'Marcin Roman']
A clustering-based methodology for selection of fault tolerance techniques