3

この HSM サンプル モデル - http://www.embedded.com/design/system-integration/4008251/8/A-crash-course-in-UML-state-machines-Part-2 - を考えると、何をすべきか疑問に思っています移行アクションを実行する適切な瞬間であること。このマシンが初期状態 S211 にあり、イベント G がディスパッチされたとします (S21 -> S1) - このイベントに対して何らかのアクションがあると仮定しましょう。シーケンスは次のようになります。

最も一般的でない祖先 (S) への終了 - 遷移アクション - 宛先状態 (S1) へのエントリ - ターゲットの初期化アクション...

または多分このように:

遷移元状態への終了 (S21) - 遷移アクション - 最小共通祖先 (S) への終了 - 宛先状態への開始 (S1) - ターゲットの初期化アクション

?

要するに、遷移アクションは「遷移のソース」または「最小共通祖先」に関連付けられていますか?

ウィキペディアの説明付きの例は、これらの詳細を示すにはあまりにも些細なことです... UML仕様は、LCAの答えが正しいものであることを示唆しているようですが、よくわかりません。

あらかじめThx(;

4

1 に答える 1

1

オートマトン理論では、アクションはソースでもターゲットでも発生しないことが示唆されています。しかし、オートマトン理論は一般的に階層的な状態を考慮していません。そうです、LCA は移行アクションの理論的仮定として優れています。

ただし、Miro Samek (QHSM) によって考案されたステート マシン コードは、実際にはソース ステート内で遷移アクションを実行します。これは問題でも欠陥でもありません。

特定の実装が関係しているため、重要なのは遷移アクションが一貫した方法で発生することだけです。Miro のコードがそうです。

なんらかの理由で、LCA またはターゲット状態で遷移アクションを実行する必要がある場合は、「拡張状態」を使用して結果を得ることができます。しかし、実際には、それは決して必要ではありません。

于 2013-05-03T01:55:51.903 に答える