Abstract
We view fault prevention and fault tolerance as complementary strategies for achieving dependability [1]. While fault tolerance in the hardware can be handled by replicating components, design fault tolerance for software requires that development of the redundant components be based on the design diversity approach. Design diversity is the independent generation of multiple software versions from the same requirements [2]. Two general methods have been proposed for providing fault tolerance by design diversity: Recovery Block Software [3] and Multi-Version Software (also called N-Version Programming) [2]. Our work focuses on the Multi-Version Software (MVS) approach in which the multiple versions are executed concurrently and their results are checked against each other by a consensus decision algorithm. A result that deviates from the others by some specified margin is taken as an indication of an underlying software fault.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Bibliography
A. Avizienis and J.C. Laprie, Dependable Computing: From Concepts to Design Diversity, Proceedings IEEE, vol. 74, no. 5, pp. 629 - 638, May 1986.
A. Avizienis and J.P.J. Kelly, Fault Tolerance by Design Diversity: Concepts and Experiments, Computer, Vol 17 No 8, August 1984.
T. Anderson, Software Fault Tolerance, IEEE Trans, on Software Eng., vol. SE-11, No. 12, December 1985, pp 1502–1510.
A. Avizienis and L. Chen, On the Implementation of N-Version Programming for Fault- Tolerance During Execution, Proc. COMPSAC 77, pp. 149–155, November 1977.
C. V. Ramamoorthy, Application of a Methodology for the Development and Validation of Reliable Process Control Software, IEEE Trans, on Software Eng., vol. SE-7, no. 6, November 1981, pp 537 –554.
R.K. Scott, Experimental Validation of Six Fault-Tolerant Software Reliability Models,pp. 102–107 in Digest of 14th Annual International Symposium on Fault Tolerant Computing, June 1984.
J. Dunham, Experiments in Software Reliability: Life-Critical Applications, IEEE Trans, on Software Eng., vol. SE-12, No. 1, pp. 110–123, January 1986.
J.C. Knight and N.G. Leveson, A Large Scale Experiment in N-Version Programming, IEEE Trans, on Software Eng., vol. SE-12, No. 1, pp. 1502–1510, January 1986.
P. Bishop, Project on Diverse Software - An Experiment in Software Reliability, Proceedings IF AC Workshop Safecomp 85, Como, Italy 1985.
J.P.J. Kelly, D. E. Eckhardt, A. Caglayan, J. C. Knight, D. F. McAllister, M. A. Vouk, A Large Scale Second Generation Experiment in Multi-Version Software: Description and Early Results, 18th Annual International Symposium on Fault-Tolerant Computing, June 1988.
L.J.Yount, Architectural Solutions to Safety Problems of Digital Flight-Critical Systems for Commercial Transports, Proc. AIAA/IEEE Digital Avionics Systems Conference and Technical Display, December 1984.
W. Geiger, L. Gmeiner, H. Trauboth, and U. Voges, Program Testing Techniques for Nuclear Reactor Protection Systems. IEEE Computer, August 1979.
L. Gmeiner and U. Voges, Software Diversity in Reactor Protection Systems: An Experiment. Proc. IF AC Workshop, Stuttgart, FRG, 16–18 May 1979.
A. Avizienis, M. Lyu, and W. Schutz, In Search of Effective Diversity: A Six-Language Study of Fault-Tolerant Flight Control Software, Digest of 18th Annual Intl. Symposium on Fault–Tolerant Computing, June 1988.
J.P.J. Kelly and A. Avizienis, A Specification-Oriented Multi-Version Software Experiment, 13th Annual International Symposium on Fault-Tolerant Computing, June 1983.
A.D. Hills, Digital Fly-By-Wire Experience, Proc. AGARD Lecture Series 143 (October 1985).
DJ. Martin, Dissimilar Software in High Integrity Applications in Flight Controls, pp 36.1– 36.13 in Proc AGARD-CPP-330 (September 1982).
Vouk, M., On Testing of Functionally Equivalent Components of Fault-Tolerant Software, IEEE 10th Intl. Computer Software and Application Conference 1986.
Bertrand Meyer, On Formalisms in Specifications, IEEE Software, vol. 2, no. 1, pp. 6 - 26, January 1985.
J.P.J. Kelly and S.C. Murphy, Applying Design Diversity During System Development: An Experiment Using Back-to-Back Testing, submitted for publication, 1989.
ISO 7498, Basic Reference Model for Open Systems Interconnection, International Standard, ISO 7498, Geneva 1984, also CCITT Recommendation X. 200.
Kenneth Turner, Ed., FORTE 88, Proceedings of the First International Conference on Formal Description Techniques, Scotland, September 1988.
ISO/DIS 9074, Estelle: a Formal Description Technique based on an Extended State Transition Model, ISO DIS 9074, 1987.
ISO/DIS 8807, Information Processing Systems - OSI - LOTOS - A Formal Description Technique for the Temporal Ordering of Observational Behavior, ISO Draft International Standard 8807, October 1987.
CCITT, SDL, Specification and Description Language, (Blue Book) Z. 100, International Consultative Committee for Telephony and Telegraphy, Geneva, March 1988.
CCITT, Recommendation T.70, Network Independent Basic Transport Service for the Telematic Services (Red Book), CCITT, Geneva, 1984.
ISO, Guidelines for the Application of Estelle, LOTOS and SDL, Project ISO/ TC 97/SC 21, edited by K. Turner, Stirling, January 1988.
ANSVMIL-STD-1815 A, Reference Manual for the Ada Programming Language, U.S. Dept. of Defense, February 1983.
Behcet Sarikaya, Test Design for Computer Network Protocols, Phd Dissertation, McGill University, March 1984.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1989 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Kelly, J.P.J. (1989). Current Experiences with Fault Tolerant Software Design: Dependability Through Diverse Formal Specifications?. In: Görke, W., Sörensen, H. (eds) Fehlertolerierende Rechensysteme / Fault-tolerant Computing Systems. Informatik-Fachberichte, vol 214. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-75002-1_11
Download citation
DOI: https://doi.org/10.1007/978-3-642-75002-1_11
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-51565-4
Online ISBN: 978-3-642-75002-1
eBook Packages: Springer Book Archive