Classic techniques, such as stepwise refinement, are used to
implement each of the subsystems.
Subsystems are validated in isolation.
-
Informal proofs of correctness for the subsystem are developed.
-
Identify necessary conditions for correct functioning.
Try to minimize conditions, and test input values whenever possible.
-
Software testing is used as a confidence building measure.