web-dev-qa-db-ja.com

UMLダイアグラムでの信号の送受信

フラッシュカードとライトナーシステムをベースにした学習システムを設計、開発しています。システムには、フラッシュカードの作成、フラッシュカードの学習、テストの実行など、多くの機能があります。カード学習のアクティビティ図を以下に添付します。それはボックスのすべてのデッキを通過し、その日に学習される予定のカードを調べ、ユーザーが質問に正しく回答したかどうかに応じてカードを移動します。

ユーザーが持っているオプションの1つは、質問が行われている間にヒントを求めることです。私はそれを送受信シグナルで示しましたが、私のチームメンバーの何人かはそれが間違っていると信じています。

送信および受信信号に関する私の図は正しいですか?そうでない場合、どうすればオプションを表示できますか?

enter image description here

6
Infinity

内部の割り込み可能な領域に関して、アクティビティ図に問題があることは確かです。あなたが考慮しなければならないことは、あなたがこの地域の中であなたが単に次のカードを取り、質問を示す活動をしているということです。設計上、これはユーザーがtippボタンを押すと中断される可能性があります(両方が同じ領域境界にあるため)。

それはおそらくあなたが望むものではありません。質問の読み込みと表示を中断するのではなく、ユーザーに2つの選択肢を提供する必要があります。質問に答えるか、ヒントのようなものを取得します。図でモデル化されているように、ユーザーはカードのロード中にヒントボタンを押す必要がありますが、カードが表示される前に、そのアクティビティが終了すると、制御フローが割り込み可能な領域を離れて次のアクティビティに進むためです。

応答とヒントの取得の両方がユーザーアクションであると考えると、両方を信号としてモデル化する方が適しているようです。その場合、どちらかの信号が到達できるという従来の選択構造があります(fork構造を参照)。

(サイドリマーク:なぜ最近、ライトナーシステムを実装したのですか?間隔を置いた繰り返しが完全にスーパーシードされたという印象を受けましたか?)

2
Frank

これはあなたが望むものではありません。図では、システムがビジー状態の「次のカードを取り、質問を表示」している間、ユーザーはヒントボタンでのみ中断できます。次のように、シグナルなしでアクティビティをモデル化できます。

enter image description here

0