Issue No.01 - March (1975 vol.1)
J. Richard Kane , Department of Computer Sciences, Northwestern University, Evanston, Ill. 60201; Bell Laboratories, Naperville, Ill. 60540
Stephen S. Yau , Departments of Computer Sciences and Electrical Engineering, Northwestern University, Evanston, Ill. 60201
A module is an abstract component of a software system. It may be interpreted as a machine instruction, high level language statement, subroutine, procedure, etc. A sequence of modules is executed for each transaction processed by the system; Control faults manifest themselves as incorrect execution sequences. A graph-theoretic model for software systems is presented which permits a system to be characterized by its set of allowable execution sequences. It is shown how a system can be structured so that every execution sequence affected by a control fault, is obviously in error, i.e., not in the allowable set defined by the system model. Faults are detected by monitoring the execution sequence of every transaction processed by the system and comparing its execution sequence to the set of allowable sequences. Algorithms are presented both for structuring a system so that all faults can be detected and for fault detection concurrent with system operation. Simulation results are presented which support the theoretical development of this paper.
Fault detection, Software systems, Hardware, Program processors, Abstracts, Process control, software faults, Algorithm, concurrent fault detection, control faults, fault model, implementation, performance, simulation
J. Richard Kane, Stephen S. Yau, "Concurrent software fault detection", IEEE Transactions on Software Engineering, vol.1, no. 1, pp. 87-99, March 1975, doi:10.1109/TSE.1975.6312823