Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

スーパートランジションを使用した階層レベル間の移動

スーパートランジションは、チャート内の異なるレベル間での遷移です。スーパートランジションが行われるのは、最上位のチャート内のステートと、そのいずれかのサブステート内のステートの間か、異なるサブステート内にあるステートの間です。チャート内の任意の数の階層 (たとえば、最上位のステートから、チャート内でいくつかの階層分下位のサブチャートに属するステート) を範囲として、スーパートランジションを作成できます。

スーパートランジションがサブチャートに入る点やサブチャートから抜け出す点を、スリットと呼びます。スリットは、スーパートランジションをグラフィカル セグメントに分割します。たとえば、次のチャート モデルには、On サブチャートを抜け出すスーパートランジションが表示されます。

Chart modeling a bang-bang controller. A supertransition exits through a slit on the boundary of the subchart On.

同じスーパートランジションがサブチャート内に表示されます。

Substate On.

両方のスーパートランジションのセグメントに同じラベル [warm()] が設定されています。この例の詳細については、バンバン温度制御システムのモデル化を参照してください。

サブチャート内部へのスーパートランジションの描画

以下の手順で、サブチャート外のオブジェクトからサブチャート内部のオブジェクトへスーパートランジションを描画します。

メモ

スーパートランジションの描画操作は、元に戻せません。この操作の実行により、操作を元に戻すボタンとやり直しボタンは無効になり、操作を元に戻す/やり直すことはできません。

  1. カーソルをステートの境界に移動します。

    カーソルが十字形に変化します。

  2. マウスをサブチャートの境界のやや内側にドラッグします。

    スーパートランジションが表示されます。ソース ステートからサブチャートに向かって線が延び、先端の矢印はサブチャートのスリットに突き刺さります。

    スリットの初期位置が不適切な場合は、サブチャートのエッジ内で望ましい位置にスリットをドラッグします。

  3. サブチャートをダブルクリックして開きます。

    スーパートランジションの先端の矢印は赤で強調表示され、サブチャートの中に入っています。

  4. 矢印にカーソルを置きます。

    カーソルの形状が矢印になります。

  5. カーソルをサブチャート内の希望する位置までドラッグします。

  6. カーソルを離します。

    スーパートランジションは希望する位置で終了します。

サブチャートから外部へのスーパートランジションの描画

サブチャート外へのスーパートランジションを描画するには、以下の手順に従います。

  1. 元となるオブジェクトからサブチャートの境界線の外側の任意の場所まで遷移のセグメントを描画します。

    スリットが以下のように現れます。

  2. 親オブジェクトに移動します。

    スーパートランジションの矢印の先端は赤で強調表示され、サブチャートから出ます。

  3. 矢印にカーソルを置きます。

    カーソルの形状が矢印になります。

  4. カーソルをチャート内の希望する位置までドラッグします。

    サブチャートの親が表示されます。

  5. カーソルを離すと、接続が完結します。

    メモ

    親チャート自体がサブチャートであり、階層内で上位にあるサブチャートに配置されたオブジェクトで遷移を終了する場合は、目的の親に達するまでこの手順を繰り返します。このようにして、任意階層のサブチャート内のオブジェクトに遷移を接続することができます。

スーパートランジションのラベル付け

スーパートランジションは、横断する包含層ごとに生成される複数の遷移セグメントとして表示されます。たとえば、サブチャート外のステートとそのサブチャートに含まれるサブチャート内のステートを結ぶ遷移を作成する場合は、それぞれ包含レベルの異なる 3 つのセグメントで構成されるスーパートランジションを作成します。

通常の遷移にラベルを追加する場合と同じ手順 (遷移のラベル付け を参照) で、スーパートランジションを構成する各遷移セグメントにラベルを追加できます。結果のラベルは、スーパートランジションを構成するすべてのセグメントに表示されます。また、いずれかのセグメントのラベルを変更した場合は、すべてのセグメントで変更内容が反映されます。