Object-oriented software engineering - Stephen R. Schach (McGraw-Hill, 2008)