Earlier versions of the UML specification had the explicit statement that "a named navigable AssociationEnd
is an Attribute"[my emphasis].
Whether the current
[size=13]UML 2.1 Superstructure (interim)[/size] Specification says that or not is of no real relevance, since one can deduce this from first principles, and indeed, EA
adheres to this for reverse engineering.
The reason for this posting is that EA
doesn't adhere to this for the actual modelling...
When you select a role from the Source (or Target) Role drop-down - you are selecting the appropriate Classifier's Attribute! It makes no sense, therefore, to not make the metadata the same. If the attribute is private, then the AssociationEnd needs to be made private and so on... In particular, if I am selecting an attribute, then I'm explicitly saying make this end the same...
If I create a
new name, then EA should ask if I want to create the corresponding Attribute and create it using the metadata of the AssociationEnd as I close the dialog.
For an existing Attribute/AssociationEnd pairing, if I change one side, the other side should change correspondingly.
I have been "banging on about this" since I started using EA, but it is now starting to really hurt. (Besides,
the current behaviour is just plain wrong... If I give such an inconsistent model to a coder, which ambiguous design fact do they code from?)
We are a design shop. We don't do much coding, our designs are implemented by others (and eventually we hope to write code from high level "intensional" models). So having to keep this stuff manually in synchronization is error-prone. We could write some automation to help, but why should
we?
This, in my view, should be
CORE EA functionality (as should be checking this pairing via the
Model Validation [Ctrl+Alt+V] process).
This needs to be fixed urgently. The current behaviour is unacceptable.
Paolo
[size=0]©2006 Paolo Cantoni, -Semantica-[/size]