Object-oriented software construction. - Meyer, Bertrand (Prentice Hall International, Inc., 1988)