Paper Title
Designing Voter For NVP

Abstract
N-version programming (NVP) is a software structuring technique designed to permit software to be fault-tolerant, i.e., able to operate and provide correct outputs despite the presence of faults. The reason of making the software fault tolerant is trying to increase software reliability for applications where the high cost of failing.Despite efforts to repair and prevent faults during design, faults continue in operational software.By developing versions separately, different designs are assumed to be in a feature called design variety. Most challenging part of NVP is Voter part of system. It decides to which controller the most accurate one is.However, many voting algorithms were already developed and they may be selected for implementation, based on the specifics of the analysis of input data of these algorithms. But, the classification of these voting algorithms for N-version software are not realized. This article presents an overview of recent voting algorithms for N-version software and the author�s classification of voting algorithms. Moreover, the steps of the voting algorithms are presented and the distinctive features of the voting algorithms in N-version software are defined. Index Terms: Voting Algorithms, N-Version Software, Redundancy, Software Reliability, Fault Tolerance