Building Functional Safety into Complex Software Systems, Part II
Traditionally, proofs that software systems meet functional safety standards have depended on exhaustive testing. This method is adequate for simple, deterministic systems, with single-threaded, run-to-completion processes. It is inadequate, however, for today's multi-threaded systems. The complexity of these systems precludes their being treated as deterministic systems in practice. This white paper proposes how a combination of procedural rigor, statistical testing, and design verification can be used to increase confidence in the functional safety of complex software systems.