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