What every programmer should know about object-oriented design - Page-Jones, Meilir (Dorset House, 1995)