03

12

[状態マシン図] 遷移 と イベント[ガード]/アクション

2014.03.12(20:39)

UML2.0 State Machine (状態機械) モデルでは、
遷移には、イベント(トリガ)とガードとアクションがそれぞれ0個または1個設定できます。

uml20_state_machine_transition.png
遷移に、
イベント [ガード] / アクション
と書きます。
event_guard_action0.png

ですが、遷移がどの状態または疑似状態を始点とするかによって、 イベントが設定できないところ、ガードが設定できないところ、があります。 次の状態マシン図は、それを説明するために設定できるところは全部設定してみた図です。

e[g]/aは全部を設定できるところ、
[g]/aはガードとアクションだけ設定できるところ、
/aはアクションだけを設定できるところです。

★はもし、状態の中の終了条件が成立し次第、
その状態を退場して遷移したい場合、イベントもガードも設定しないことを示しています。
event_guard_action1.png
s18サブマシン状態の下位状態です。
event_guard_action2.png
ルールを文章で書くとこうなります。

/アクションのみしか設定できないところ
  1. 開始疑似状態を始点とする遷移
  2. 履歴疑似状態を始点とする遷移
  3. 状態を始点とする遷移のうち、その状態を完了遷移で退場させたい遷移 ★
  4. フォーク疑似状態を始点とする遷移
  5. ジョイン疑似状態を始点とする遷移
  6. 入場点を始点とする遷移
  7. 退場点を始点とする遷移

[ガード] / アクション のみ設定できるところ
  1. 選択疑似状態を始点とする遷移
  2. ジャンクション疑似状態を始点とする遷移

イベント [ガード] / アクション を設定できるところ
  1. 状態を始点とする遷移 (★を除く)

状態マシン図をレビューするときは、このこともレビュー観点にいれておきましょう。
プロフィール

島敏博

Shima Toshihiro 島敏博
信州アルプスハイランド在住。HaskellとElixirが好き。組み込みソフトウェアアーキテクト、C++プログラマ、山歩き、美術館巡り、和食食べ歩き、日本赤十字社救急法指導員、インデックス投資、クラシック音楽、SESSAME会員、状態マシン設計、モデル駆動開発、ソフトウェアプロダクトライン、Rubyist、実践ビジネス英語

■ ツイッター
http://twitter.com/saltheads
■ Facebook
http://www.facebook.com/saltheads
■ Qiita
http://qiita.com/saltheads

印刷する場合は、ブラウザの印刷メニューではなく、このページの上から3cmくらいの青いところにある、「印刷」を押してみてください。少しうまく印刷できます。まだ完全ではないのですが、これで勘弁してください。


カテゴリ
最新記事
月別アーカイブ
最新コメント
検索フォーム
リンク
sessame
RSSリンクの表示