Date Added: Nov 2010
The most popular forms of fault tolerance against design faults use "Asymmetric" architectures in which a "Primary" part performs the computation and a "Secondary" part is in charge of detecting errors and performing some kind of error processing and recovery. In contrast, the most studied forms of software fault tolerance are "Symmetric" ones, e.g. N version programming. The latter are often controversial, the former are not. The authors discuss how to assess the dependability gains achieved by these methods. Substantial difficulties have been shown to exist for symmetric schemes, but they show that the same difficulties affect asymmetric schemes.