This post is actually divided in two questions:
Which kinds of associations classes/interfaces usually have?
I'd say there are at least 3 kinds of dependencies:
- Inheritance : I think we all know this one)
- Dependency : with this I mean that if
class Adepends onclass B, I can only instantiateclass Aif I pass itclass Bas constructor argument. Is this correct? - Uses :
class Ausesclass Bif there is any kind of reference ofclass Bin the code ofclass Athat is neither inheritance of dependency.
Are these the only kind of associations between classes? Are my interpretations of what they mean correct?
Which kind of dependencies are of our interest to show on UML diagrams (mostly class/package diagrams)?
Up until now, I've mostly only put in class diagrams arrows depicting dependencies associations. But now that I think of it, most of the time I look at class diagrams, I'll find something along the lines of

where only Inherits and Uses associations are shown. But those Uses in the class diagram aren't really the same kind of Uses I've defined above. They are just a way of telling you there's a getter on a class of a type that's not a primitive.
I guess that if I had to look to some system's documentation I'd like to know how different classes in the system depend on each other. I'd definetely like to have some sort of Dependency Graph to look at.
Would it better to restrict class diagrams to Inherits/Uses associations and then have other diagram/graph that shows Depends/Uses associations?
How do you prefer it, and why?
Thanks