An Experimental Evaluation of Software Redundancy as a Strategy For Improving Reliability

  title={An Experimental Evaluation of Software Redundancy as a Strategy For Improving Reliability},
  author={Dave E. Eckhardt and Alper K. Caglayan and John C. Knight and Larry D. Lee and David F. McAllister and Mladen A. Vouk and John P. J. Kelly},
  journal={IEEE Trans. Software Eng.},
The strategy of using multiple versions of independently developed software as a means to tolerate residual software design faults is discussed. The effectiveness of multiversion software is studied by comparing estimates of the failure probabilities of these systems with the failure probabilities of single versions. The estimates are obtained under a model of dependent failures and compared with estimates obtained when failures are assumed to be independent. The experimental results are based… Expand

Figures, Tables, and Topics from this paper

Software reliability measurements in N-Version software execution environment
  • Michael R. Lyu
  • Computer Science
  • [1992] Proceedings Third International Symposium on Software Reliability Engineering
  • 1992
The author quantitatively examines the effectiveness of the N-Version programming approach. He looks into the details of an academia/industry joint project employing six programming languages, andExpand
Software Fault Tolerance by Design Diversity
This chapter reviews the use of software diversity, and especially multi-version programming, as a means of improving system reliability and safety. It considers the theoretical and experimentalExpand
An empirical study on reliability modeling for diverse software systems
  • Xia Cai, Michael R. Lyu
  • Computer Science
  • 15th International Symposium on Software Reliability Engineering
  • 2004
This paper applies project data on two different reliability models and estimates the reliability bounds for evaluation purpose, and parameterize fault correlations to predict the reliability of various combinations of versions, and compares three different fault-tolerant software architectures. Expand
Methodology for Reliability Evaluation of N-Version Programming Software Fault Tolerance System
  • Ping Guo, Xin Liu, Qian Yin
  • Computer Science
  • 2008 International Conference on Computer Science and Software Engineering
  • 2008
A straightforward analysis method for evaluating reliability of software system established by N-version programming is proposed, where the dependent failure parameters are assumed as random variables instead of constant. Expand
Software reliability experiments data analysis and investigation
The results indicate that both conceptually related and unrelated errors can cause coincident failures and that recovery block structures offer more reliability gain than N-version structures if acceptance checks that fail independently from the software components are available. Expand
Three modified dependency-tests for software failures
  • C.-C. Wang, R.J.-W. Chen
  • Engineering
  • Annual Reliability and Maintainability Symposium. 2002 Proceedings (Cat. No.02CH37318)
  • 2002
Multiple version software strategy was proposed for the fault-tolerant system. An N-version software (NVS) system raises reliability by employing independently developed software versions. VariousExpand
Performance distribution of a fault-tolerant system in the presence of failure correlation
This paper considers software systems consisting of fault-tolerant components built from functionally equivalent but independently developed modules (versions) characterized by different reliability and execution times, and presents an analytical algorithm and a numerical procedure to evaluate system execution-time distributions. Expand
An experimental evaluation on reliability features of N-version programming
  • Xia Cai, Michael R. Lyu, M. Vouk
  • Engineering, Computer Science
  • 16th IEEE International Symposium on Software Reliability Engineering (ISSRE'05)
  • 2005
Experimental results support fault tolerance as an effective software reliability engineering technique in N-version programming. Expand
Comments on 'Reliability and performance analysis for fault-tolerant programs consisting of versions with different characteristics' by Gregory Levitin [Reliability Engineering and System Safety 86 (2004) 75-81]
  • B. Littlewood
  • Engineering, Computer Science
  • Reliab. Eng. Syst. Saf.
  • 2006
A detailed reliability and performance analysis of fault-tolerant programs consisting of versions with different characteristics is presented, dependent upon a key assumption: ‘Failures of versions for each component are statistically independent…’. Expand
Software Fault Tolerance: A Tutorial
How hard-to-detect design faults are likely to be introduced during development and how software faults tend to be state-dependent and activated by particular input sequences are noted. Expand


Software Fault Tolerance: An Evaluation
An analysis of the results shows that use of the software fault tolerance approach yielded a substantial improvement in the reliability of the command and control system. Expand
Analysis of Faults in an N-Version Software Experiment
A large-scale experiment in N-version programming revealed that the versions were individually extremely reliable but that the number of input cases in which more than one failed was substantially more than would be expected if they were statistically independent. Expand
A Theoretical Basis for the Analysis of Multiversion Software Subject to Coincident Errors
A condition under which a multiversion system is a better strategy than relying on a single version is given and some differences between the coincident errors model developed here and the model that assumes independent failures of component verions are studied. Expand
Fundamental differences in the reliability of N-modular redundancy and N-version programming
It is shown that the results of N-version programming where an equivalent assumption of independent failures of the component versions may not be valid are not equivalent although both approaches can improve system reliability. Expand
Dependability Evaluation of Software Systems in Operation
  • J. Laprie
  • Computer Science
  • IEEE Transactions on Software Engineering
  • 1984
An approximate model is derived which enables one to account for the failures due to the design faults in a simple way when evaluating a system's dependability. Expand
Development of N-version software samples for an experiment in software fault tolerance
The report documents the task planning and software development phases of an effort to obtain twenty versions of code independently designed and developed from a common specification for use in software fault tolerance experiments at NASA Langley Research Center. Expand
An Empirical Comparison of Software Fault Tolerance and Fault Elimination
The authors compared two major approaches to the improvement of software-software fault elimination and software fault tolerance-by examination of the fault detection (and tolerance, whereExpand
PODS revisited-a study of software failure behaviour
  • P. Bishop, F. D. Pullen
  • Engineering, Computer Science
  • [1988] The Eighteenth International Symposium on Fault-Tolerant Computing. Digest of Papers
  • 1988
An empirical study of the failure characteristics of software defects detected in the programs developed in the Project on Diverse Software suggests some of the observed positive and negative correlation effects could be explained by failure masking effects, which can be removed by suitable design. Expand
An experimental evaluation of the assumption of independence in multiversion programming
N-version programming has been proposed as a method of incorporating fault tolerance into software and it is revealed that the programs were individually extremely reliable but that the number of tests in which more than one program failed was substantially more than expected. Expand
Fault-Tolerant SoFtware Reliability Modeling
The models are used to show that one method of creating fault-tolerant software systems, the Consensus Recovery Block, is more reliable than the other two, and it presents reliability models for each. Expand