How to illustrate multiple threads in sequence diagram?

后端 未结 6 1915
一向
一向 2020-12-12 15:47

How can you clearly illustrate multiple threads of execution in a sequence diagram or similar diagram?

I haven\'t been able to find any clear examples. All diagra

相关标签:
6条回答
  • 2020-12-12 16:01

    You can use a "par" fragment to model multiple synchronous calls being executed in parallel. The fragment consists of a rectangle with the label "par". The rectangle is divided into multiple boxes, each representing a thread of execution.

    Below an example extracted from the link.

    An example is given on this page: http://www.ibm.com/developerworks/rational/library/3101.html#N10227

    0 讨论(0)
  • 2020-12-12 16:02

    I found this question on Google and wasn't a huge fan of the accepted answer so I just came up with my own. This is how I represented the threading model in my application (my organization calls it the 'Concurrency Viewpoint'):

    Hopefully it helps someone.

    0 讨论(0)
  • 2020-12-12 16:03

    You may be interested in Message Sequence Charts, or MSC.

    Here is a slide describing MSC in a nutshell.

    0 讨论(0)
  • 2020-12-12 16:04

    I like @Brandon's answer. That's a diagram that shows a clear threading communication model.

    I also came across this document which has several different approaches https://www.omg.org/ocup-2/documents/concurrency_in_uml_version_2.6.pdf

    0 讨论(0)
  • 2020-12-12 16:20

    Here is one diagram that may be useful, and on the left-hand side you can see the explanation: http://sdedit.sourceforge.net/multithreading/example/index.html

    0 讨论(0)
  • 2020-12-12 16:21

    This is a duplicate of sihaya's answer, but with details on how to accomplish it with tools on the web and a visual example that will not disappear.

    The UML Sequence diagram approach is to use the "par" fragment to model multiple messages being processed in parallel. Below is a text description which when fed into the PlantUML tool available on the web will produce the diagram below.

    @startuml
    
    Person -> MicrowaveOven : Cook Food
    activate MicrowaveOven
    par
    MicrowaveOven -> MicrowaveOven : Activate Magnetron
    else
    MicrowaveOven -> MicrowaveOven : Activate Rotation Motor
    end
    
    MicrowaveOven --> Person : Delicious Food
    deactivate MicrowaveOven
    
    @enduml
    

    0 讨论(0)
提交回复
热议问题