In
AggregationKind - one end concept?Geert Bellekens writes (and I reply):
[size=18]...[/size]
About this "source/client" and "target/supplier" issue. In UML these concepts are not defined for associations and I think EA should not attach a semantical meaning to the difference.
An association with a composite end at the source should be treated exactly the same as an association with a composite end at the target.
Currently that is not the case.
From a mathematical point of view, Associations are effectively bi-directional: I am the parent of my children. The UML specification effectively re-iterates that. That having been said, we can't "draw" an Association without directedness. One end has to be the origin and one the destination. Since, for the vast majority of UML relationships, the client is the origin and the supplier the destination, we could colloquially call the origin the client and the destination the supplier (it's better to be consistently wrong than inconsistently wrong.
)
In addition, to paraphrase George Orwell, it seems to me that "all Associations are equal, but some are more equal than others". That is to say, now we agree that only one end of the Association can have a not none AggregationKind; then one can, impute the notion of client/supplier.
I would appreciate feedback on some ideas which are now coalescing regarding the consistent (if not correct) treatment of meronymies (the whole-part relationship).
At the end of the quote above, I mention that one can impute the notion of client/supplier to a meronymy (I'm using this term since I don't want to confuse Aggregation the
concept with the arc
type of Aggregation), because, in my view, while notionally Associations are bi-directional, the existence of the (single) AggregationKind changes the nature of the bi-directionality into a semantically directional relationship (similar to dependencies, realizations etc).
My question is:
Is the directionally a universally true concept for meronymies, or is it a matter of convention within any specific model? Note, if the latter, then each model should indicate the convention being used for Ha model.
OK! So, it seems to me that the question hinges on the
semantics of the arc (meronymy). Again,for the sake of (perhaps incorrect) consistency, I'm going to call the origin the
client and the destination the
supplier. Thus, if I have the AggregationKind diamond at the supplier, I would seem to be saying: "Client is a meronym of Supplier" (Supplier is thus the holonym - the whole).
Whereas, if I place the AggregationKind diamond at the client, I would seem to be saying: "Supplier is a meronym of Client" (Client is thus the holonym - the whole).
With the other UML relationships, this is well specified (even if, in the case of Generalization, in the reverse): client
realizes supplier; client is
dependent on supplier, client
specialized supplier, even client
requires supplier (for an Assembly connector).
So far, in my modelling, I've adopted the convention that "Supplier is a meronym of Client" - that is to place the AggregationKind diamond at the origin of the arc. I've reiterated that position in the first post of this topic above. But now, I'm not so sure that's correct.
That's why I'm seeking your views... Since I've been consistent, once I've canvassed your views and come to a conclusion, I will be able to either: Leave what I've got alone - since it still retains the semantics I expressed. Or run a standard query to convert to the different semantics. (Since having been consistently wrong, I'm in a much better position than if I'd been inconsistently wrong...

).
So to be clear, I'm asking for feedback on which is the "correct"
semantics of the meronymy arc:
- Client is a meronym of Supplier (and thus Supplier is holonym of Client)
or
- Client is holonym of Supplier (therefore Supplier is meronym of Client)
Thank you for your contribution.
Paolo