web-dev-qa-db-ja.com

シーケンス図で複数のスレッドを説明する方法は?

シーケンス図または同様の図で、実行の複数のスレッドをどのように明確に説明できますか?

明確な例を見つけることができませんでした。私が見るすべての図は、単一のスレッドを示すために使用されます。


更新:受け入れられた答えは私が見た最良の例でしたが、それは望まれるべきかなりのビットを残しています。最終的に、スレッドを別々のシーケンス図に示しました。シーケンス図が複数のスレッドで必ず機能するかどうかはわかりません。

61
Marcus Leon

役に立つかもしれない1つの図があり、左側に説明があります: http://sdedit.sourceforge.net/multithreading/example/index.html

Multithreading Sequence Diagram

29
James Black

Googleでこの質問を見つけましたが、受け入れられた回答の大ファンではなかったので、自分の質問を思いつきました。これは、アプリケーションでスレッドモデルを表現する方法です(私の組織では「同時実行ビューポイント」と呼んでいます)。

Concurrency viewpoint

うまくいけば誰かの助けになります。

16
Brandon

「par」フラグメントを使用して、並行して実行される複数の同期呼び出しをモデル化できます。フラグメントは、ラベル「par」を持つ長方形で構成されています。長方形は複数のボックスに分割され、それぞれが実行のスレッドを表します。

リンクから抽出された例の下。

enter image description here

このページに例を示します。 http://www.ibm.com/developerworks/rational/library/3101.html#N10227

10
sihaya

これは、sihayaの答えの複製ですが、Web上のツールを使用してそれを達成する方法の詳細と、消えない視覚的な例があります。

UMLシーケンス図のアプローチは、「par」フラグメントを使用して、並行して処理される複数のメッセージをモデル化することです。以下は、Webで利用可能な PlantUML ツールに入力すると、下の図を生成するテキストの説明です。

@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

メッセージシーケンスチャート 、またはMSCに興味があるかもしれません。

ここ は、MSCを簡単に説明したスライドです。

0
mouviciel