Abstract
This paper discusses different techniques for constructing a piece of self-checking software for systems where ultra-reliability is required. Self-checking software can be designed to detect software errors, to locate and to stop the propagation of software errors, to assist in the recovery from errors and to verify the integrity of the system. Self-checking techniques can be implemented in the program to check the function, the control sequence and the data of a process. The functional aspects of a process can be monitored to detect infinite loops, incorrect loop terminations, illegal branches and wrong branches. The validity of data of a process can be assured by performing checks on the integrity of data values, the integrity of data structures and the nature of data values. These self-checking capabilities should be implemented during the initial stage of program development. The cost-effectiveness of each technique in the particular operating environment should be evaluated. Only the most cost-effective techniques should be retained and overhead can be reduced considerably by implementing these techniques in hardware.
- 1 B. W. Boehm, "Software and Its Impact: A Quantitative Assessment," Datamation, May, 1973, pp. 48-59.Google Scholar
- 2 C. V. Ramamoorthy, R. C. Cheung, and K. H. Kim, "Reliability and Integrity of Large Computer Programs," Lecture Notes in Computer Science, (ed. by G. Goos and J. Hartmanis), Springer-Verlag, 1974. Google ScholarDigital Library
- 3 B. Randell, "Operating Systems: The Problems of Performance and Reliability," Information Processing 71, pp. 281-290.Google Scholar
- 4 J. R. Connet, E. J. Pasternak and B. D. Wagner, "Software Defenses in Real-Time Control Systems," 1972 Int. Sym. on Fault-Tolerant Computing, pp. 94-99.Google Scholar
- 5 R. S. Fabry, "Dynamic Verification of Operating System Decisions," Comm. of ACM, Vol. 16, No. 11 Nov. 1973, pp. 659-668. Google ScholarDigital Library
- 6 R. W. Watson, Time Sharing System Design Concepts, McGraw-Hill, 1970. Google ScholarDigital Library
- 7 J. R. Kane, and S. S. Yau, "Concurrent Software Fault Detection," IEEE Trans. on Software Engineering, Vol. 1, No. 1, March, 1974.Google Scholar
- 8 C. V. Ramamoorthy and R. C. Cheung, "Integrity of Large Software Systems," 3rd Annual Texas Conference on Computing Systems, 1974.Google Scholar
- 9 R. C. Cheung, "A Structural Theory for Improving Software Reliability," Ph.D. Thesis, Dept. of Electrical Engineering and Computer Sciences, University of California, Berkeley, California, 1974.Google Scholar
- 10 C. V. Ramamoorthy, R. E. Meeker and J. Turner, "Design and Construction of an Automated Software Evaluation System," IEEE Sym. on Computer Software Reliability, 1973.Google Scholar
Index Terms
- Design of self-checking software
Recommendations
Design of self-checking software
Proceedings of the international conference on Reliable softwareThis paper discusses different techniques for constructing a piece of self-checking software for systems where ultra-reliability is required. Self-checking software can be designed to detect software errors, to locate and to stop the propagation of ...
A Theory of Totally Self-Checking System Design
A totally self-checking digital system uses error detecting codes at subsystem interfaces to detect faults before they can lead to harmful undetected errors. This paper develops a formal model for studying totally self-checking systems.
Comments