ShallowHistory 構文を正しく理解しているかどうかを知りたいです。
これは正しい使用方法ですか?
UML 仕様で。初期の疑似状態の代わりに使用できると言われています。その場合、State1 のメモリをリセットする方法はないと思いますが、この場合、State0 からの遷移は常に State1.1 から始まります。私は正しいですか?
あなたの解釈は正しいようです。上部構造 より:
複合状態に入ると、次のケースが区別されます。
• デフォルト エントリ: グラフィカルに、これは複合状態の外側の端で終了する着信遷移によって示されます。この場合、デフォルトのエントリ ルールが適用されます (セマンティック バリエーション ポイント (デフォルトのエントリ ルール) を参照)。
と
セマンティック バリエーション ポイント (デフォルト エントリ ルール)
遷移が囲んでいる状態で終了し、囲まれた領域に初期疑似状態がない場合、この状況の解釈はセマンティック バリエーション ポイントです。一部の解釈では、これは不適切なモデルと見なされます。つまり、そのような場合、初期疑似状態は必須です。別の解釈では、この状況が許容されます。つまり、このような遷移が行われると、ステート マシンは、リージョンまたはそのサブステートのいずれにも入ることなく、複合ステートにとどまるということです。
そして最後に:
浅い履歴エントリ: 遷移が浅い履歴疑似状態で終了する場合、アクティブなサブステートは、このエントリの前に最後にアクティブになったサブステートになります。後の 2 つのケースでは、デフォルトの履歴状態に入ります。これは、履歴疑似状態から発生する遷移のターゲットであるサブ状態です。(そのような遷移が指定されていない場合、状況は不明確であり、その処理は定義されていません。) 履歴によって決定されたアクティブなサブステートが複合ステートである場合、デフォルト エントリに進みます。
H
最後の段落から、疑似状態から、少なくとも疑似状態が指す同じ状態への遷移を常に行う必要があるように思われることに注意してくださいinitial
。そうしないと、マシンが正しく定義されていない可能性があります。
初期疑似状態の代わりに H* を使用できると書かれている場所が見つかりませんでした。これどこで見た?