What does a diamond sign signify in UML class diagrams?

Geek picture Geek · Feb 28, 2013 · Viewed 78.9k times · Source

Consider the below two diagrams. The top one contains a plain arrow at the right end, and the bottom one contains an arrow with a diamond at the left end and a plain arrow at the right end. The great book GoF has usages of both of these two kinds of diagrams.

I want to understand what does the diamond signify in the second case, and which one of these two gives a stronger association between Customer and Order.

Is the Customer class responsible for the lifecycle of Order class in either of the two cases?

enter image description here enter image description here

Answer

C.Champagne picture C.Champagne · Feb 28, 2013

If there is no diamond, then we have a simple association.

If the diamond is left empty, it signifies it is an aggregation. This relation is stronger than a simple association. In this case a Customer aggregates Orders.

If the diamond is black, this means it is a composition, which is even stronger than an aggregation because the aggregated class cannot be aggregated by other classes. Its "life" depends on the container.

I think it's explained a little bit more clearly, at: