An introduction to program design - Sargent, David (McGraw-Hill international series in sotfware engineering, 1991)