11

シーケンス図を描きたいのですが、ユーザーと UI の間の相互作用を示したいと思っています。アクターとしてのユーザーがテキスト ボックスに入力し、text_change イベントで BL クラスの非同期メソッドが呼び出されます。この場合、図に text_change イベントを表示することは可能ですか? どうすればそれを表示できますか?

ありがとう

4

2 に答える 2

15

多かれ少なかれ複雑で GUI が豊富なアプリケーションでの相互作用を表すために、私も .NET イベントをシーケンス図で表現することに興味を持つことがよくありました。私の見解では、標準的な手段を使用して効果的にそれを行うための本当に説明的な方法はありません。

正式に正当化できる方法は次のとおりです。イベントを発生させることは、基本的にはターゲット インスタンスで定義された関数を呼び出すことに他なりません。唯一の違いは、直接呼び出すのではなく、システム イベント メッセージ ループを介して呼び出すことです。そのため、舞台裏では、イベントを発生させることは、システム自体でいくつかのHandleMessage("MyEvent", params object[] args)関数を呼び出すことと同じです。パラメーターはイベントの名前とオプションの引数のリストです。正確な名前と署名が何であるかはわかりませんが、これは実際には問題ではありません。

UML シーケンス図での .NET イベントの表現

上の図では、Sourceインスタンスは、システム レシーバーに到達する引数のリストを含むイベントMyEventを発行します。受信者は宛先 ( Target ) を見つけ、対応するメソッド ( Target.OnMyEvent() ) を呼び出します。この呼び出しがイベントによってトリガーされることを強調するために、「Event」と呼ばれるステレオタイプを導入します。

このスキームはやや不器用に見えるかもしれませんが、私にとっては、これで十分です。

于 2016-11-30T10:56:31.663 に答える
3

あなたがやりたいことは可能ですが、珍しいです。通常、これらの対話は既存のシステム/プラットフォームによって提供されるため、アプリケーション設計に含める必要はありません。

これが通常どのように文書化されるかを紹介します

私はおそらくそれを行うためにコラボレーションダイグラムを使用するでしょう.

シーケンス図に固執する場合は、図 2 が役立ちます

于 2012-09-05T10:49:59.283 に答える