状態図は状態を中心に表現する、角丸長方形は状態を示し、遷移線に書かれている内容は活動図の活動に対応します。
活動図は活動を中心に表現する、角丸長方形は活動を示し、遷移線には通常内容を書かず、判断を行う際に線上に判断条件を書きます。
状態図は状態機械図とも呼ばれ、状態機械の表現形式です。状態図は状態機械を利用して、オブジェクトのライフサイクル中の動的な振る舞いを正確に記述し、オブジェクトが経験する状態のシーケンス、状態遷移を引き起こすイベント、および状態遷移に伴うアクションを表現します。
有限状態機械、または有限状態オートマトンとも呼ばれ、略して状態機械と言います。状態機械は複雑なロジックを有限の安定した状態に簡略化し、安定した状態でイベントを判断します。
状態機械はモデル要素の動的な振る舞いをモデリングするため、またはシステム内のイベント駆動の側面をモデリングするために使用され、オブジェクトまたはインタラクションがライフサイクル内で時間に応じて経験する状態のシーケンスを記述します。
状態機械には他のいくつかの要素が関与しています。例えば、状態、遷移、イベント、アクションなどです。オブジェクトの初期状態から、イベントに応答して特定のアクションを実行し始めます。これらのイベントは状態の遷移を引き起こし、オブジェクトは新しい状態で再びイベントに応答しアクションを実行し始めます。このようにして連続して終了状態に至るまで進行します。
複数ユーザーのリアルタイム共同編集と共有リンクによる即時情報伝達をサポート
テキスト入力から自動生成し、スタイルを自動最適化
組み込みテーマと完全カスタマイズ可能なデザイン
アイコン、画像、ラベル、LaTeX数式、コードブロック、リンク、添付ファイルなどをサポート
エクスポート: PNG, VISIO, PDF, SVG | インポート: VISIO, Mermaid
リアルタイムクラウド保存、マルチデバイス同期、バージョン履歴、データ保護
状態図は状態を中心に表現する、角丸長方形は状態を示し、遷移線に書かれている内容は活動図の活動に対応します。
活動図は活動を中心に表現する、角丸長方形は活動を示し、遷移線には通常内容を書かず、判断を行う際に線上に判断条件を書きます。
状態とは、オブジェクトがそのライフサイクル中に、特定の条件を満たし、特定の活動を実行し、または特定のイベントを待機する状況を指し、角丸長方形で表します。
初期状態:状態マシン図の開始を表し、実線の円で表します。状態マシン図には1つの初期状態しかありません。
終了状態:状態マシン図の終了を表し、実線の円環で表します。状態マシン図には複数の終了状態が存在することがあります。
組み合わせ状態:組み合わせ状態は状態内に子状態がネストされた状態であり、状態が同時に存在するかどうかに基づいて、順序子状態と並列子状態に分けられます。
履歴状態:履歴状態は擬似状態であり、状態が再びその組み合わせ状態に遷移する際に、前回退出した時の子状態にいるべきで、組み合わせ状態の初期状態から始めるべきではありません。
遷移は2つの異なる状態間の関係であり、オブジェクトが源状態で一定の動作を実行し、特定のイベントが発生し特定の警戒条件が満たされたときに、目標状態に入ることを示します。
トリガーイベント:遷移の誘因であり、信号、イベント、条件変化、時間式などが含まれます。
警戒条件:論理式であり、トリガーイベントが発生し警戒条件が真であるときに、遷移が活性化されます。
動作:代入操作や算術演算であることもあり、または動作シーケンスであり、他のオブジェクトにメッセージを送信し、操作を呼び出し、戻り値を設定し、オブジェクトを作成または破壊することを含みます。
信号イベント:オブジェクトが信号を受信するイベントを指し、その受信信号のイベントが状態の変換を引き起こします。
時間イベント:時間の経過を表し、時間条件が満たされたときに特定のイベントをトリガーする可能性があります。時間は相対的でも絶対的でもあり得ます。
変更イベント:特定の属性値に依存する論理式で表される条件が満たされたときに、イベントが発生します。
呼び出しイベント:オブジェクトが呼び出し要求を受信することを示し、このオブジェクトは状態の遷移を用いて操作を実現し、特定の処理過程を用いません。
コントローラー:エレベーター制御システムなど
ユーザーインターフェースフロー:ログインフローなど
ライフサイクル管理:注文、タスク、リクエストなど
状態マシン図には初期状態が一つだけあり、終了状態は複数存在することができます。
順序サブ状態:合成状態のライフサイクル中、任意の時点で一つのサブ状態にしか存在できません。つまり、複数のサブ状態は排他的な関係にあり、同時に存在することはできません。
並行サブ状態:合成状態のライフサイクル中、複数のサブ状態が同時に存在することができます。
両者は同じ意味ではありません。
履歴状態は一般的に合成状態に存在し、擬似状態であり、状態が再びその合成状態に移行する際、前回終了時のサブ状態にあることを示します。
内部遷移とは状態を変えない遷移を指し、表現方法は:イベント(パラメータ名)[ガード条件]/アクション。
ある状態でその状態を離れる必要のないイベントを処理する場合、内部遷移を定義することができます。
様々なアクションの種類と関連する文法は以下のように記述できます:
(1)代入:target:=expression
(2)呼び出し:opname(arg1,arg2)
(3)オブジェクト作成:new Cname(arg1,arg2)
(4)オブジェクト破壊:object.destroy()
(5)戻り値:return value
(6)オブジェクトへのメッセージ送信:sname(arg1,arg2)
(7)オブジェクトの自己終了:terminate
(8)中断不可能なアクション:[言語で説明]
普通のアクションを状態と見なさないでください。例えば:「ボタンをクリックする」は状態ではありません。
状態図は複数のオブジェクト間の関係を直接表現することはできません。状態図は主に単一のオブジェクトまたは単一のクラスの振る舞いをモデリングするためのものです。複数のオブジェクト間に相互作用がある場合、シーケンス図、コラボレーション図、またはアクティビティ図を使用して表現することができます。
あります。複雑なシステムでは、一つのオブジェクトの振る舞いが複数の視点または次元の状態図に分割されることがあり、複数のサブ状態図を複合状態図として埋め込むこともできます。
イベントはトリガーであり、状態遷移を引き起こす外部信号を指します。例:ユーザーが「送信」ボタンをクリックする;
アクションは反応であり、状態遷移時または状態中に実行される操作を指します。例:確認メールの送信、タイマーの実行、パスワードの検証。