'UML Aggregation Multiplicity
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.
Solution 1:[1]
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.
Solution 2:[2]
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
.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | |
Solution 2 |