Search code examples
plantuml

Positioning Objects in Collaboration Diagram using PlantUML


I am wanting to create a collaboration-like diagram which looks something like this: enter image description here

I am struggling to find a way to mark-up PlantUML to influence the positioning of the various objects. I have also tried using Graphviz directly, but with even worse results.

This is what I is renders as now: enter image description here

Can anyone provide some hints as to what I can try?

@startuml
actor "Operator" as op
actor "Subscriber" as sub
node "HSS" as hss
node "SMDP+" as smdp

op -right-> smdp : 1: Place profile order
smdp -> op : 2: Return provisioning data
op -right-> hss : 3: Provision profile data
op -down-> sub : 4: Provide download info
sub -[norank]> smdp : 5: Request download
hss -[hidden]down-> smdp
@enduml

Solution

  • Here's an attempt using my comments on your question:

    enter image description here

    @startuml
    'left to right direction
    together {
    actor "Operator" as op
    actor "Subscriber" as sub
    }
    together {
    rectangle "HSS" as hss
    rectangle "SMDP+" as smdp
    }
    
    op -right-> smdp : 1: Provisioning data:=\nPlace profile order
    'smdp -> op : 2: Return provisioning data
    op -right-> hss : 2: Provision profile data
    op -down-> sub : 3: Provide\ndownload\ninfo
    sub -[norank]> smdp : 4: Request download
    hss -[hidden]down-> smdp
    @enduml