[Fowler97] is not only a good introduction to UML, but contains also many useful insights on the process of object-oriented development. Additionally,  [Fowler97a] may be read as a source on analysis patterns, which are reusable elements of analysis and design. For more information on Fusion, consult  [Fusion]. As earlier references on object-oriented methods, I recommend  [Booch94],  [WWW90] and  [Rum91]. Also worthwhile are  [Henderson93] and  [Champeaux93]. An overview and comparative study of design representation methods is given in  [Webster].  [Meyer97] is the ultimate reference on contracts. A more comprehensive article on design by contract is  [Meyer92].