4

ビジュアル パラダイムと UML 全般を扱うのは初めてで、特定の動作をどのように表示するべきかについて少し混乱しています。Web サイトでの非常に古典的なログイン操作のシーケンス図を描きたいと思います。最初にユーザーがユーザー名とパスワードを含むフォームを送信し、コントローラーがそのユーザー名を持つ登録ユーザーがいるかどうかを確認し(1)、次に送信されたパスワードは、ユーザー用に保存されたものと一致します。答えが「はい」の場合、現在ログインしているユーザー(2)(操作を開始したエンティティとは異なるエンティティ)に「OK」シグナルが送信されます。それ以外の場合は、元のユーザーに「間違ったパスワード」応答が送信されます( 3)。3 つの「間違ったパスワード」シグナルにより、12 時間ログイン試行をブロックするセキュリティ手順が発生します(4)

なんとか作成できたのがこれ

ここに画像の説明を入力

私自身、これが私が説明しようとしているものに近いかどうかは非常に疑わしいです。まず、(1) は終了点である必要があり、手順はユーザーが再起動する必要があり、これがどのように表示されるかわかりません図では、(3) についても同じことが言えますが、イベントの唯一の正しい流れは 1.1、1.3、1.4 であるとどのように言えますか? (2) では、ライフラインからエンティティにメッセージを追加する方法を見つけることができなかったため、エンティティ ライフラインを使用しました。実際には、どのような種類のメッセージもまったく追加できないことがわかりました。シーケンス ツール メニューを使用すると、リソース カタログを使用して 2 番目の応答メッセージを追加した場合にのみ機能します。最初の応答メッセージを複製して名前を変更する必要がありました。最も難しいのは、(4) をどのようにモデル化するかです。ループが正しくないようです。

tl;dr アクションで確実な順序を確立するにはどうすればよいですか?また、2 つのオプションのうち 1 つしか利用できないブランチがあることをどのように示すのですか? (4) はどのようにモデル化できますか?

4

1 に答える 1

4

それは悪いようには見えません。alt正しくするには、おそらく 2 番目を 1 番目にネストする必要があります。パーツ[guards]の状態説明を追加することもできます。alt

ただし、ご経験のとおり、グラフィカルな SD アプローチが必ずしも最適であるとは限りません。多くの場合、そのようなことは疑似言語で説明する方が簡単であり、私はそれをお勧めします。SD は、シナリオで連携するオブジェクトの概要を把握するのに役立ちます。しかし、アルゴリズムの詳細については、テキスト (疑似プログラム) による記述の方が適しています。

于 2015-12-06T20:26:17.270 に答える