Designing object oriented software - Wirfs-Brock,, Rebecca (Prentice Hall, 2001)