Head first object-oriented analysis and design - Mclaughlin, Brett D. (O'Reilly, 2006)