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