Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

UML ternary association

I'm currently having some trouble understanding ternary associations in UML. I get the binary ones, but I am unsure how multiplicity works on ternary. I'm doing exercises that I got from my university, the current one goes like this:

One department may sell many products, but only to one market. On a market one product may only be sold by one department.

enter image description here

I've read on different sources about how I'm supposed to think about a pair of the two classes I'm not trying to figure out the multiplicity for, but my brain just isn't getting it. Help me Overflow Kenobi, you're my only hope.

like image 561
Heeiman Avatar asked Oct 24 '17 18:10

Heeiman


2 Answers

The model in the answer of Geert Bellekens is correct, but his explananation is confusing. The ternary association "Offering" with its multiplicities (cardinality constraints) cannot be explained by the statement

For any given Offering there must be exactly one market, one department and one or more products

but rather by stating that

  • a combination of department and product is linked to exactly one market
  • a combination of market and product is linked to exactly one department
  • like image 112
    Gerd Wagner Avatar answered Oct 26 '22 00:10

    Gerd Wagner


    There seems to be some ambiguity in the specification of multiplicities on ternary associations. See also this paper

    But I understand it like this:

    The multiplicity says something about how many times an instance may be present in this associations for any given tuple of linked instances.

    As an example, consider the following (traditional) family enter image description here
    I would understand that as

    In any given family there must be one father, one mother and zero or more children.

    If we apply that to your case then I come to something like this:

    enter image description here
    I understand that as

    For any given Offering there must be exactly one market, one department and one or more products

    That seems to satisfy more or less all of your constraints

    • A Product can only be offered to one market by one department
    • A Department can offer multiple products, but one product can only be offered to one market

    I don't think it's waterproof though, but as the paper already stated, UML does not have enough tools to make a waterproof design with the multiplicities on the ends alone. So for good measure, your constraints should also be modeled as UML constraints.

    Disclaimer: Ternary associations are really nice for academical discussions, but are not really used in the (IT) industry, probably because they are so hard to understand.

    like image 28
    Geert Bellekens Avatar answered Oct 26 '22 00:10

    Geert Bellekens