Редактировать: Переписал ответ после обсуждения в комментариях (спасибо Шимпанзе за указание на то, что я пропустил в Примере 4)
Пример 1: OtherClass является атрибутом MainClass и, таким образом, моделируется как ассоциация.
Примеры 2 и 3: OtherClass упоминается в определении класса, хотя и не хранится в атрибуте, поэтому является зависимостью.
Пример 4. Класс Something является атрибутом и, следовательно, ассоциацией, а ссылается на OtherClass, который не хранится в атрибуте, и поэтому является зависимостью.
В UML зависимости и ассоциации являются обоими типами Отношений и не являются строго связанными (кроме как через общий супертип), хотя, по моему мнению, ассоциация подразумевает зависимость.
Ассоциации обозначены линией между двумя классами с кратностями на каждом конце. Навигация обозначена стрелками, показывающими, какой класс знает о каком (например, класс A ___> Класс B означает, что A осведомлен о B, но не наоборот). Там, где стрелок нет, обычно безопаснее не делать предположений о судоходстве, если не указано иное.
Зависимости обозначены пунктирной линией со стрелкой от зависимого класса (клиента) до класса, от которого зависит (поставщик) (например, A ----> B означает, что A зависит от B). Зависимости показывают, что на класс ссылаются в какой-то момент, и поэтому клиент зависит от операций, предоставляемых поставщиком, но не указывает, как на него ссылаются (в отличие от ассоциации, которая предлагает ссылку, сохраненную в атрибуте). 1017 *