Aggregation and Composition - often interchanged, meaning a whole is
assembled from its parts.
Actually,......
Left = Aggregation
empty diamond of aggregation designates that the whole maintains a
reference to its part.
the whole may not have created the part.
This is equivalent to a C++ reference or pointer construction.
Right = Composition
The filled diamond signifies that the whole is responsible for creating
its 'parts'.
Which is equivalent to saying that when the whole class is allocated
or declared the constructors of the part classes are called followed
by the constructor for the whole
Composition of a yatch
Composition dependencies
composition can be inherited and the same convention as
for ordinary associations is used to show this: a / mark on the
link Type B inherits components A1 and A2.
Consider a type A with subtypes B and C. A also has components
A1 and A2. Class B has components B1 and B2. The composition structure
for Class B therefore includes two derived components as shown