In spite of its 50 year history, software
development is a curious immature affair. To do better we must recognise
the great variety in our problems and products, we must think consciously
about development risks, we must focus our attention where it matters, we
must learn from experience, and we must be masters, not pedants, of
A method for solving problems must be
closely expressed in terms of the problems it can help you solve
If a method doesn’t talk about the problem, how
can it help you solve it?
The method used in designing the program is to
break the specified problem down into a number of sub-problems expressed in
English. The same idea is then used to break down each sub-problem into
further sub-problems. The method is applied successively until each of the
sub-problems can be readily and easily expressed in the programming
language. This is called programming by stepwise refinement.