Head First Object Oriented Analysis Design (2009)