All attempts to use formal methods to
derive software from requirement
specifications break down as soon as we
try to use them on realistically large and
non-deterministic systems.
The same is true of attempts to formally
prove the correctness of programs.
The most commonly used paradigm for
SW development is “trial and error”.