web-dev-qa-db-ja.com

UML:シーケンス図のキュープロセッサ

UMLシーケンス図でキュープロセッサを表す適切な方法はどれですか。

キューを介して疎結合されている2つのシステムを同じ図で表現したいと思います。最初のシステムは、いくつかのアクションを実行してキューにアクションを挿入します。もう1つのシステムは常にリスニングし、イベントがキューに表示されると、イベントをデキューして処理し、新しいアクションを生成します。両方がどのように連携するかを示す統合ユースケースを表すために、両方が同じ図にあります。

キューを表す生存線を作成する必要がありますか?

「聞く」プロセスを、「聞く」というラベルの付いた自己メッセージ、メッセージを処理するための自己メッセージ、および結果の送信を表すメッセージを含むループボックスとして表す必要があります。

7
NullOrEmpty

キューは提示するシーケンスの重要なコンポーネントであるため、ライフラインとともに存在することが最も確実です。

コンシューマーがキューからのイベントを明示的にリッスンするので、コンシューマーからキューへのlisten呼び出しで図を開始します。
その後、プロデューサーはそのイベントをキューに挿入できます(listen呼び出しとイベントの挿入の間にかなりの時間が経過する可能性があることを示す場合があります)。この時点で、私はtworeturn矢印を使用します。 1つはinsert呼び出しの完了を示すためにプロデューサーに戻り、もう1つはlisten呼び出しの完了を示すためにコンシューマーに戻ります。
これは、プロデューサーとコンシューマーが非同期で実行されることを前提としています。

次のようになります。

+---+       +---+       +---+
| P |       | Q |       | C |
+---+       +---+       +---+
  |           |   listen  |
  |           | <|------- |
  |           |           |
  |  insert   |           |
  | -------|> ++          |
  | < - - - - ++  event   |
  |           ++ - - - - >++
  |           |           ++
  |           |           ++
  |           |   listen  ++
  |           | <|------- ++
  |           |           |

コンシューマーが常にリッスンしていることを示すために、返されていないlisten呼び出しでダイアグラムを再度終了しました。

素晴らしい PlantUML にBartの回答を実装すると、次のようになります。(ab)entityを使用して、キューと参加しているスレッドを区別します。

enter image description here

対応するソースコード:

participant Producer
entity Queue

Consumer->Queue : dequeue
activate Consumer
...
Producer->Queue : enqueue
activate Producer
Queue-->Consumer
deactivate Consumer
Queue-->Producer
deactivate Producer
7

このシナリオに似たもののシーケンス図を描画する方法を意味する場合。

enter image description here

..次に、中央の「タプルスペース」または中央のマルチエージェント調整構造を無意識の無意識としてモデル化しますが、生きている俳優は、膜を通して何かを「食べる」たびにいくつかの香り分子を代謝します。近所のエージェントは、それを「におい」そしてさらに代謝するかもしれません。

靴を履いて

..(1)はい、キューを表すライフラインを作成します

..(2)そして、@ bart-van-ingenと同じ新しいトークンを受信すると、キューによってブロードキャストされた「queue changed」信号も描画します-シェナウ

..(3)そしてはい、私はあなたが提案するように私自身のライフライン上のループボックスとして「リスニング」プロセスを表します

..また、異なる図を使用して異なる視点からシナリオ(ユースケース)を描画することも検討します。主に、「BPMN 2.0-ビジネスプロセスモデルと表記法」という言語を使用して概要図を描画することを考えます(チートシートはここで利用可能: http://www.bpmb.de/images/BPMN2_0_Poster_EN.pdf

2
xmojmr