UML のステート マシン図とステートチャート図
ステートマシン図とは何ですか?
状態図 ソフトウェア システムの動作をキャプチャするために使用されます。 UML ステート マシン図を使用すると、クラス、サブシステム、パッケージ、さらにはシステム全体の動作をモデル化できます。 ステートチャートまたは状態遷移図とも呼ばれます。
ステートチャート図とは何ですか?
ステートチャート図は、外部エンティティやシステム内で発生する相互作用や通信をモデル化する効率的な方法を提供します。 これらの図は、イベントベースのシステムをモデル化するために使用されます。 オブジェクトの状態はイベントを利用して制御されます。 ステートチャート図は、アプリケーション システム内のエンティティのさまざまな状態を記述するために使用されます。
UML には、合計 XNUMX 種類のステート マシン図があります。
1. 動作状態マシンの図
- システム内に存在するエンティティの動作をキャプチャします。
- これは、要素の特定の実装を表すために使用されます。
- システムの動作は、OOAD の動作ステート マシン図を使用してモデル化できます。
2. プロトコルステートマシン図
- これらの図は、プロトコルの動作をキャプチャするために使用されます。
- イベントに関してプロトコルの状態がどのように変化するかを表します。 また、システム内の対応する変更も表します。
- これらは要素の特定の実装を表すものではありません。
なぜステートマシン図を使うのか?
ステートチャート図は、システムの動的な側面を捉えるために使用されます。 ステート マシン図は、アプリケーションの動作を表すために使用されます。 オブジェクトは、その存続期間中にさまざまな状態を経ます。 オブジェクトの寿命は、プログラムが終了するまで残ります。 オブジェクトは、オブジェクト内で発生するイベントに応じて複数の状態に遷移します。 各状態は、オブジェクトに関するいくつかの固有の情報を表します。
ステートチャート図は、内部イベントまたは外部イベントに応答する対話型システムを設計するために使用されます。 UML のステートチャート図は、オブジェクトのある状態から別の状態への実行の流れを視覚化します。
オブジェクトの作成からオブジェクトが破棄または終了されるまでのオブジェクトの状態を表します。
ステートチャート図の主な目的は、対話型システムをモデル化し、オブジェクトのあらゆる状態を定義することです。 ステートチャート図は、アプリケーション システムの動的な動作を捉えるように設計されています。 これらの図は、システムおよびシステム内のエンティティのさまざまな状態を表すために使用されます。
ステートマシン図(ステートチャート図)の表記と記号
以下は、状態チャート図全体で使用されるさまざまな表記法です。これらすべての表記法を組み合わせると、1 つの図が構成されます。
初期状態
初期状態シンボルは、ステート マシン図の始まりを示すために使用されます。
最終状態
この記号は、ステート マシン図の終了を示すために使用されます。
決定ボックス
条件が含まれています。 評価されたガード条件の結果に応じて、プログラム実行のために新しいパスが選択されます。
トランジション
遷移とは、何らかのイベントによって発生する、ある状態から別の状態への変化です。 遷移により、オブジェクトの状態が変化します。
状態ボックス
それは、オブジェクトの寿命における特定の瞬間です。 これは、分類子本体内の何らかの条件またはステートメントを使用して定義されます。 これは、静的な状況と動的な状況を表すために使用されます。
角の丸い長方形を使用して表されます。 角丸長方形の中に州名が書かれています。
状態の名前を四角形の外側に配置することもできます。これは、複合状態またはサブマシン状態の場合に実行できます。状態の名前は、四角形の内側に配置することも、四角形の外側の表形式のボックスに配置することもできます。両方を同時に実行することはできません。
状態はアクティブまたは非アクティブのいずれかになります。 状態が作業モードにあるときはアクティブですが、実行が停止して別の状態に遷移するとすぐに、前の状態が非アクティブになり、現在の状態がアクティブになります。
状態の種類
統一モデリング言語では、次の XNUMX 種類の状態が定義されています。
- 単純な状態
- サブステートはありません。
- 複合状態
- これらのタイプの状態は、XNUMX つまたは複数のサブ状態を持つことができます。
- XNUMX つ以上のサブ状態を含む複合状態は、直交状態と呼ばれます。
- サブマシンの状態
- これらの状態は意味的に複合状態と同じです。
- 複合状態とは異なり、サブマシン状態を再利用できます。
ステートチャート図を描くには?
ステートチャート図は、オブジェクトが通過するさまざまな状態を説明するために使用されます。 ある状態から別の状態への遷移は、何らかのトリガーされたイベントによって発生します。 状態図を描画するには UML、特定のエンティティの考えられるすべての状態を識別する必要があります。
これらの目的 UML図 システムの状態を表すことです。 状態は、状態遷移図において重要な役割を果たします。 図を実装する前に、すべての重要なオブジェクト、状態、および状態内で変化を引き起こすイベントを最初に分析する必要があります。
状態チャート図を描く際には、次のルールを考慮する必要があります。
- 状態遷移の名前は一意である必要があります。
- 状態の名前は、わかりやすく、状態の動作を説明するものでなければなりません。
- 複数のオブジェクトがある場合は、必須のオブジェクトのみを実装する必要があります。
- 各遷移とイベントには適切な名前を付ける必要があります。
ステートマシン図をいつ使用するか?
状態図は、現実の作業モデルとオブジェクト指向システムを詳細に実装するために使用されます。 これらの図は、システムの動的な動作をキャプチャすることにより、システムの動的性質と静的性質を比較するために使用されます。
ステートチャート図は、システムのさまざまなエンティティの変化を最初から最後まで捉えるために使用されます。 これらは、イベントがシステムの複数の状態内でどのように変化を引き起こすかを分析するために使用されます。
状態文字図が使用されます。
- システムのオブジェクトをモデル化するため。
- インタラクティブなシステムをモデル化して実装します。
- 州内の変化を引き起こすイベントを表示します。
ステートマシンの例
次の状態図の例のチャートは、ユーザー認証プロセスを表しています。
合計で 2 つの状態があり、最初の状態は最初に OTP を入力する必要があることを示します。その後、決定ボックスで OTP がチェックされ、正しい場合は状態遷移のみが発生し、ユーザーが検証されます。OTP が正しくない場合は遷移は発生せず、上記のステート マシン図の例に示すように、ユーザーが正しい OTP を入力するまで、再び開始状態に戻ります。
ステートマシン図とフローチャートの比較
ステートチャート図とフローチャートの主な違いは次のとおりです。
ステートマシン図 | フローチャート |
---|---|
システムのさまざまな状態を表します。 | フローチャートはプログラムの実行フローを示しています。 |
ステート マシンには WAIT の概念があります。つまり、アクションまたはイベントを待機します。 | フローチャートでは、コンセプトを待つことは扱いません。 |
ステート マシンは、ライブ実行システムに使用されます。 | フローチャートはシステムの分岐シーケンスを視覚化します。 |
ステート マシンはモデリング図です。 | フローチャートはシーケンス フローまたは DFD 図です。 |
ステート マシンは、システムのさまざまな状態を調査できます。 | フローチャートはパスと制御フローを扱います。 |
まとめ
- ステートチャート図はステートマシン図とも呼ばれます。
- これらの図は、イベントベースのシステムをモデル化するために使用されます。
- エンティティの状態はイベントを利用して制御されます。
- ステート マシン図には合計 1 種類があります: 2) ビヘイビア ステート マシン図 XNUMX) プロトコル ステート マシン図
- ステートチャート図は、システムの動的な側面を捉えるために使用されます。
- 状態とは、オブジェクトの存続期間における特定の瞬間です。