2009-10-29 78 views
52

シーケンスダイアグラムまたは同様の図で、複数の実行スレッドを明確に示す方法はありますか?シーケンス図で複数のスレッドを説明するには?

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


更新:受け入れ答えは、私が見た最高の例だったが、それは公平なビットを希望される残しありません。私は別々のシーケンス図でスレッドを説明し終わった。シーケンス図が必ず複数のスレッドで動作するかどうかはわかりません。ここで

+1

私はそれを見たhttp://stackoverflow.com/questions/954193/is-there-an-inituitive-uml-approach-to-depict-threads – feuGene

答えて

23

は有用である可能性がある1つの図であり、左側に、あなたは説明を見ることができます: http://sdedit.sourceforge.net/multithreading/example/index.html

Multithreading Sequence Diagram

+0

と同じようです。私はそれを読んだときに少しめまいになります;) –

+0

スレッドを使用する理由の一部は自律的であるため、複数のスレッドの処理は少し難しいでしょう。関連するスレッドを別々のプログラムとして実行したい場合があります。したがって、スレッド1(コントローラスレッド)が起動し、3つのスレッドを生成し、処理してコントローラに報告します。そして、これらは1つのシーケンス図になります。他の20のスレッドが無視されているかもしれませんが、他の無関係のタスクを行っているので問題ありません。 –

1

あなたはMessage Sequence Charts、またはMSCに興味があるかもしれません。

Hereは、一言で言えばMSCを記述するスライドです。

+0

チャートの例とのリンクはありますか? –

+0

サンプルダイアグラムにリンクするために私の答えを編集しました。 – mouviciel

+1

それが複数のスレッドをどのように表しているのか分かりません。私はもっ​​とカフェインが必要です。 –

5

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

例は、このページに記載されています。 http://www.ibm.com/developerworks/rational/library/3101.html#N10227

+0

答えにも例を示す必要があります。あなたのリンクがダウンする可能性があるので... –

+0

@PhilipG現在選択されている答えはさらに悪いです。 –

+1

コールが単にスレッドを生成してすぐに戻る必要がある場合、これは機能しません。 – LuckyLikey

10

私はので、私はちょうど私自身を思い付いGoogleでこの質問を発見し、受け入れ答えの大ファンではなかったです。これは私が(私の組織は、「同時実行の視点」と呼んでいます)私のアプリケーションでのスレッドモデルを表現する方法である:

Concurrency viewpoint

うまくいけば、それが誰かを助けます。

2

これは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

関連する問題