The Methodology of N-Version ProgrammingAuthor : Phalguna Rao Kuna
Volume 8 No.3 Special Issue:June 2019 pp 16-18
Software Fault Tolerance is evolved as a technique to increase the dependability of computing systems. Because of limitations with producing of error free software, Majority of software errors are design faults. The root cause for software design errors is the complexity of the problem domain. Software Fault Tolerance (SFT) has become an important concern A number of Fault Tolerance techniques designed at minimizing the effect of software faults are being investigated. An N-version software (NVS) unit is a fault tolerant software unit that depends on a generic decision algorithm to determine a consensus result from the results delivered by two or more member versions of the NVS unit. Results of five consecutive experimental investigations are summarized, and a design paradigm for NVS is presented. In this paper, a critical review of NVP is presented. The advantages, current challenges, and further research areas of NVP are discussed.
Design Diversity, Software Complexity, Software Fault Tolerance, N-Version Programming
 Ken S. Lew, Tharam Dillon, and Kevin Forward “Software Complexity and Its Impact on software Reliability”, IEEE –Software Eng., Vol. 14, No. 11, pp. 1645-1655, Nov. 1988.
 “Fault Tolerance and fault intolerance. Complimentary approaches to reliable computing”, A. Avizienis, Proc. 1975 Int. Conf. Reliable Software, Los Angels, CA, pp. 458-464, Apr. 21- 27, 1975.
 A. Avizienis, “N-Version Approach to fault tolerant Software”, IEEE Software e.g., Vol. SE.11, No.12, pp. 1491 -1501, Dec. 1985
 B. Randell, “System structure for Software Fault Tolerance”, IEEE Software Eng., Vol. SE.1, pp. 220-232, June 1975.
 “Information processing systems-Reliability and requirements”, Proc. East. Joint Comput. Conf., Washington, DC, pp. 8-10, December 1953.
 J. Oblonsky, “A self correcting computer”, Digital Information processors, W. Hoffman, Ed. New York: Inter science, pp. 533-542, 1962.
 J.F. Barlett, “A Non Stop operating system”, Proc. Hawaii Int. Conf. Syst. Sci, Honolulu, HI, pp 103-119. Reprinted in Theory and Practice of reliable System Design. Bedford, MA: Digital press, pp. 453-460, January 5-6, 1978.
 Timothy C.K. Chou, “Beyond Fault Tolerance”, IEEE Computer, pp. 47-49, April 1997.
 S. N. Wood field, “An experiment on unit increase in program complexity”, IEEE-Software Eng., Vol-SE. 5, No. 2, pp. 76-79, 1979.
 A. Avizienis and L. Chen, “On the implementation of NVP for Fault Tolerance”, Proc. COMPSAC 77, 1st IEEE-CS Int. Compute. Software. Appl. Conf., Chicago, IL, pp. 149-155, Nov. 8-11, 1977
 “A Theoretical Investigation of Generalized Voters for Redundant Systems”, Lorczak, Digest of Papers FTCS-19:The Nineteenth International Symposium on Fault-Tolerant Computing, pp. 444-451, 1989.
 “Dependable, Intelligent Voting for Real-Time Control Software”, Engineering Applications of Artificial Intelligence, Vol. 8, No. 6, pp. 615-623, Dec. 1995.
 Peter Bishop, “Software Fault Tolerance by Design Diversity”, Software Fault Tolerance, John Wiley & Sons, 1995.
 “Software Fault Tolerance: A Tutorial”, Wilfredo Torres-Pomales, NASA Technical Memorandum, Oct. 2000.
 James M. Purtilo and Pankaj Jalote, “An Environment for Developing Fault-Tolerant Software”, IEEE-Software Eng., Vol. 17, No. 2, Feb 1991.