The need for highly reliable, continuously available, and extremely safe software is continuously growing as the application domain of software widens. There are two approaches that can help designers improve the reliability of a software system. The first approach, fault prevention, attempts to eliminate any possibility of faults in a system before it goes operational. The second approach, fault tolerance, enables a system to continue functioning even in the presence of faults.
Two schemes for software fault tolerance are Forward Error Recovery (FER) and Backward Error Recovery(BER). Forward error recovery attempts to continue operations from an erroneous state by making selective corrections to the system state. Backward error recovery relies on restoring the system to a safe state previous to that in which the error occurred. Two of the most widely used techniques for sequential software are Recovery Block(RB) and N-version Programming(NVP). In general BER and FER can be achieved by RB and NVP techniques respectively.
This thesis suggests the RB and NVP constructs for Ada language to support software fault tolerant programming. Preprocessor was devised to translate the program modules including these constructs into the pure Ada language codes. By this procedure programmers can concentrate on their own applications such as algorithms and achieve the software modification and maintenance easily.
The significance of thesis lies in separating the application programs and the software fault tolerant mechanisms to develop them independently.