Object - Oriented software engineering - Stephen R. schach (McGraw - Hill New York, 2008)