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