Limitations of Communication Diagrams?

Hello,

I’ve just tried to create a communication diagram in VP-UML 6.4 and have found some unpleasant limitations (especially compared to sequence diagr.) and non-standard behavior. I wonder if it’s really a problem of VP or if I’m just not smart enough to use it correctly.

[ul]
[li] Numbering doesn’t reflect nesting. When A sends a message to B and B sends a message to C then A->B shall be 1, B->C shall be 1.1 but VP numbers them 1 and 2 (see the attached picture). The negative consequence is that you can’t represent different control flows on the diagram, for example when B may decide to send message either to C (nr. 1.1) or to some Z (nr. 1.2). VP would number B->Z as 3 creating the flow 1.A->B, 2.B->C, 3.B->Z while there are 2 alternative flows 1.A->B, 1.1.B->C or 1.A->B, 1.2.B->Z.
[/li][li] There is no tooling support for message that are method calls. In a Sequence diagram (SD) I get a drop-down list with a liferline’s methods to select from, not so on a Communication Diagram (CD).
[/li][li] There is no support for specifying guard conditions and thus branching. Of course when typing a message name (since anyway I can’t select lifeline’s method and must type a string) I can prepend the condition to the name, for example “[! badWeather] goSwimming()”. But VP won’t understand that this is branching. (Due to its nonstandard numbering it couldn’t likely represent it anyway.)
[/li][li] The auto layout is very stupid, places texts one over another, doesn’t make an efficient use of the available space (e.g. putting most lifelines on the same X axis) - see the attached picture. But this is likely not limited to CD, when I tried Auto Layout on a sequence diagram, it has rearranged messages so that they got out of their combined fragments (sections of an Alt).
[/li][/ul]

Environment: VP-UML 6.4 on Linux.
vp-um-ugly_autolayout-communication_diagram.png

Hi Malyvelky,

Thanks for your post and the details, we definitely will put more effort to enhance the Community Diagram. For the issues you mentioned:

  1. Numbering doesn’t reflect nesting
    We’re sorry that currently this is not supported, but we will consider it. If there is any news on this issue, I’ll come back to you immediately.
    At the moment, you can right-click on the Communication Diagram and select Reorder Messages from the popup menu, then you can manually number the messages on the diagram. Hope this helps.

  2. No tooling support on message for method calls
    Currently you can right-click on the message (the arrow beside the link of lifelines) and select Type > Call > Select Operation in the popup menu.
    And we will take this issue into consideration for enhancing the Communication Diagram.

  3. There is no support for specifying guard conditions and thus branching
    The UML SuperStructure Specification does not mention anything about guard condition related to Communication Diagram, do you have any samples or reference about guard condition?

  4. We will optimize the layout on Communication Diagram as well, and I’ll keep you informed for any news on this issue.

If there are any further inquiry, please do not hesitate to ask.

Best regards,
Lilian Wong

The UML SuperStructure Specification does not mention anything about guard condition related to Communication Diagram, do you have any samples or reference about guard condition?

Arlow: UML 2 and the Unified Process, 2nd ed describes branching in communication diagrams using guard conditions in the section 12.11.2, page 267. You can see an example in the diagram I’ve attached to my previous post though it’s not very readable due to layout.

I appreciate very much your swift response and I wish there were more so communicative and customer-friendly companies like VP :slight_smile:

Best regards, MV

Hi Malyvelky,

Thanks for replying. I’ve forwarded the details to our engineers to follow-up. If there is any news on this issue, I’ll come back to you immediately.

Best regards,
Lilian Wong

Hi Malyvelky,

Sorry for my late response. We checked that we already support guard on message on Communication Diagram, but followed the term in old UML Specification (old term is “Recurrence/condition”). We fixed the term and you can download the patch from the following link:

http://files2.visual-paradigm.com/200907/Patch/20090709c/VP_Suite_Windows_4_0_20090709c.exe

When you created Call message between lifeline, you can open Specification dialog of the call action to specify the Guard (see attached image). If there is any question, please feel free to ask.

Best regards,
Lilian Wong

guard_of_message.png

Hi Malyvelky,

I would like to bring you news on issue 4 - optimize the layout on Communication Diagram. We will support using one message arrow for one direction in VP Suite 4.1 (will be available next month). You will be able to select message arrows in same direction, right-click on them and select Combine Messages (see “select_messages_arrow_to_combine.png”). And you can decompose the combined message arrows by right-click on the arrow and select Decompose Messages (see “decompose_messages.png”)

I also sent you a private message about release candidate of VP Suite 4.1, please have a check. Please feel free to contact me if there is anything I can help.

Best regards,
Lilian Wong
select_messages_arrow_to_combine.png
decompose_messages.png