UML モデリングでの状態は、1 つのオブジェクトの振る舞いの変更を表します。状態の変更は、2 つの状態の間のパスを示す遷移を使用して記述されます。
1 つの状態に他の状態を含めることができます。含まれている状態を、ネストされた状態またはサブ状態ということもあります。複雑な状態マシンをモデリングする場合は、ネストされた状態を使用して、詳細な振る舞いを複数のレベルに分離します。状態にアクションを含めることにより、オブジェクトが特定の状態にあるときに発生する可能性のあるタスクをアクションによって識別することもできます。
| 状態タイプ | 説明 | 図要素 |
|---|---|---|
| 簡単 | リージョンを持たない状態 | |
| コンポジット | 1 つのリージョンを持っている状態 | |
| 直交 | 複数のリージョンを持っている状態 | ![]() |
| 終了 | リージョン内のアクティビティーが完了したことを示すためにコンポジット状態のリージョン内に配置される状態 | |
| サブマシン状態 | 別の状態マシンを参照する状態 |
遷移は、状態の変更が発生していることを示す状態間のパスを示します。遷移の 3 つの部分はトリガー、ガード条件、および効果であり、そのすべてがオプションです。
| イベント・タイプ | 説明 | アイコン |
|---|---|---|
| 呼び出し | オブジェクトは、操作を呼び出すための要求を受け取ります。操作の呼び出しによって、遷移がトリガーされます。 | |
| 変更 | 条件が真であるときに遷移をトリガーするブール条件が指定されます。 | |
| シグナル | 指定されたメッセージをオブジェクトが受け取ると、遷移がトリガーされます。 | |
| 時間 | 経過する必要のある時間の長さまたは遷移をトリガーする時刻が指定されます。 |