Object-oriented design using java - Skrien, Dale (McGraw-Hill Higher Education, 2009)