bidirectional association doesn't display correctly

66 views
Skip to first unread message

pugventures

unread,
Nov 12, 2019, 2:45:28 AM11/12/19
to StarUML

Dear all,

this is an old issue from 2016: https://groups.google.com/d/msg/staruml/kxSF42sRM0Y/YW3-f0vBBwAJ, but for better visibility I've decided to open up a new ticket.

Description of the behavior:
  1. I create an association or a directed association between two classifiers
  2. In the properties editor of this association:
  • when I only check "end1.navigable" that end becomes navigable/arrow head shows up in the view (as expected)
  • when I only check "end2.navigable" that end becomes navigable/arrow head shows up in the view (as expected)
  • when I leave both "end1.navigable" and "end2.navigable" unchecked, neither ends become navigable in the view (as expected)
  • when I check both "end1.navigable" and "end2.navigable", neither ends become navigable in the view, but what I expect to see is both ends become navigable/have the arrow head


So currently, for me, it's not possible to correctly display bidirectional associations in the view.

I am using StarUML version 3.1.0

Please let me know if you need further information and thanks for looking into it!

Cheers

StarUML

unread,
Nov 13, 2019, 12:31:57 AM11/13/19
to StarUML
Hi,

To our understanding your expectation is not UML standard notation. Please convince us why it should be with clear reference to the UML Standard Specification.

Thanks,
StarUML Team


2019년 11월 12일 화요일 오후 4시 45분 28초 UTC+9, pugventures 님의 말:

pugventures

unread,
Nov 13, 2019, 1:33:40 AM11/13/19
to StarUML
Hello,

Thanks for your quick response!

Bidrectional navigability for binary associations is specified in UML 2.5.1 specification, please see chapter 11.5 Associations, specifically figure 11.29 on page 205.
I'm linking the document here for your convenience: https://www.omg.org/spec/UML/2.5.1/PDF

Thank you

StarUML

unread,
Nov 13, 2019, 2:21:42 AM11/13/19
to StarUML
Hi,

Thank you for your feedback.

It is needed to clarify that association without arrow heads also signifies bidirectional. (It is also correct and this is also mentioned in the UML Specification you indicated).

Providing both ways for bidirectional complicates modeling semantics and causes confusions in current users. We preferred to keep clear and simple.

So could you provide some real-world examples which is important to distinguish the semantic difference between both arrow heads (A-B in the examples) and no arrow heads (E-F in the examples)?

Thanks,
StarUML Team

2019년 11월 13일 수요일 오후 3시 33분 40초 UTC+9, pugventures 님의 말:

pugventures

unread,
Nov 13, 2019, 4:14:06 AM11/13/19
to StarUML
Hello,

I will try to explain what I understand from the UML specification:

There are three possible ends for an association line to specify navigability between two classes:

  1. no arrow head: navigability is unspecified, and it is unkown if the class knows the other one
  2. with arrow head: one class knows the other one (navigable)
  3. cross (X): it is forbidden, difficult or impossible for the class to interact with the other one (non-navigable)

So, 2. and 3. make actual statements about navigability, while 1. just shows an association, but does not make a statement about navigability.

In my own class diagram, I would prefer to be able to show explicit navigability on both ends, because it makes it clear that both classes know each other and can interact with each other, e.g. by calling each other's methods.

If there are no arrow heads on either side of the association, it is possible that both ends are navigable, but it is not explicit.

I have not come across this situation in my case so far, but, typing out this answer, I realized that I haven't found an option for making the ends non-navigable in StarUML, because I can only either check or un-check the navigable checkbox. Is there maybe another way to do this that I've missed?

It does seem like a lot of people just don't put arrow heads on either end, but it would be nice if there was the option to display this explicitly as per UML specification. If I show uni-directional navigability in other parts of the diagram, it is confusing and inconsistent if in some cases association's navigability is simply left unspecified, especially if it's not possible to set explicit non-navigability either.

Maybe this would be something to implement in the future? Just a suggestion, but maybe by default the association lines would have no arrows or crosses (as is now), and in the properties there would be a checkbox for "navigable" (as is now) and another checkbox for "non-navigable" (new). That way, all options would be there, I think that would be pretty cool and helpful, and it would cover all use cases for your customers regarding navigability.

Thanks for the discussion!
Best regards



StarUML

unread,
Nov 13, 2019, 9:51:43 PM11/13/19
to StarUML
Hi,

Thank for your opinion.

We have just posted this issue as a feature request to our main issue tracking system.

Personally, I don't like three-states of navigability (unspecified, navigable, non-navigable). Older version of UML only have two states (navigable or not-navigable) and I prefer this clearness and simplicity. (I still couldn't find real examples for this)

Anyway we will discuss internally for this issue.

Thanks,
StarUML Team

2019년 11월 13일 수요일 오후 6시 14분 6초 UTC+9, pugventures 님의 말:

pugventures

unread,
Nov 14, 2019, 12:53:35 AM11/14/19
to StarUML
Thank you that's great!
Best regards

StarUML

unread,
Mar 22, 2022, 3:44:11 AMMar 22
to StarUML
Hi,

This feature is now available in V5.

Thanks,
StarUML Team

2019년 11월 14일 목요일 오후 2시 53분 35초 UTC+9에 pugventures님이 작성:

escribis

unread,
Mar 23, 2022, 5:45:38 PMMar 23
to StarUML
It is really cool to have the three-kind navigability value as specified in UML 2.5. This enables to make it really clear the difference between implementation models and specification/conceptual model. Just perfect.

 I think however that it would be better to set the default value to "unspecified" rather than "navigable". In the current version reading a V4 class diagram with V5 changes the diagram so it does not look like before. This could be annoying especially for user that don't know what navigability is all about or for user that really don't care. From a user experience it is unpleaseant to have a tool that change the diagrams without any explaination. Well, at least I opened a V4 models, now I have arrows everywhere :-) I understand why but this is a bit weird. My 0.001KRW

Jean-marie

StarUML

unread,
Mar 23, 2022, 11:20:08 PMMar 23
to StarUML
Hi Jean-marie,

Thank you for your opinion. Actually, I thought a lot about that part. It is a matter of making the notation the same or the semantic the same. We've chosen the latter for now, but it might be better to keep the notation. We'll think about it.

Thanks,
StarUML Team
2022년 3월 24일 목요일 오전 6시 45분 38초 UTC+9에 escribis님이 작성:

StarUML

unread,
Mar 26, 2022, 12:35:32 AMMar 26
to StarUML
Now "unspecified" is default for navigability in v5.0.1.

Thanks,
StarUML Team

2022년 3월 24일 목요일 오후 12시 20분 8초 UTC+9에 StarUML님이 작성:
Reply all
Reply to author
Forward
0 new messages