The Methodology of N-Version Programming
DOI:
https://doi.org/10.51983/ajcst-2019.8.S3.2112Keywords:
Design Diversity, Software Complexity, Software Fault Tolerance, N-Version ProgrammingAbstract
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.
References
K. S. Lew, T. Dillon, and K. Forward, "Software Complexity and Its Impact on Software Reliability," IEEE Software Engineering, vol. 14, no. 11, pp. 1645-1655, Nov. 1988.
A. Avizienis, "Fault Tolerance and Fault Intolerance. Complimentary Approaches to Reliable Computing," Proc. 1975 Int. Conf. Reliable Software, Los Angeles, CA, pp. 458-464, Apr. 21-27, 1975.
A. Avizienis, "N-Version Approach to Fault Tolerant Software," IEEE Software Engineering, vol. SE.11, no. 12, pp. 1491-1501, Dec. 1985.
B. Randell, "System Structure for Software Fault Tolerance," IEEE Software Engineering, 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: Interscience, pp. 533-542, 1962.
J. F. Bartlett, "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.
T. C. K. Chou, "Beyond Fault Tolerance," IEEE Computer, pp. 47-49, April 1997.
S. N. Woodfield, "An Experiment on Unit Increase in Program Complexity," IEEE-Software Engineering, 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.
P. Bishop, "Software Fault Tolerance by Design Diversity," Software Fault Tolerance, John Wiley & Sons, 1995.
"Software Fault Tolerance: A Tutorial," W. Torres-Pomales, NASA Technical Memorandum, Oct. 2000.
J. M. Purtilo and P. Jalote, "An Environment for Developing Fault-Tolerant Software," IEEE-Software Engineering, vol. 17, no. 2, Feb 1991.
Downloads
Published
How to Cite
Issue
Section
License
Copyright (c) 2019 The Research Publication
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.