program validation - review sheet Suggestion: organize your study around the key concepts outlined below. For each concept have in mind an example where it applies Science: Basic ch 8 - def of wp for skip, abort, composition (ie.sequence of commands) ch 9 - def of wp for assignment, substitution principles ch 10 - def of wp for IFs ch 11 - def of wp for DOs ch 12 - semantics of procedure call, role of argument calling conventions. The core ideas are in these chapters ch 14 - strategy for IF commands, design command first, keep guards strong ch 15 - invariant, bound, 5 point checklist strategy 1 for DO commands, design guard first (for adequacy) keep guards weak strategy 2 for DO commands, design command first (for progress) then design guard for invariance add guarded commands until adequacy ch 16 - developing the invariant balloon theory delete conjunct replace const by var extend range of var combine pre and post conditions ch 17 - designing bounds lex order divide and conquer note that, unlike program vars, bound t may be expressed partly in terms of constants whose value is unknown. ch 18 - iteration and recursion ch 19 - efficiency limit nondeterminism assertion out of loop (hamming example) change a representation ch 21 - inverting programs invertible and not invertible assignments inversion of IF and DO, the read backwards principle What you get from inversion: The perm to code example Testing: Again, organize around the key concepts - but this time the definitions are not as sharp and the boundaries are fuzzy. Still the The main theme is how the basic test design ideas play out in examples. baseline trends push boundaries devious data stress test. use of outline, tables, orthogonality wisely reducing the number of tests