Software faults are the result of product complexity that is beyond the developers' capabilities in specification, design, verification, and testing. For example, the power-assisted steering system in cars is built upon and backed up with a simpler mechanical steering system. The mechanical steering system is said to be analytically redundant with the power-assisted steering system in the sense that it provides just enough of the power steering system's performance to assure safety. Power-assisted brakes follow the same principle. This window will remain open to display figures in this file, although it might be hidden behind other browser windows.
Analytic redundancy can be and has been applied to software systems.
The high-assurance application kernel is designed to ensure simplicity and reliability. Therefore COTS components whose reliability is uncertain are not used in the high-assurance kernel. On the other hand, COTS components can be used extensively in the high-performance subsystem. The kernel monitors the system state. If the subsystem is driving the system toward a state that the kernel cannot control, the kernel dynamically takes over, meaning that the kernel's outputs are used instead of those of the high-performance subsystem.