UML Aggregation Multiplicity

309 views Asked by At

UML Diagram

What do the diagram's multiplicity values mean? Do they mean each ShoeStore must have 1 instance of NikeShoes, and that the same instance can be part of many ShoeStore instances? In other words, many ShoeStores might have the same pair of shoes (an instance, not the type) to sell? Thanks.

2

There are 2 answers

0
qwerty_so On

The diagram shows a shared aggregation relation. As per UML 2.5 this has no defined semantics. P. 110:

shared | Indicates that the Property has shared aggregation semantics. Precise semantics of shared aggregation varies by application area and modeler.

So what is left is an association (except there is some hidden document explaining the exact semantics of the diamond). And that means you can have 1 NikeShoes in 0..n ShoeStore. What ever that might mean.

Regarding multiplicities: pp. 34 of UML 2.5 says

A multiplicity with zero as the lower bound and an unspecified upper bound may use the alternative notation containing a single star “*” instead of “0..*” multiplicity.

0
Christophe On

The 1 multiplicity is a defined shortcut for 1..1, meaning that every instance of ShoeStore must have at minimum and and maximum 1 instance of NikeShoe.

The reverse * multiplicity is a defined shortcut for 0..* which means that an instance of NikeShoe can be part minimum 0 and maximum an infinity of instances of ShoeShop.