An object-oriented approach to programming logic and design - Farrell, Joyce (cengage learning, 2013)