A taxonomy of software architecture-based reliability efforts
Proceedings of the 2010 ICSE Workshop on Sharing and Reusing Architectural Knowledge
Architectural design decisions for achieving reliable software systems
ISARCS'10 Proceedings of the First international conference on Architecting Critical Systems
Hi-index | 0.00 |
A number of voters have been proposed for n-version programming diversity designed software systems. The knowledge about various software failure criticalities is not incorporated in the decisions of these voters. Moreover, failure classes contradict among each other with respect to their fault tolerance requirements, as a result, current voters either consider different failures equally or they mask only certain types of failures. Therefore, the voters need to consider system criticalities to different failures based on their fault tolerance requirements trade-off. We propose an approach for trading off system criticalities to different failures. In this approach, we introduce two implementation parameters: the voter constraint hardness and the number of participants in the voting process. We use failure criticalities trade-off to determine the optimal values of these two parameters. This trade-off enhances the ability of a voter to consider different failure criticalities. It also decreases the rate of performance failures. We provide an analysis for the relationships between the implementation parameters and the failure occurrence rate of each failure class. We derive system reliability and safety based on our approach, and we show gains in both of them. The proposed approach can be used to build fault tolerant systems based on n-version programming that use any generic or hybrid voter.