[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].