Software errors have become the major source of failures in complex systems. The current software engineering practice to achieve reliable software is to avoid errors during design and implementation and to remove committed errors through extensive test-ing. Although quite effective, experience has shown that it is insufficient to ensure the degree of correct-ness required by critical applications such as avionics control. Software fault tolerance (SWFT). which enhances the system's ability to tolerate the errors that survived during the testing phase, has been proposed as an additional measure to achieve ultra-high dependability. Although first introduced nearly two decades ago, software fault tolerance is not widely used partly due to its difficulty in implementation.
展开▼