Structural analysis of explicit fault-tolerant programs

Explicit fault tolerant programs are characterized by proactive efforts to ensure robustness and ability of fault correction. A fault tolerant application is usually realized conforming to one of a collection of standard techniques. Graph based methods can be used to examine existing applications to derive a control flow abstraction with respect to the fault-tolerance architecture. This abstraction, which we call the fault tolerance behavioural type, can be used as basis of structural analysis of the implemented architecture. This paper outlines the basic ideas and demonstrates their application using CTL (Computation Tree Logic) model checking to verify fault tolerance properties of explicit fault-tolerant programs.

[1]  L. N. Simcox Software Fault Tolerance , 1988 .

[2]  Jean Arlat,et al.  Hardware- and Software-Fault Tolerance , 1990 .

[3]  Peter Alan Lee,et al.  Fault Tolerance , 1990, Dependable Computing and Fault-Tolerant Systems.

[4]  Algirdas Avizienis,et al.  The N-Version Approach to Fault-Tolerant Software , 1985, IEEE Transactions on Software Engineering.

[5]  Farokh B. Bastani,et al.  Toward dependable safety-critical software , 1996, Proceedings of WORDS'96. The Second Workshop on Object-Oriented Real-Time Dependable Systems.

[6]  Behrooz Parhami Design of reliable software via general combination of N-version programming and acceptance testing , 1996, Proceedings of ISSRE '96: 7th International Symposium on Software Reliability Engineering.

[7]  Hermann Kopetz,et al.  Fault tolerance, principles and practice , 1990 .

[8]  Stefan Gossens Enhancing system validation with behavioural types , 2002, 7th IEEE International Symposium on High Assurance Systems Engineering, 2002. Proceedings..

[9]  Michael R. Lyu Software Fault Tolerance , 1995 .

[10]  Timothy K. Tsai,et al.  Fault tolerance via N-modular software redundancy , 1998, Digest of Papers. Twenty-Eighth Annual International Symposium on Fault-Tolerant Computing (Cat. No.98CB36224).

[11]  Nancy G. Leveson,et al.  The Consistent Comparison Problem in N-Version Software , 1989, IEEE Trans. Software Eng..

[12]  Nancy G. Leveson,et al.  An experimental evaluation of the assumption of independence in multiversion programming , 1986, IEEE Transactions on Software Engineering.

[13]  Kenneth L. McMillan,et al.  The SMV System , 1993 .

[14]  Brian Randell,et al.  System structure for software fault tolerance , 1975, IEEE Transactions on Software Engineering.

[15]  Edmund M. Clarke,et al.  Model Checking , 1999, Handbook of Automated Reasoning.