UML モデリングでの状態マシンは、個別のクラス・オブジェクト、ユースケース、およびシステム全体の動的な振る舞いの仕様です。状態マシンを作成するときには、状態マシンを付加する先のオブジェクトがその状態マシンの所有者になります。ただし、操作の場合は例外です。操作の状態マシンを作成するときには、操作がその状態マシンの所有者になります。状態マシンを作成するときには、ブランクの状態マシン図がオープンします。状態マシン図は、オブジェクトの状態のシーケンス、1 つの状態から別の状態への遷移を発生させるイベント、および状態の変更の結果であるアクションのグラフィカル表現です。状態マシンに図を追加して、オブジェクトのさまざまな振る舞いの特徴を記述できます。
状態マシンを作成して、有効な振る舞いを持つクラスおよびシステムを記述できます。状態マシンを必要としないオブジェクトもあります。あるオブジェクトの振る舞いがデータを単に格納または検索する基本的な振る舞いである場合は、開発者にとってオブジェクトの振る舞いは重要でないため、状態マシンの必要性は低くなることがあります。状態マシンには、さまざまな階層状態レベルを表すネストされた状態を含めることもできます。ネストされた状態を使用して、オブジェクト内の複雑な状態変更を検査できます。
状態マシンに図を追加して、オブジェクトの振る舞いのさまざまなパースペクティブを記述できます。それぞれの図は別個のウィンドウとしてオープンしますが、すべての図に同じモデル要素が表示されます。デフォルトでは、1 つの状態マシン内の図は同期されます。「モデル・エクスプローラー」ビュー内でのリージョンへの変更は同じ状態マシンの他の図に反映され、図の中のリージョンへの変更は「モデル・エクスプローラー」ビューに反映されます。リージョンの編集設定を変更すると、「モデル・エクスプローラー」ビュー内のリージョンへの変更がそれに対応する状態マシン図に反映されないようにできます。また、リージョンの正規プロパティー値を false に変更すると、同じ状態マシン内の他の図から独立してリージョンを編集できます。
状態マシンは動的な振る舞いを示すため、リアルタイム・システムまたはイベント・ドリブン・システムを開発するモデリングに役立ちます。 ソフトウェア・プロジェクトとビジネス・モデリングのすべてのフェーズ中に状態マシンを開発できます。状態マシンは以下の場合に使用できます。
状態マシンを使用して、イベント・ドリブンの振る舞いをモデリングできます。時間、シグナル、操作などのイベントが原因で、オブジェクトの状態が変更されることがあります。イベント自体は時間的な長さを持たない点ですが、イベントと他のイベントとの間には時間的な前後関係がある場合があります。イベント・ドリブンの振る舞いのモデル要素である状態は、イベントが到着するまで同じ状態を継続します。状態がイベントに応答した後で、プロセスは、次のイベントを受け取ることができるように安定状態に戻ります。