Advertisement

Assuring Design Diversity in N-Version Software: A Design Paradigm for N-Version Programming

  • Michael R. Lyu
  • Algirdas Avižienis
Part of the Dependable Computing and Fault-Tolerant Systems book series (DEPENDABLECOMP, volume 6)

Abstract

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. 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 value. Design diversity is potentially an effective method to get this result. It has been the major concern of this paper to formulate a set of rigorous guidelines, or a design paradigm for the investigation and implementation of design diversity in building NVS units for practical applications. This effort includes the description of a most recent formulation of the NVP design paradigm, which integrates the knowledge and experience obtained from fault-tolerant system design with software engineering techniques, and the application of this design paradigm to a real-world project for an extensive evaluation. Some limitations of the approach are also presented.

Keywords

Design Diversity Software Fault Flight Simulation Design Paradigm Annual International Symposium 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [1]
    A. Avižienis and L. Chen, “On the implementation of n-version programming for software fault-tolerance during program execution,” in Proceedings COMPSAC 77, pp. 149-155, 1977.Google Scholar
  2. [2]
    A. Avižienis, “The n-version approach to fault-tolerant software,” IEEE Transactions on Software Engineering, vol. SE-11, pp. 1491–1501, December 1985.CrossRefGoogle Scholar
  3. [3]
    A. Avižienis, M. Lyu, and W. Schutz, “In search of effective diversity: A six-language study of fault-tolerant flight control software,” in Proceedings 18th Annual International Symposium on Fault Tolerant Computing, IEEE, June 1988.Google Scholar
  4. [4]
    L. Chen and A. Avižienis, “N-version programming: A fault-tolerance approach to reliability of software operation,” in Digest of 8th Annual International Symposium on Fault-Tolerant Computing, pp. 3-9, June 1978.Google Scholar
  5. [5]
    A. Avižienis and J. Kelly, “Fault-tolerance by design diversity: Concepts and experiments,” Computer, vol. 17, pp. 67–80, August 1984.CrossRefGoogle Scholar
  6. [7]
    M. Lyu, A Design Paradigm for Multi-Version Software. PhD thesis, UCLA Computer Science Department, Los Angeles, California, May 1988.Google Scholar
  7. [8]
    K. Kim, “Distributed execution of recovery blocks: An approach to uniform treatment of hardware and software faults,” in Proceedings IEEE 4th International Conference on Distributed Computing Systems, pp. 526-532, May 1984.Google Scholar
  8. [9]
    J.-C. Laprie, “Hardware-and-software dependability evaluation,” in Proceedings 11th World IFIP Congress, pp. 109-114, September 1989.Google Scholar
  9. [10]
    J. Lala, L. Alger, S. Friend, G. Greeley, S. Sacco, and S. Adams, “Study of a unified hardware and software fault tolerant architecture,” Contract Number NAS1-18061 181759, NASA, January 1989.Google Scholar
  10. [11]
    U. Voges, Software Diversity in Computerized Control Systems, ch. Use of Diversity in Experimental Reactor Safety Systems, pp. 29–49. Wien, Austria: Springer-Verlag, 1988.Google Scholar
  11. [12]
    L. Gmeiner and U. Voges, “Software diversity in reactor protection systems: An experiment,” in Proceedings IFAC Workshop SAFECOMP’79, pp. 75-79, May 1979.Google Scholar
  12. [13]
    P. Bishop, D. Esp, M. Barnes, P. Humphreys, G. Dahll, and J. Lahti, “PODS-a project of diverse software,” IEEE Transactions on Software Engineering, vol. SE-12, pp. 929–940, September 1986.Google Scholar
  13. [14]
    M. Dyer, “Certifying the reliability of software,” in Proceedings Annual National Joint Conference on Software Quality and Reliability, March 1988.Google Scholar
  14. [15]
    J. Kelly and A. Avižienis, “A specification oriented multi-version software experiment,” in Digest of 13th Annual International Symposium on Fault-Tolerant Computing, pp. 121-126, June 1983.Google Scholar
  15. [16]
    T. Anderson, P. Barrett, D. Halliwell, and M. Moulding, “Software fault tolerance: An evaluation,” IEEE Transactions on Software Engineering, vol. SE-11, pp. 1502–1510, December 1985.CrossRefGoogle Scholar
  16. [17]
    P. Traverse, Software Diversity in Computerized Control Systems, ch. AIRBUS and ATR System Architecture and Specification, pp. 95–104. Wien, Austria: Springer-Verlag, 1988.Google Scholar
  17. [18]
    K. Tso and A. Avižienis, “Community error recovery in n-version software: A design study with experimentation,” in Digest of 17th Annual International Symposium on Fault-Tolerant Computing, pp. 127-133, July 1987.Google Scholar
  18. [19]
    S. S. Brilliant, J. C. Knight, and N. G. Leveson, “The consistent comparison problem in n-version software,” IEEE Transactions on Software Engineering, vol. 15, pp. 1481–1485, November 1989.CrossRefGoogle Scholar
  19. [20]
    C. Ramamoorthy, Y. Mok, F. Bastani, G. Chin, and K. Suzuki, “Application of a methodology for the development and validation of reliable process control software,” IEEE Transactions on Software Engineering, vol. SE-7, pp. 537–555, November 1981.CrossRefGoogle Scholar
  20. [21]
    J. P. J. Kelly, D. E. Eckhardt, A. Caglavan, J. C. Knight, D. F. McAllister, and M. A. Vouk, “A large scale second generation experiment in multi-version software: Description and early results,” in Proceedings The Eighteenth International Symposium on Fault-Tolerant Computing, June 1988.Google Scholar
  21. [22]
    J. J. Chen, Software Diversity and Its Implications in the N-version Software Life Cycle. PhD thesis, UCLA Computer Science Department, Los Angeles, California, 1990.Google Scholar
  22. [23]
    J.-C. Laprie, “Dependability evaluation of software systems in operation,” IEEE Transactions on Software Engineering, vol. SE-10, pp. 701–714, November 1984.CrossRefGoogle Scholar
  23. [24]
    A. Avizienis and J.-C. Laprie, “Dependable computing: From concepts to design diversity,” in Proceedings of the IEEE, May 1986.Google Scholar
  24. [25]
    J. D. Musa, A. Iannino, and K. Okumoto, Software Reliability — Measurement, Prediction, Application. New York, New York: McGraw-Hill Book Company, 1987.Google Scholar
  25. [26]
    T.-F. P., “Software validation by means of statistical testing: Retrospect and future direction,” in Proceedings the First International DCCA Working Conference, pp. 15-22, August 1989.Google Scholar
  26. [27]
    D. Eckhardt and L. Lee, “A theoretical basis for the analysis of multiversion software subject to coincident errors,” IEEE Transaction on Software Engineering, vol. SE-11, pp. 1511–1517, December 1985.CrossRefGoogle Scholar
  27. [28]
    B. Littlewood and D. Miller, “Conceptual modeling of coincident failures in multiversion software,” IEEE Transactions on Software Engineering, vol. 15, pp. 1596–1614, December 1989.MathSciNetCrossRefGoogle Scholar
  28. [29]
    J.-C. Laprie and B. Littlewood, “Quantitative assessment of safety-critical software: Why and how?,” in Proceedings Probabilistic Safety Assessment and Management Conference, February 1991.Google Scholar
  29. [30]
    M. Joseph, Architectural Issue in Eault-Tolerant, Secure Computing Systems. PhD thesis, UCLA Computer Science Department, Los Angeles, California, May 1988.Google Scholar
  30. [31]
    B. W. Boehm, “A spiral model of software development and enhancement,” IEEE Computer, pp. 61-72, May 1988.Google Scholar

Copyright information

© Springer-Verlag/Wien 1992

Authors and Affiliations

  • Michael R. Lyu
    • 1
  • Algirdas Avižienis
    • 2
  1. 1.Electrical and Computer Engineering DepartmentThe University of IowaIowa CityUSA
  2. 2.Computer Science DepartmentUniversity of California at Los AngelesLos AngelesUSA

Personalised recommendations