These components are built from functionally equivalent but independently developed versions characterized by different reliability and execution time. An introduction to software engineering and fault tolerance. Avizeinis, the n version approach to fault tolerant software, ieee transactions of software engineering, vol. Fault tolerant computing computer science department. The nversion programming nvp approach achieves faulttolerant software units, called nversion software nvs units, through the development and use of software diversity. The nversion programming nvp approach applies the idea of design diversity to obtain faulttolerant software units, called nversion software nvs units. Principal requirements for the implementation of nversion. It would be very difficult to sum it up in one article since there are multiple ways to achieve fault tolerance in software. In general, fault tolerant approaches can be classified into fault removal and fault masking approaches.
Nversion programming achieves redundancy through the use of multiple versions. Basic fault tolerant software techniques the study of software fault tolerance is relatively new as compared with the study of fault tolerant hardware. There are two basic techniques for obtaining fault tolerant software. In this approach the software component under consideration is treated as a controlled object that is modeled as a generalized kripke structure or finitestate concurrent system 44,45. Performability and reliability modeling of n version fault. Principal requirements for the implementation of nversion software are summarized and the dedix distributed supervisor and testbed for the execution of nversion software is described. Principal requirements for the implementation of n version software are summarized and. Customizable software systems consist of a large number of different, critical, noncritical and interdependent configurations. North holland an objectoriented approach to develop software fault tolerant mechanisms for parallel programming systems cekuen shieh, sucheong mac, tzuchiang chang, chungming lai department of electrical engineering, national cheng kung university, tainan, taiwan, r. Leveson abstractwe have conducted a largescale experiment in n version programming. On the implementation of n version programming for software fault. Optimal structure of faulttolerant software systems. Transient software fault tolerance using singleversion algorithm. Principal requirements for the implementation of nversion software are summarized and the dedix.
Generally, an optimization model utilized in nvp selects the optimal set of versions for each module to maximize the system reliability and to constrain the total cost to remain within a given budget. Nversion approach to faulttolerant software ieee transactions on software engineering 1985 1112 1491 1501 2s2. Ess which uses a distributed system controlled by the 3b20d fault tolerant computer. Reliability and performance of configurable system depend on successful completion of communication or interactions among its configurations. Ramamoorthy 1986, inputdomainbased models for estimating the correctness of process control programs, in reliability theory. Conclusion nversion programming and recovery blocks are two different approaches to designing faulttolerant software architectures in nvp, the same specification is implemented in a number of different versions by different teams during development the design teams are kept separate and do not share their designs nor do they discuss the. Pdf an introduction to software engineering and fault. There are two basic techniques for obtaining faulttolerant software. The expected system execution time and its reliability. In an nversion software system, each module is made with up to n different implementations. Basic fault tolerant software techniques geeksforgeeks. The concept of nversion programming was introduced in 1977 by liming chen and algirdas avizienis with the central conjecture that the independence of programming efforts will greatly reduce the probability of identical software faults. Introduction the nversion programming nvp approach to faulttolerant software systems involves the genera.
Principal requirements for the implementation of n version software are summarized and the dedix. A fault tolerance approach to reliability of software operation, pp. The approach requires the separate, independent preparation of multiple i. Both schemes are based on software redundancy assuming that the events of coincidental software failures are rare. The conclusion from this experiment is that nversion programming must be used with care and that analysis of its reliability must include the effect of dependent errors. A paper describing nversion programming written by the original creator of the concept. Fault tolerant software systems using software configurations. Ramamoorthy 1986, inputdomainbased models for estimating the correctness of process control programs, in reliability theory, northholland, amsterdam. Fault tolerant software has the ability to satisfy requirements despite failures. This paper considers software systems consisting of faulttolerant components. Citeseerx assuring design diversity in nversion software. Work in 45 aims to treat software faulttolerance as a robust supervisory control rsc problem and propose a rsc approach to software faulttolerance. Sep 01, 2005 this paper considers software systems consisting of fault tolerant components. Fault tolerant software assures system reliability by using protective redundancy at the software level.
Index termsdesign diversity, faulttolerant software, multiver sion programming, nversion programming, software reliability. Nversion programming, 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. In general, faulttolerant approaches can be classified into fault removal and. So, the concept of nvp as an approach to creating fault tolerant software introduces such new areas of research in the field of software engineering as nvp, nvs, nvx, the definitions of which we have already considered. 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. Analysis of faults in an nversion software experiment. The aim of nvp is to improve the reliability of software operation by building in fault tolerance or redundancy. In this paper we will discuss the techniques of software fault tolerance such as recovery blocks, nversion programming, single version programming, multiversion programming. A good in depth discussion of the concept and how to apply it.
So, the concept of nvp as an approach to creating faulttolerant software introduces such new areas of research in the field of software engineering as nvp, nvs, nvx, the definitions of which we have already considered. This discipline has been around for more than forty years, and in that time software engineering practices have made possible significant accomplishments. Some limitations of the approach are also presented. In order for computers to reach a stage of acceptable dependability in the performance of modern applications, they must demonstrate the ability to produce correct results or actions in the presence of faults or other anomalous or unexpected conditions. The n version approach to fault tolerant software abstract. In this paper we will discuss the techniques of software fault tolerance such as recovery blocks, n version programming, single version programming, multi version programming. This important book also focuses on identification, application, formulation and evaluation of current software tolerance techniques. Detailed reports are attached on preliminary report on consensus voting in the presence of failure correlation, and on modeling execution time of multistage nversion faulttolerant software. The nversion approach to faulttolerant software ieee.
Again, software implementations of such errorcorrecting codes use an unaffordable redundancy in both time and space. Performability and reliability modeling of n version fault tolerant software in real time systems katerina goseva popstojanova, aksenti grnarov faculty of electrical engineering, department of computer science p. The authors give extremely general structured definitions of hardware and softwarefaulttolerant architectures by classifying various existing approaches to software faulttolerance. The nversion programming, as a methodology of the faulttolerant software systems design, allows successful solving of the mentioned tasks.
Twentyfifth international symposium on faulttolerant computing, 1995, highlights from twentyfive years. A reflective objectoriented architecture for developing. Detailed reports are attached on preliminary report on consensus voting in the presence of failure correlation, and on modeling execution time of multistage n version fault tolerant software. Because of hardware resource constraints, the number of versions that can run simultaneously is limited.
Sc high integrity system university of applied sciences, frankfurt am main 2. Principal requirements for the implementation of n version software are summarized and the dedix distributed supervisor and testbed for the execution of n version software is described. Also there are multiple methodologies, few of which we already follow without knowing. Avizienis, the nversion approach to faulttolerant software, ieee transactions on software engineering, vol.
Those versions are written to meet the same specification but by different programmers. These principles deal with desktop, server applications andor soa. The n version programming nvp approach applies the idea of design diversity to obtain fault tolerant software units, called n version software nvs units. A comparative analysis of hardware and software fault. Pdf the nversion approach to faulttolerant software. Failures are detected by comparing the results of the different versions. Multi version programming, n version programming, software reliability, fault tolerant software, design diversity.
Leveson abstractwe have conducted a largescale experiment in nversion programming. Multiversion programming, nversion programming, software reliability,faulttolerant software, design diversity. Software fault tolerance is the ability of computer software to continue its normal operation despite the presence of system or hardware faults. Paper open access implementation of multiversion software. Principal requirements for the implementation of nversion software. The bestdocumented techniques for tolerating software faults are the recovery block rb 1 approach and nversion programming nvp 2. A paper describing n version programming written by the original creator of the concept. To maximize the effectiveness of the nvp approach, the probability of similar errors that coincide at the nvs decision points should be reduced to the lowest possible. The nversion approach to faulttolerant software abstract. The nversion approach to faulttolerant software depends on a generalization of the multiple computation methodthat has beensuccessfully appliedto the tolerance ofphysical faults. This report describes the results obtained in the period september 1, 1989 to march 31, 1990. The n version programming nvp approach achieves faulttolerant software units, called n version software nvs units, through the development and use of software diversity. Multiobjective genetic algorithm for solving nversion.
The nversion software concept attempts to parallel the traditional hardware fault tolerance concept of nway redundant hardware. An initial specification of the intended functionality of the software is developed. Conventional hardware fixes cannot detect and correct multiplebit errors. Principal requirements for the implementation of nversion software are summarized and. The transfer of the concepts of fault tolerance to.
The nversion approach to faulttolerant software ieee journals. Work in 45 aims to treat software fault tolerance as a robust supervisory control rsc problem and propose a rsc approach to software fault tolerance. Index termsdesign diversity, fault tolerant software, multiver sion programming, n version programming, software reliability. Most of the time users of configurable systems very often use critical configurations than noncritical configurations. The mathematical statement for the solving of the problem of. The three approaches discussed are the recovery block approach, nversion programming, and nselfchecking programming. This diversity is normally applied under the form of recovery blocks or nversion programming. Handbook of software reliability engineering michael r. Nversion programming nvp is a programming approach to construct fault tolerant software systems employing functionally equivalent, yet independently developed software components. Avizeinis, the nversion approach to faulttolerant software, ieee transactions of software engineering, vol. The object model has been considered a promising approach for the development of faulttolerant software 23, because it integrates wellestablished software engineering principles like data abstraction, encapsulation, modularity, hierarchy, and strong typing. An objectoriented approach to develop software fault. Faulttolerant software assures system reliability by using protective redundancy at the software level. Introduction multiversion or nversion programming i has been proposed as a method of providing fault tolerance in software.
Data redundancy for the detection and tolerance of software. The use of nversion programming approach turns out to be effective, since the system is constructed out of several parallel executed versions of some software module. N version approach to fault tolerant software ieee transactions on software engineering 1985 1112 1491 1501 2s2. Outline introduction what is nvp design diversity number of. A faulttolerance approach to reliability of software operation, pp. Basic fault tolerant software techniques software engineering jelinski moranda. This diversity is normally applied under the form of recovery blocks or n version programming. We first implement the support using an object library approach and then redesign it using a reflective one.
The three approaches discussed are the recovery block approach, n version programming, and n selfchecking programming. The largest commercial success in faulttolerant computing has been in the area of transaction processing for banks, airline reservations, etc. The n version programming nvp approach achieves fault tolerant software units, called n version software nvs units, through the development and use of software diversity. Performability and reliability modeling of n version fault tolerant software in real time systems katerina go. Introduction multiversion or n version programming i has been proposed as a method of providing fault tolerance in software. Twentyfifth international symposium on faulttolerant computing, 1995. On the implementation of nversion programming for software fault. Nov 06, 2010 an introduction to software engineering and fault tolerance. The authors give extremely general structured definitions of hardware and software fault tolerant architectures by classifying various existing approaches to software fault tolerance. A total of 27 versions of a program were prepared in.
728 56 561 828 1159 848 108 853 1397 20 1216 448 949 1152 864 1323 276 1056 44 5 399 71 1629 360 105 98 1106 304 445 215 462 947 73 383 885