2017-06-19 6 views
0

こんにちは、私はこのシナリオの状態マシン図を描画しようとしていますが、それは多くの情報がありません。もし誰かがそれを手伝ってくれたら。描画に悩まされている状態機械図

シナリオ

  1. 観光客が 自動発券システム(ATS)を使用して、旅行を選択することで、旅を開始します。
  2. 自動発券システム(ATS)に、旅行の詳細が表示されます。
  3. この旅行の詳細には、座席番号と目的地が含まれます。
  4. 提供された旅行の詳細に基づいて、ATSは支払いを計算します。
  5. 観光客は、現金またはクレジットカードで支払いを行うことができます。 カード。
  6. 観光客が間違った額の現金を入れた場合、 額が挿入されるまで、ATSは "画面に現金を入れてください"というメッセージを表示します。
  7. 旅行者がカードで支払いを選択した場合、ATSは2つの並行タスクを 実行します。カード の有効期限を確認し、クレジット残高を確認します。カードが受け入れられると、銀行は の支払いを承認し、観光客の口座を更新します。 ただし、カードが受け入れられないか無効である場合、ATSは観光客からの支払いオプション(ステップ5に戻る)のために を再度請求します。
  8. 支払いが完了したら、チケットと領収書は ATSで印刷されます。
  9. 現金の支払いにより若干の変更が生じる可能性がありますので、変更はATSが発行する です。観光客はチケットを手に入れて に変更します。
  10. ATSはトランザクション「 」の最後に「取引完了」というメッセージを表示します。

お絵かき:

enter image description here

+1

アクティビティ図やシーケンス図ではなく、ステートマシン図を使用しようとする特別な理由はありますか?ステートマシンは、実行する必要のあるアクションではなく、ステートに焦点を当てます。私はあなたのケースでそれを構築することは不可能だとは言いませんが、あなたが何をしているのかを確実に知りたいと思います。 – Ister

+0

私は@Isterと同意します。この図の読みは、ステートマシンのものではなく、ADのものです。 –

+0

@ThomasKilianには、このシナリオを使用してステートマシン、パッケージ、ブロック定義、要件ダイアグラムを描画するためにできることがあります。なぜなら、それを使ってすべての図を描くからです。 – Gizele

答えて

0

[OK]をので、私はあなたにいくつかのヒントを与えることを試みます。ステートマシンは、常に考慮されているシステム全体ではなく、単一のクラスに対して作成されます。ですから、ATSが単一のクラスであるとしましょう(実際には、複数のクラスで構成されるより多くのコンポーネントになります)。今、このATSは最初はアイドル状態になります。トリップが選択されると、何らかの形でトリガされます。その後、旅行の詳細を完了する必要があります。それは支払いを待って、ついにチケットを吐き出すでしょう。今(!基本的に)、ステートマシンは、次のようになります。

enter image description here

これは足場であり、それは上記の詳細を読まずに行われました。 cancelトランジションの代わりに、最終的に支払いをクリアする割り込み可能な領域からの一般的な例外を使用することができます。実際には、いつでも取り消しを(ユーザーの視点から)可能にする必要があります。時間外も可能です(既に現金が支払われていたらどうなりますか?)。

また、私はdo/entry/exitアクションを含んでいませんでした。現金の場合、これはadd new cash sumのようなものになるので、十分なお金が支払われた時点を知っています。

関連する問題