工程 | 要求定義 | 分析 | 設計 | ||
---|---|---|---|---|---|
アーキテクチャー分析 | ユースケース分析 | アーキテクチャー設計 | ユースケース設計 | ||
成果物 | ユースケース・モデル(ユースケース図)、 用語集、 機能外要求 | ドメイン・モデル、 分析クラス・メカニズム対応表 | 相互作用図(コラボレーション図)、 VOPC(ユースケースのクラス図) | パターン、 レイヤー、 設計クラス・メカニズム対応表 | 相互作用図(シーケンス図)、 クラス図 |
public class 商品 { private int 状態; public static final int 未予約 = 0; public static final int 予約済 = 1; public static final int 出荷済 = 2; void 予約する(int 注文数) { // ... } void 出荷する() { // ... } }
状態 | 状態は角の丸い四角形で表現しその中に状態名を記述します。名前がない場合は匿名状態となり、複数あってもすべて異なる状態として扱います。ひとつの図の中におなじ状態名が 2 回以上でてくるのは混乱の元ですので避けてください。
オブジェクトの状態は、属性の値によって識別できます。 状態をあらわす四角形の中を水平線で区切って、名前区画と内部遷移区画に分けることができます。名前区画の代わりに、状態をあらわす四角形の上外側に名前タブという四角形をべつに設けてその中に状態名を記述する方法も可能です。 特別な状態として開始状態と終了状態があります。開始状態は塗りつぶした丸で、終了状態は内側を塗りつぶした 2 重丸で表記します。ただし無限ループとなる場合など、終了状態が存在しない場合もあります。 |
---|---|
イベント | イベントは、状態が遷移するきっかけとなる何らかのできごとです。アクションと違い、イベントはオブジェクトに対して行われます。 |
遷移 | 遷移は、オブジェクトの状態が移り変わることです。遷移はイベントが発生したときに起こりますが、イベントが発生しても遷移しないこともあります。 |
ガード条件 | ガード条件は、真か偽の値を持ち、その条件が真のときにだけ遷移が許される条件です。いったんイベントが発生した後の評価のための条件です。おなじイベントであっても、ガード条件により遷移先が変わったり、遷移がおきずにイベントが無視される場合があります。 |
アクション | アクションは、遷移と関連づけられる操作で、遷移が起きるときに同時に実行されます。完了にかかる時間は無視できるので割り込まれることはありません。イベントと違って、アクションはオブジェクトが行ないます。 |
アクティビティ | アクティビティは、状態と関連づけられる操作で、対象となる状態に入ったときに開始されます。アクションと違い実行時間は長めで持続時間があるので、割り込んだり、中断することが可能です。 |
entry | 状態に入るときに起きるアクション |
---|---|
exit | 状態から出るときに起きるアクション |
do | 状態に留まっているときに起きるアクティビティ |
include | サブマシンの状態を起動するときに使う |
メッセージが送られた。 | メッセージの送信元は内部の場合も外部の場合もあります。また、エラーの発生による場合も含まれます。 |
---|---|
時間が経過した。 | タイム・イベントといい、キーワード after の後の括弧中に経過時間を記述します。開始が明示されていない場合はその状態に入ってからの経過時間となります。また指定時間のチェックは継続的に行われます。
例) after(5秒) |
条件が偽から真になった。 | 変更イベントといい、キーワード when の後の括弧中に条件を記述します。ガード条件と違ってイベント発生前の条件です。
例) when(date=Jan.1.2001) |
イベントの書式) イベント名(パラメーター・リスト)[ガード条件] / アクション表現 パラメーターの書式) パラメーター名: 型表現
class エアコン { private int 状態; private int 設定温度; public static final int 停止 = 0; public static final int 冷房 = 1; public static final int 送風 = 2; public static final int ドライ = 3; public static final int 暖房 = 4; public void ON() { } public void OFF() { } public void モードを切替える() { } }Top
|
ユースケース記述 |
|
ユースケース記述 |