An experimental evaluation of the assumption of independence in multiversion programming
IEEE Transactions on Software Engineering
Conceptual Modeling of Coincident Failures in Multiversion Software
IEEE Transactions on Software Engineering
Analysis of Faults in an N-Version Software Experiment
IEEE Transactions on Software Engineering
An Experimental Evaluation of Software Redundancy as a Strategy for Improving Reliability
IEEE Transactions on Software Engineering
N-Version Design Versus One Good Version
IEEE Software
Choosing Effective Methods for Design Diversity - How to Progress from Intuition to Science
SAFECOMP '99 Proceedings of the 18th International Conference on Computer Computer Safety, Reliability and Security
A Theoretical Basis for the Analysis of Multiversion Software Subject to Coincident Errors
IEEE Transactions on Software Engineering
On the effectiveness of run-time checks
SAFECOMP'05 Proceedings of the 24th international conference on Computer Safety, Reliability, and Security
Hi-index | 0.00 |
Software reliability can be increased by using a diverse pair of programs (1-out-of-2 system), both written to the same specification. The improvement of the reliability of the pair versus the reliability of a single version depends on the degree of diversity of the programs. The choice of programming language has been suggested as an example of a diversity seeking decision. However, little is known about the validity of this recommendation. This paper assesses the effect of language on program diversity. We compare the effects of the choice of programming language as a diversity seeking decision by using programs written to three different specifications in the “UVa Online Judge”. Thousands of programs have been written to these specifications; this makes it possible to provide statistical evidence. The experiment shows that when the average probability of failure on demand (pfd) of the programs is high, the programs fail almost independently, and the choice of programming language does not make any difference. When the average pfd of the pools gets lower, the programs start to fail dependently, and the pfd of the pairs deviates more and more from the product of the pfds of the individual programs. Also, we observe that the diverse C/Pascal or C++/Pascal pairs perform as good as or better than the other possible pairs.