The authors present a checklist of 11 items for use in a source code inspection. This checklist guides a safety analysis of software that supervises or controls a safety-critical application. The paper is clearly written, and provides good references that make it valuable for software engineers. The authors enumerate (in random order) the core items on the checklist, and illustrate some items with C, PL/M, or assembly language code fragments. The paper includes a table that shows how frequently the checklist items lead to the discovery of coding errors.
The checklist contains the items listed below, and is sorted by frequency, starting with the most helpful items for finding safety errors in a source code review. The routines should: use input/output (I/O) tests for handling reentrance; include comments that are helpful in maintenance; use control structures that achieve correct flow control; contain no unused source code; make appropriate use of variables and constants; be simple and legible; use clear preprocessor directives; use the correct return method; perform interrupt handling correctly; use correct repetitive-loop control; and avoid optimizations during compilation.
The interested reader should consider the illustrations that the authors provide for these items. The checklist should be regarded as a dynamic list that invites changes, updates, and resorting. Hopefully, some of the items at the top of the list can be emphasized in the earlier stages of the safety-critical software development process, and thus improve the engineering process.