ステートチャート図 前半

ステートチャート図
前半
FM13003 怡土 宗太
ステートチャート図(ステートマシン)
• 時間の経過と共に変化するオブジェクトの「状
態」を表す。
• UML2.x以降ではステートマシン図と名前が変
更になった。
ステートチャート図の例
開始状態
誕生
状態
乳児
誕生
イベント
幼児
就業
学生
就職
社会人
退職
老後
死亡
終了状態
状態
• オブジェクトがそのライフサイクルの中で、あ
る一定の時間とどまる状態、状況。
• 角の丸い長方形で表現し、長方形の中央に
状態名を配置する。
状態
状態
状態名
開始状態
• オブジェクトの生成時点または、コンポジット
状態における開始時点を示す特別な状態。
生成
状態
コンポジット状態
状態1
状態2
状態3
終了状態
• 動作完了を示す特別な状態です。
• コンポジット状態のように状態が階層化されている
場合は、そのレベルの状態内での動作完了を表す。
状態
コンポジット状態
状態1
状態2
状態3
イベント(トリガー)
• オブジェクトに何らかの影響をもたらす事象
の発生を言う。
イベント(トリガー)
学生
就職
社会人
状態遷移
• ある状態から、ほかの状態に変わること。
• 自分自身の状態に入りなおす場合は
自己遷移という。
進級
自己遷移
就学
幼児
学生
状態遷移
就職
社会人
ガード条件
• 同じイベントが複数存在するなどの理由で、
分岐が必要な場合、その分岐についての条
件をガード条件という。
高校生
受験[不合格]
浪人
受験[不合格]
受験[合格]
受験[合格]
大学生
状態(∽アドバンス)
• 状態は以下の2つの区画に分けられる
• 名前区画
• 内部遷移区画
UML1.x
名前区画
状態1
状態1
entry/入場アクション
do/アクティビティ
exit/退場アクション
内部アビリティ区画
UML2.x
内部遷移区画
entry/入場アクション
do/アクティビティ
exit/退場アクション
トリガー
アクション(エフェクト)
• 指定されたイベントが発生すると稼働する動作
• イベントが発生して、ガード条件が真ならば遷移は
発生するが、アクションは遷移と共に稼働する
高校生
受験[不合格]
浪人
受験[不合格]
受験[合格]/入学手続き
受験[合格]/入学手続き
大学生
入場アクション・退場アクション
• 状態内にもアクションを以下のように記述す
ることができる。
動作ラベル/ 動作
entry
/ 入社手続き
入場アクション
会社員
entry/入社手続き
exit/退社手続き
退場アクション
アクティビティ
• 状態に入ってからでるまで、または動作完了
までの一定時間継続して行われる動作
• もし、アクティビティ実行中にイベントが発生し
て、オブジェクトの状態がほかの状態に遷移
すると実行中のアクティビティは中断される。
会社員
entry/入社手続き
do/仕事をする
exit/退社手続き
アクティビティ
コンポジット状態
• 状態はその中に状態(サブ状態)を持つこと
ができ、この階層化した状態をコンポジット状
態という。
• 多数の状態を持つ複雑なステートチャート図
の場合でも、コンポジット状態を利用するとよ
り表現しやすくなる
コンポジット状態
コンポジット状態
会社員
本採用/[営業職]
営業
就職
職場転換
職場転換
[技術職]
[営業職]
試用期間
本採用[技術職]
定年
老後
技術
サブ状態
開始状態、終了状態補足
• 開始状態は。ステートチャート図の中に一つ
だけ記述。
• コンポジット状態があれば、その入り口に1つ
記述します。
• 終了状態は、必要ならば複数記述してもよい。
開始状態、終了状態補足
状態1
状態1
状態2
状態3
=
状態2
状態3