UML難しい。いや、定義は簡単かもしれませんが。
実装を考えると関係と依存って同じなんじゃないか?とか。
実際の言語バインディングから考えてるから根本の姿勢が間違っているといわれるでしょうけど、実際どう切り分けて設計するもんなのか。
と悩んでたらこんな話が
http://www.ogis-ri.co.jp/otc/otc2/oosquare-ml/Archive/200107.month/2244.html

UMLでやなこと。、
・図で表現するっつーことはテキストではないのでドキュメントの更新が煩雑
・図の形式がそんなに違いがないもの(点線・実践)がどーゆー意味だったかってのを頭に叩き込むのが面倒っつーか、どっちがどっちだっけ?という状態になりがち。ドキュメント自体に、UML記法リファレンスをHELPみたいにつけたほうがいいかな。

「理解することは分けること」という言葉がある。
○と×はすぐ分けられるが、○と●は、あれ、どっちだっけ?ってなるよね。UMLはそんなケースが多いわ。