Principles of object-oriented software development - Eliens, Anton. (Addison-Wesley, 2000)