Object - Oriented design using java - Skrien, Dale (McGraw Hill, 2009)