web-dev-qa-db-ja.com

シーケンス図でUIを記述する方法は?

ログインのシーケンス図を作成したいと思います。最初のステップは、ユーザーが私のウェブサイトにアクセスし、システムがログインフォームにリダイレクトすることです。その後、ユーザーがユーザー名とパスワードを挿入し、システムがそれを検証します。成功すると、ホームページに誘導されます。

私の質問は:ログインフォームのようなUIをシーケンス図にどのように置くのですか?私はインターフェイスのように使用します:ログインフォームですが、それは間違った方法だと思います。なぜなら、私が知っているインターフェイスはc#/ Java ..のクラスのようなものだからです。これが私のシーケンス図です。

enter image description here

助けが必要、助けてくれてありがとう

3
Enrico Hasnawi

この図には「間違っている」ことがいくつかありますが、大きなことは何もありません。主に、UMLで特定の意味を持つ要素を使用していて、その意味が表現したいものと一致しない場合です。

ホワイトボードにスケッチをし、口頭で説明すると、図はうまくいきます。
UMLからの逸脱を説明するためにあなたが周りにいないかもしれないドキュメントでそれを使用したい場合は、いくつかの小さな変更を提案します。

  • UMLステレオタイプ<<interface>>は、キーワード<<interface>>で定義されたC#/ Javaクラスと同じことを意味します。 UMLステレオタイプを使用して、UIのページであることを示す場合は、<<UI>><<Form>>などの別のステレオタイプを選択する必要があります。
  • ダイアグラムは同期された呼び出しを使用します(コンポーネントが呼び出しを行い、その呼び出しが戻るまで何もしません)。これは、(人間の)ユーザーがシステムと対話する方法を正確に表したものではありません。これは、非同期通信としてより正確に描かれています(実線の矢印と開いた矢印の頭を使用)。

要するに

あなたの図は興味深いことに混乱しています。

ユーザーインターフェイスシナリオをモデル化する場合は、いくつかの注釈付きワイヤーフレームシナリオを使用することをお勧めします。これらはそのためにより表現力があります。

より多くの議論

図の左側

最初の質問は、ユーザー(つまりアクター)をシーケンス図に入れるかどうかです。

  • 実際には、アクターはフォームと対話するのではなく、フォーム上のUIウィジェットと対話します。このウィジェットをメッセージに変換しました。したがって、抽象化のレベルとセマンティクスは、ダイアグラムの両側で同じではありません。
  • シーケンス図でアクターを使用することが合法かどうかさえ疑問視されます( たとえば、ここ または ここ または ここ )。

しかし、モデリングの目標はデザインをよりよく理解することです。そのため、アクターがあなたを助けた場合、その正式な質問を決めるのはあなた次第です。

図の右側

あなたの役割:Userオブジェクトが完全に明確ではありません。常に存在するユーザーオブジェクトはありますか?それとも、すべての要素を取得したら、それを作成しようとしますか?

後者の場合、おそらくこの生命線を条件付きで作成するために メッセージの作成 を使用することをお勧めします。

そして、その役割は何ですか:なぜあなたはオブジェクトにウェブページを「見せたい」のですか?

また、ログインが失敗した場合、Userオブジェクトはログインフォームをログインフォームに返し、ログインフォームはアクターに戻ります。ここには明らかにいくつかの問題があります。

適切な問題に適切なモデリングツールを使用する

UMLは、システムをその環境(使用例)で示し、システムの内部(他のほとんどの図)を示すのに適したツールです。

ただし、ユーザーインターフェイスのシナリオを文書化するツールではありません。 UMLの発明者であるBooch、Rumbaugh、Jacobsonでさえ、システムの分析と設計でUMLを使用することについて書かれた彼らの著書「Unified Process」でこれを明らかにしています。他のより専門的なツールは、何が起こるかについての人間の認識に適しています(例 wireframe シナリオ)。

ユーザーとのやり取りが明確になったら、抽象化されたバージョンを シーケンス図 に表示できます。しかし、これにより、どのsystemオブジェクトが相互作用のどのアクションに責任があるかが明確になります。そして、メッセージは関数呼び出しまたはシステムイベントにマップ可能である必要があります。

1
Christophe