Ваші коментарі

спасибо, кажется все стало на свои места)

Зависимость -- базовая связь между объектами

Ассоциация -- связь, И один объект имеет постоянный доступ к другому (у объекта А есть поле с объектом В)

Агрегация — связь между объектами, постоянный доступ, И один из объектов — контейнер, а второй — компонент.

Композиция — связь между объектами, постоянный доступ, И один из объектов — контейнер, а второй — компонент И контейнер управляет жизненным циклом компонента.

все ок, спасибо что ответили)

Получается ассоциация, это базовое представление агрегации и композиции?

в книги, где показываете отличие ассоциации и зависимости, вы привели следующий пример:

class Professor is
    field Student student
    // ...
    method teach(Course c) is
        // ...
        this.student.remember(c.getKnowledge())

разница в том, что при ассоциации, есть постоянный доступ к полю student. Окей, вроде понятно, пытаюсь понять дальше. 
Вы говорите что разница между ассоциацией и агрегацией в том что:

Агре­га­ция — это спе­ци­а­ли­зи­ро­ван­ная раз­но­вид­ность ассо­ци­а­ции, кото­рая опи­сы­ва­ет отно­ше­ния один-ко-мно­гим, мно­гие-ко-мно­гим, часть-целое между несколь­ки­ми объ­ек­та­ми, тогда как ассо­ци­а­ция уста­нав­ли­ва­ет связь толь­ко между двумя объектами.”

но на вики говорится что при ассоциации связь может быть не только между двумя обьектами. 

Получается следующее:
Есть обьект Professor, у которого есть поле student, в котором "живет" обьект типа Student
это является ассоциацией. Получается говоря об агрегация, и композиция, подразумевается управление жизненным циклом зависимости (поле student)?
Что при агрегации, что при композиции, у нас есть поле, с постоянным доступом к зависимости
Я запутался:С Надеюсь вы сможете направить на правильные мысли