Nothing Special   »   [go: up one dir, main page]

skip to main content
article

An experimental evaluation of the assumption of independence in multiversion programming

Published: 01 January 1986 Publication History

Abstract

N-version programming has been proposed as a method of incorporating fault tolerance into software. Multiple versions of a program (i.e., “N”) are prepared and executed in parallel. Their outputs are collected and examined by a voter, and, if they are not identical, it is assumed that the majority is correct. This method depends for its reliability improvement on the assumption that programs that have been developed independently will fail independently. In this paper an experiment is described in which the fundamental axiom is tested. A total of 27 versions of a program were prepared independently from the same specification at two universities and then subjected to one million tests. The results of the tests 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. The results of these tests are presented along with an analysis of some of the faults that were found in the programs. Background information on the programmers used is also summarized. The conclusion from this experiment is that N-version programming must be used with care and that analysis of its reliability must include the effect of dependent errors.

Cited By

View all
  • (2024)Shadow Filesystems: Recovering from Filesystem Runtime Errors via Robust Alternative ExecutionProceedings of the 16th ACM Workshop on Hot Topics in Storage and File Systems10.1145/3655038.3665942(15-22)Online publication date: 8-Jul-2024
  • (2024)Highly Available Blockchain Nodes With N-Version DesignIEEE Transactions on Dependable and Secure Computing10.1109/TDSC.2023.334619521:4(4084-4097)Online publication date: 1-Jul-2024
  • (2022)SoK: Analysis of Software Supply Chain Security by Establishing Secure Design PropertiesProceedings of the 2022 ACM Workshop on Software Supply Chain Offensive Research and Ecosystem Defenses10.1145/3560835.3564556(15-24)Online publication date: 11-Nov-2022
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image IEEE Transactions on Software Engineering
IEEE Transactions on Software Engineering  Volume 12, Issue 1
January 1986
1140 pages

Publisher

IEEE Press

Publication History

Published: 01 January 1986

Author Tags

  1. Design diversity
  2. Educational institutions
  3. N-version programming
  4. NASA
  5. Programming
  6. Software
  7. Software reliability
  8. fault-tolerant software
  9. multiversion programming
  10. software reliability

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 16 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Shadow Filesystems: Recovering from Filesystem Runtime Errors via Robust Alternative ExecutionProceedings of the 16th ACM Workshop on Hot Topics in Storage and File Systems10.1145/3655038.3665942(15-22)Online publication date: 8-Jul-2024
  • (2024)Highly Available Blockchain Nodes With N-Version DesignIEEE Transactions on Dependable and Secure Computing10.1109/TDSC.2023.334619521:4(4084-4097)Online publication date: 1-Jul-2024
  • (2022)SoK: Analysis of Software Supply Chain Security by Establishing Secure Design PropertiesProceedings of the 2022 ACM Workshop on Software Supply Chain Offensive Research and Ecosystem Defenses10.1145/3560835.3564556(15-24)Online publication date: 11-Nov-2022
  • (2022)Workings of scienceUbiquity10.1145/35123382022:June(1-11)Online publication date: 30-Jun-2022
  • (2022)Exploiting input sanitization for regex denial of serviceProceedings of the 44th International Conference on Software Engineering10.1145/3510003.3510047(883-895)Online publication date: 21-May-2022
  • (2022)Finding missed optimizations through the lens of dead code eliminationProceedings of the 27th ACM International Conference on Architectural Support for Programming Languages and Operating Systems10.1145/3503222.3507764(697-709)Online publication date: 28-Feb-2022
  • (2022)Classifying resilience approaches for protecting smart grids against cyber threatsInternational Journal of Information Security10.1007/s10207-022-00594-721:5(1189-1210)Online publication date: 1-Oct-2022
  • (2021)An Adaptive Application Framework with Customizable Quality MetricsACM Transactions on Design Automation of Electronic Systems10.1145/347742827:2(1-33)Online publication date: 2-Nov-2021
  • (2021)Differential MonitoringRuntime Verification10.1007/978-3-030-88494-9_12(231-243)Online publication date: 11-Oct-2021
  • (2020)Right CodeIEEE Software10.1109/MS.2020.302875938:1(13-15)Online publication date: 22-Dec-2020
  • Show More Cited By

View Options

View options

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media