# Visibility of association direction

#1

Hi,

when having an association navigable in both directions, VP does not show any arrows on the association. In my opinion, this should be the view of unspecified navigability in both directions.
Is there any way to configure the behaviour?

Regards,
Philipp

#2

Hello Philipp,

Actually the UML specification specified that:

Suppress arrows for associations with navigability in both directions, and show arrows only for associations with one way navigability. In this case, the two-way navigability cannot be distinguished from situations where there is no navigation at all; however, the latter case occurs rarely in practice.

You can find out more details under the Association section in UML specification.

Best regards,
Rain

#3

Hello Rain,

you’re not right.

UML Superstructure says:

“Various options may be chosen for showing navigation arrows on a diagram. In practice, it is often convenient to suppress some of the arrows and crosses and just show exceptional situations:
• Show all arrows and x’s. Navigation and its absence are made completely explicit.
• Suppress all arrows and x’s. No inference can be drawn about navigation. This is similar to any situation in which information is suppressed from a view.
• Suppress arrows for associations with navigability in both directions, and show arrows only for associations with oneway navigability. In this case, the two-way navigability cannot be distinguished from situations where there is no navigation at all; however, the latter case occurs rarely in practice.”

So it’s a decision of the concrete modeler which option he chooses for his project/model so it should be configurable per project/model as Philipp asks.

Regards,
Metaliza

#4

Hi Philipp and Metaliza,

Thank you for your suggestions. We will check again. When there is any news I will post here.

Best regards,
Jick Yeung

#5

Hi Philipp and Metaliza,

You are correct and we have added a presentation option for the visibility of arrow and/or cross of associations. In order to see the change, you need to update to the latest patch release. For details, please read:

Regarding the change, you can now right click on the background of class diagram and select Presentation Options > Association Display Options > Show Navigation Arrows > %OPTION% from the popup menu.

Here are the available selection:

• Show All Arrows and Crosses
• Hide All Arrows and Crosses
• Hide Arrows With Two-Way Navigability

Hope you like it. If you have any questions, please feel free to post again.

Best regards,
Jick Yeung

#6

I create an association from A-B using the Resource Catalog button and clicking on the second class. When I enable Show All Arrows and Crosses, it shows 2 way navigation rather than the one way I created.

#7

Well, an association is basically 2-way, at least that’s what I pick up from 11.5.3.1:

``````An Association declares that there can be links between instances whose types conform to or implement the associated
types. A link is a tuple with one value for each memberEnd of the Association, where each value is an instance whose
type conforms to or implements the type at the end.``````

But even more interesting is that this behavior is in full compliancy with the UML specification. Check 11.5.4:

``````In practice, it is often convenient to suppress some of the arrows and crosses that signify navigability of association
ends. A conforming tool may provide various options for showing navigation arrows and crosses. As with dot notation,
these options apply at the level of complete diagrams.
· Show all arrows and crosses. Navigation and its absence are made completely explicit.
· Suppress all arrows and crosses. No inference can be drawn about navigation.
· Suppress all crosses. Suppress arrows for Associations with navigability in both directions, and show arrows
only for Associations with one-way navigability. In this case, the two-way navigability cannot be distinguished
from situations where there is no navigation at all; however, the latter case occurs rarely in practice.``````

So as far as I can tell this is all in full compliancy with the specification.