The AOP methodology and associated tools allow programmers to decouple the functional development of programs from aspects that cross-cut all or many components and levels in the system. These programming of these aspects are then done separately and woven into the program with tools. Typical AOP techniques allow the aspects to be turned on or turned off easily in the resulting application software. Real-time and fault-tolerance are such aspects that their enforcement requires a coordinated approach at all levels of the system and typically spans multiple components.
[SSO$^+$99]: presents a work on tolerating hardware faults by means of software (software-implemented hardware fault tolerance). This work mainly targets faults caused by radiation induced single-event upsets (SEUs). SEUs are a major concern in a space environment, and have also been observed on ground levels. Other sources of transient faults are electromagnetic interference and power supply glitches. An example effect is a bit-flip an undesired change of state in the content of a storage element. The effects in combinational circuits, e.g., an arithmetic logic unit (ALU), can lead to incorrect computation results. According to the technique presented in this work, program is compiled and the obtained assembly code is passed through EDDI (error detection by duplicated instructions) and finally the executable code has error detection capability. EDDI also embeds signatures into the code to detect flow errors in programs. The work also presents SI error-detection-and-correction mechanism (EDAC) as a memory protection against SEUs.