Best Design Practices for Effective Us of N-Version Programming

PDF

Authors
  1. Khoury, R.
  2. Couture, M
  3. Hamou-Lhadj, A.
Corporate Authors
Defence R&D Canada - Valcartier, Valcartier QUE (CAN);CONCORDIA UNIV, MONTREAL QUE (CAN)
Abstract
N-version programming is a software development paradigm that draws upon the concept of diverstiy to increase the reliability of software. The central idea is to independently produce mutliple functionally equivalent versions of a program, and execute them in parallel. If the versions fail independently, then the probabiilty of multiple versions producing a fualty output on any given input is very small; much lower than the failure probability of any single version. In this technical memorandum, we examine and contrast various experiments that have been performed to evaluate the benefits of this approach and draw some conclusions with respect to the most effective way that N-version programming can be utilized. We find that for diversity to be effective, it must be introduced in a targeted and informed manner and encompass several phases of the software's development.

Il y a un résumé en français ici.

Keywords
Software reliability;System design;N-version programming;fault-tolerance
Report Number
DRDC-VALCARTIER-TM-2013-017 — Technical Memorandum
Date of publication
01 Feb 2012
Number of Pages
40
DSTKIM No
CA046380
CANDIS No
806779
Format(s):
Electronic Document(PDF)

Permanent link

Document 1 of 1

Date modified: