Основное отличие между агрегацией и композицией в UML заключается в том, что при агрегации объекты-части могут существовать сами по себе, а при композиции — нет. 1
Агрегация — связь между классами, когда объект одного класса содержит другой объект в качестве своей части. 2 При этом объект-часть может принадлежать только одному объекту-целому, и объект-целое продолжает существовать, даже если объект-часть удалён. 2
Композиция — связь между классами, когда объект одного класса является частью объекта другого класса и не может существовать отдельно от него. 2 Когда объект-целое удаляется, все его объекты-части также удаляются. 2 В случае композиции объект-целое полностью контролирует жизненный цикл объектов-частей, которые являются его составными компонентами и могут иметь доступ к его методам и свойствам. 2