ドキュメンテーション センター

  • 評価版
  • 製品アップデート

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

遷移

遷移とは

"遷移"は、矢印付きの線で表現されます。この線は、あるグラフィカル オブジェクトを別のグラフィカル オブジェクトにリンクします。ほとんどの場合、遷移は、あるモード (ステート) オブジェクトから別のモードに至るシステムの経路を表しています。遷移は通常、遷移元オブジェクトと遷移先オブジェクトを接続します。遷移元オブジェクトは遷移の開始点であり、遷移先オブジェクトは遷移の終了点です。以下のチャートは、遷移元ステート B から遷移先ステート A への遷移を示します。

ジャンクションは、遷移を遷移セグメントに分割します。この場合、遷移全体としては、元のステートから遷移先のステートに至るセグメントで構成されています。各セグメントは、遷移全体としての妥当性を判定する過程で評価されます。

以下の例には、 2 つのセグメントで構成された遷移が含まれています。1 つはステート On からステート Off、もう 1 つはステート On からそれ自体に至るものです。

デフォルト遷移は、遷移元オブジェクトを含まない特殊なタイプの遷移です。詳細は、デフォルト遷移 を参照してください。

遷移階層

遷移は、ステートのように他のオブジェクトを含めることはできません。ただし、遷移はステートに含まれます。遷移階層は、遷移の親、遷移元、遷移先に関して規定したものです。親は、遷移元と遷移先を含める最下位レベルです。以下の例では、遷移の親を考えます。

以下の表は、前述の例に含まれる各遷移の親子関係を示しています。/ 文字はチャートを表します。ステートの階層内の各レベルは、ピリオド (.) 文字で区切られています。

遷移ラベル

遷移の親

遷移元

遷移先

switch_off

/

/Power_on.Low.Heat

/Power_off

switch_high

/Power_on

/Power_on.Low.Heat

/Power_on.High

switch_cold

/Power_on.Low

/Power_on.Low.Heat

/Power_on.Low.Cold

遷移ラベル表記法

遷移は、そのラベルによって特徴付けられます。ラベルは、イベント、条件、条件アクション、遷移アクションの組み合わせで構成されます。? 文字は、デフォルト遷移ラベルです。遷移ラベルの一般的な形式は、以下のとおりです。

event[condition]{condition_action}/transition_action

eventconditioncondition_action、および transition_action の名前を 遷移ラベルの例 の例で示す適切な内容に置き換えます。ラベルの各部分はオプションです。

遷移ラベルの例

以下の例を参考にして、遷移ラベルの各部分を理解してください。

イベント トリガー-  指定の条件が真になった場合に遷移を発生させるイベントを指定します。イベントの指定はオプションです。イベントが指定されていない場合は、何らかのイベントが発生したときに遷移が発生します。複数のイベントを指定するには、OR 論理演算子 (|) を使用します。

前述の例では、イベント E のブロードキャストによって条件 [off_count==0] が真になったとみなされ、On から Off への遷移がトリガーされます。

条件-  特定のイベント トリガーが真の場合に遷移の実行を確認する論理式を指定します。条件は大かっこ ([]) で囲みます。条件表記法の詳細は、条件 を参照してください。

前述の例では、条件アクションが実行され、遷移元から遷移先への遷移が有効になるには、条件 [off_count==0] が真として評価される必要があります。

条件アクション-  遷移の条件に続いて、中かっこ ({}) で囲んで指定します。条件が真として評価された時点で、遷移先が有効であると判定されるよりも前に実行されます。条件を指定していない場合、暗黙の条件は真であると評価されて条件アクションが実行されます。

前述の例では、条件 [off_count==0] が真の場合は、条件アクション off_count++ が即時に実行されます。

遷移アクション-  指定の条件が真になった場合に、遷移先が有効であると判定されてから実行されます。遷移が複数のセグメントで構成されている場合、遷移アクションが実行されるのは、最終的な遷移先に至るまでの遷移パス全体が有効であると判定されたときに限定されます。遷移アクションの前には、/ を追加します。

前述の例では、条件 [off_count==0] が真であると同時に、遷移先ステート Off が有効である場合に、遷移アクション Light_off が実行されます。

有効な遷移

ほとんどの場合、遷移が有効になるのは、遷移元のステートがアクティブな状況で遷移ラベルが有効なときです。デフォルト遷移では、遷移元のステートが存在しないため、上記と異なります。サブステートへのデフォルト遷移の妥当性が評価されるのは、スーパーステートがアクティブであるという状況で、スーパーステートへの遷移が発生したときです。このラベルリングの規範は、デフォルト遷移と通常遷移の両方に適用されます。以下に示すのは、有効な遷移ラベルの組み合わせです。

遷移ラベル

有効になる条件

イベントのみ

イベントの発生

イベントと条件

イベントの発生と条件が真であること

条件のみ

任意のイベントの発生と条件が真であること

アクションのみ

任意のイベントの発生

指定なし

任意のイベントの発生

この情報は役に立ちましたか?