This text illustrates and explains the constructive approach to software
development. The approach involves calculating an answer from the
initial statement of requirements or specification, rather than
"guessing" an answer and then testing whether it actually works. It uses
the same basic theory as traditional techniques, but is much quicker and
easier as no "wrong answers" are obtained. The text is accessible to
anyone with a basic background knowledge of formal methods. It is
intended for 3rd/4th year undergraduate and postgraduate and software
developers in industry.