Software Design for Engineers and Scientists by Sir John Robinson