N-version programming a fault-tolerance approach to reliability of software operation

Nversion programming nvp, also known as multiversion programming or multipleversion dissimilar software, is a method or process in software engineering where multiple functionally equivalent programs are independently generated. The effectiveness of the entire approach depends on the validity of this conjecture, therefore it is critically important to keep the initial of to of to of of of the of zi. Failures are detected by comparing the results of the different versions. Nversion programming can tolerate both hardware and software faults. Their outputs are collected and examined by a voter,and, if they are not identical, it. There are two basic techniques for obtaining faulttolerant software. Eighth annual international conference on fault tolerant computing, toulouse, france. Unfortunately, it is impossible to provide general techniques that tolerate all faults with a very high confidence rate. In an nversion software system, each module is made with up to n different implementations. In nvp, the same specification is implemented in a number of different versions by different teams. Voting, consensus voting, nversion programming, system reliability, software faulttolerance reader aids purpose. The consistent comparison problem in nversion software. Software fault tolerance ensures that whenever a fault occurs in the software of the system on which it is running, it provides mechanisms to prevent system failure. We can reduce the faults introduced into programs with the use of these constructs.

On the implementation of nversion programming for software fault tolerance during execution. Sw faulttolerance techniques software faulttolerance is based on hw faulttolerance software fault detection is a bigger challenge many software faults are of latent type that shows up later. A faulttolerance approach to reliability of software operation, pp. An mtdbased selfadaptive resilience approach for cloud. Extending hardware reliability theory to software has a. Nversion programming has been proposed as a method of incorporating fault. Guest editors introduction understanding fault tolerance. Pdf an nversion software nvs unit is a fault tolerant software unit that.

The analytic work is attempting to build useful models of certain aspects of the software development process. Software fault tolerance carnegie mellon university. The nversion software concept attempts to parallel the traditional hardware fault tolerance concept of nway redundant hardware. Nversion programming nvp, also known as multiversion programming, is a method or process in software engineering where multiple functionally equivalent programs are independently generated from the same initial specifications. The modeling studies provided in literature help us. This diversity is normally applied under the form of recovery blocks or nversion programming. Nversion programming nvp nvp is based on the principle of design diversity, that is coding a software module by different teams of programmers, to have multiple versions. Introduction r esearchers have proposed various methods for building faulttolerant software in an effort to provide substantial improvements in the reliability of software. Tolerance approach to reliability of software operation, digest of papers ftcs8. The analysis of software fault tolerance has been performed either by empirical studies of multiple versions of software modules or by modeling techniques.

Mcq on software reliability in software engineering part1. Many fault tolerance techniques can be implemented using only special har dwar e or softwar e, and some techniques require a combination of these. The aim of nvp is to improve the reliability of software operation by building in fault tolerance or redundancy. We present an overview of the current state of the art of the software fault tolerance analysis, and through. Reliability and nversion programming in soft ware fault tolerance. Multiversion or nversion programming 2 has been proposed as a method of providing fault tolerance in software.

This paper presents some of the available experimental evidence. Analysis of faults in an nversion software experiment, university of virginia technical report tr8620, september, 1986. In faulttolerant software, to enhance the reliability, one of the major approaches is nversion programming. The process by which the nvs versionsare produced is called nversion programming nvp. Software dependability association for computing machinery. Nversion programming nvp, also known as multiversion programming or multipleversion. Introduction nvp nversion programming the concept of nversion programming was first introduced by avizienis in 1977 1 the same specification is implemented in a number of different versions by different teams 1 all versions compute simultaneously and the majority output is selected using a voting system 1 this is the most commonly. In this paper we will discuss the techniques of software fault tolerance such as recovery blocks, nversion programming, single version programming, multiversion programming. Nversion programming nvp, also known as multiversion programming or multipleversion dissimilar software, is a method or process in software engineering where multiple functionally equivalent programs are independently generated from the same initial specifications. An experimental evaluation on reliability features of nversion. Nversion programming has been proposed as a method of incorporating fault tolerance into software. Basic fault tolerant software techniques geeksforgeeks.

Software fault tolerance is the ability of computer software to continue its normal operation despite the presence of system or hardware faults. A faulttolerance approach to reliability of software operation, in proc. A methodology of nversion programing has been devised and three types of special. The approach requires the separate, independent preparation of. The effectiveness of this approach is examined by the software diversity achieved in the member versions of an nvs unit. Leveson abstractwe have identified a difficulty in the implementation of nversion programming. Reliability of the overall system is actually a product of the hardware, software, and human reliability. The nvp is one of the original design diverse software fault tolerance. Eighth annual international conference on fault tolerant computing. The nversion programming nvp approach applies the idea of design diversity to obtain faulttolerant software units, called nversion software nvs units. In this research paper, the nversion programming is used as a technique for fault tolerance. Each variant accomplishes the same task, but hopefully in a different way. A faulttolerance approach to rellablllty of software operatlon.

Pdf the methodology of nversion programming researchgate. Software fault tolerance programming techniques nversion programming nvp exception handling subtypes. The reliability of a software system is a measure of how well users think it provides the services that they require. The basic idea is to write multiple versions of a software module. Hardware techniques tend to provide better performance at an increased hardware cost. During development the design teams are kept separate and do not share their designs. Reliability analysis in nversion programming with dependent failures. The concept of nversion programming was introduced in 1977 by liming chen and algirdas avizienis with the central conjecture that the independence of programming. Faulttolerant software assures system reliability by using protective redundancy at the software level. Kmodular redundancy kmr or nversion programming nvp are wellknown fault tolerance strategies in software reliable engineering. Their outputs are collected and examined by a voter,and, if they are not identical, it is assumed that the majority is correct.

Software fault tolerance is not a panacea for all our software problems. Since, at least for the near future, software fault tolerance will primarily be. Nversion programming method of software fault tolerance. Christodorescu m, jha s 2003 static analysis of executables to detect malicious patterns. Designing fault tolerance strategy by iterative redundancy. An nversion software nvs unit is a fault tolerant software unit that depends on ageneric decision algorithm to determine a consensus result from the results delivered bytwo or more member versions of the nvs unit. Correlated failures in multiversion software sciencedirect. A faulttolerance approach to reliability of software operation, digest ftcs8. Software fault tolerance sft has become an important. Both schemes are based on software redundancy assuming that the events of coincidental software failures are rare. Nversion programming and recovery blocks are two different approaches to designing faulttolerant software architectures.

Fault tolerance, nversion programming, reliability. A survey of software fault tolerance techniques zaipeng xie, hongyu sun and kewal saluja. Nversion programming nvp, also known as multiversion programming or multipleversion dissimilar software, is a method or process in software engineering where. You can leave a response, or trackback from your own site. The nversion approach to faulttolerant software depends on a generalization of the multiple. These strategies perform, functionally equivalent and independent executions in parallel, and then take a majority voting to determine the final result. In nversion programming, the different versions of the same software are made using. You can follow any responses to this entry through the rss 2. Positive performance in enhancing software availability is an expected result. Nversion programming achieves redundancy through the use of multiple versions. A faulttolerance approach to reliability of software operation, 8th int.

Software fault tolerance has primarily been aimed at increasing total software reliability. Presentation for making software fault tolerance systems. A faulttolerance approach to reliability of software operation. A voter receives outputs from these versions and determines the cor rect output.

Consensus recovery blocks multi version software tolerance techniques the consensus recovery blocks approach combines nversion programming and recovery blocks to improve the reliability over that achievable by. Software fault tolerance in safetycritical applications. Nversion programming is a useful approach to improve the quality of software, especially for safetycritical systems. Reliability is usually defined as the probability of failurefree operation for a specified time in a specified environment for a specific purpose. Topics in software reliability material drawn from somerville, mancoridis. Symposium on fault tolerant computing, toulouse, france, june 1978, pp. Reliability and nversion programming in software fault. This cited by count includes citations to the following articles in scholar. The concept of nversion programming was introduced in 1977 by liming chen and algirdas avizienis with the central conjecture. Eight annual international conference on faulttolerant computing, toulouse, pp. A faulttolerance approach to reliability 8 of software operation by liming chen. A faulttolerance approach to rellablllty of software. Faulttolerant software reliability modeling using petri.

The diversity can also be introduced by employing different algorithms for obtaining the same solution or by choosing different programming languages. In this paper, a software availability model for the study of the impact of nversion programming technique is proposed and investigated. Experimental evaluation of reliability features of nversion programming. Which approach is used depends on the system requirements. Present empirical evaluation of consensus voting scheme. Pdf a study of nversion programming and its impact on. This is accomplished by providing protection against errors in translating the requirements and algorithms into the programming. Radtest testing board for the software implemented hardware fault tolerance research. Although nversion programming has been employed in. The dif ferent versions ar e written by different teams, with the hope that these versions will not contain the same bugs. We define and formalize the concept of design diversity and. It provides a personal perspective on early developments such as the recovery block and the nversion programming scheme, and on more recent research in which the author has been involved aimed at unifying and extending these schemes. Nversion programming multi version software tolerance techniques.

1405 271 503 646 1026 140 466 1077 736 231 307 51 1014 209 620 589 505 1014 1515 972 187 707 1119 1136 676 353 389 1002 288 1308 558 984 430 1376 240 544 664 1334 464 6 1163 1420 58 603 1395