web-dev-qa-db-fra.com

Comment illustrer plusieurs threads dans le diagramme de séquence?

Comment pouvez-vous illustrer clairement plusieurs threads d'exécution dans un diagramme de séquence ou un diagramme similaire?

Je n'ai pas pu trouver d'exemples clairs. Tous les diagrammes que je vois sont utilisés pour illustrer un seul fil.


Mise à jour: La réponse acceptée était le meilleur exemple que j'ai vu, mais elle laisse un peu à désirer. J'ai fini par illustrer les threads dans des diagrammes de séquence séparés. Je ne sais pas si le diagramme de séquence fonctionne nécessairement pour plusieurs threads.

61
Marcus Leon

Voici un diagramme qui peut être utile, et sur le côté gauche, vous pouvez voir l'explication: http://sdedit.sourceforge.net/multithreading/example/index.html

Multithreading Sequence Diagram

29
James Black

J'ai trouvé cette question sur Google et je n'étais pas un grand fan de la réponse acceptée, alors je viens de trouver la mienne. C'est ainsi que j'ai représenté le modèle de thread dans mon application (mon organisation l'appelle le "point de vue concurrentiel"):

Concurrency viewpoint

J'espère que cela aide quelqu'un.

16
Brandon

Vous pouvez utiliser un fragment "par" pour modéliser plusieurs appels synchrones exécutés en parallèle. Le fragment est constitué d'un rectangle avec l'étiquette "par". Le rectangle est divisé en plusieurs cases, chacune représentant un fil d'exécution.

Ci-dessous un exemple extrait du lien.

enter image description here

Un exemple est donné sur cette page: http://www.ibm.com/developerworks/rational/library/3101.html#N10227

10
sihaya

Ceci est un double de la réponse de sihaya, mais avec des détails sur la façon de l'accomplir avec des outils sur le web et un exemple visuel qui ne disparaîtra pas.

L'approche du diagramme de séquence UML consiste à utiliser le fragment "par" pour modéliser plusieurs messages traités en parallèle. Vous trouverez ci-dessous une description textuelle qui, une fois introduite dans l'outil PlantUML disponible sur le Web, produira le diagramme ci-dessous.

@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

par UML example

7
Reginald Blue

Vous pouvez être intéressé par Diagrammes de séquence de messages , ou MSC.

Ici est une diapositive décrivant MSC en bref).

0
mouviciel