Software Design for Engineers and Scientists - Robinson, John A. (2004)