SOFTWARE ENGINEERING CONCEPTS - RICHARD, FAIRLEY (2007)