A dependency exists between two elements if changes to the definition of one element may cause changes to the other.
A dependency exists between two elements if changes to the definition of one element may cause changes to the other.
To quote from the 3rd edition of UML Distilled:
An element C (the client) depends on an element S (the supplier) if and only if changes to the definition of S may cause changes to C.
If the elements are classes, only the direct cause for change (i.e. not through a ripple effect) is called a dependency, i.e. the relation is not transitive.
For packages, C depends on S if a class in C depends on a class in S. Sometimes, the transitive closure is taken, i.e. the dependency of C on a package T can be caused by C depending on S depending on T via class dependencies.
References: