Object-Oriented Software Engineering - Stephen R. Schach (McGraw Hill, 2008)