掲示板一覧 - トピック一覧 Enterprise Architect 全般
ガード条件に優先順位をつけたい |
| スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
| 投稿者 | トピック |
|---|---|
| 未登録ゲスト | 投稿日時: 2009-1-20 12:11 |
ガード条件に優先順位をつけたいステートチャート図からのC言語ソースコード生成において質問があります。
ガード条件がソースコードとして生成される際に、ひとつの状態要素から複数の遷移がある場合、それぞれの遷移のガード条件について優先順位をつけたいのですが、方法はありますか? 優先順位とは、ソースコードとして生成されたときに優先順位の高い遷移のガード条件からif文が書かれていくことを指しています。 たとえば、状態Aから、状態Bと状態Cに遷移する場合、 状態A→[条件①Xが真である]→状態B 状態A→[条件②Yが真である]→状態C この順番でソースになった場合には、条件①が優先であり、条件②の判定を受けることはつまり、Xが真でないということを暗に意味しています。 逆に、 状態A→[条件②Yが真である]→状態C 状態A→[条件①Xが真である]→状態B とソース生成されてしまうと、優先順位が高いはずの条件①が優先されない処理になってしまいます。 適切に処理させるためには、すべての分岐条件を網羅するようなガード条件を設定しなければならないのでしょうか? |
|
| tkouno | 投稿日時: 2009-1-20 12:33 |
EA Administrator ![]() ![]() 投稿: 3939 |
Re: ガード条件に優先順位をつけたいRealTimeUMLの製品について考える前に、ご指摘の件について
UMLとしてはどう表現するのか?という点が気になりました。 UML2.2仕様書を確認したのですが、ざっと見た範囲では ガード条件の判定の順序についての記述はありませんでした。 関係するような気がする文章として、 In compound transitions involving multiple guards, all guards are evaluated before a transition is triggered, unless there are choice points along one or more of the paths. The order in which the guards are evaluated is not defined. というのがありました。 いずれにしても、ご提示のモデルには曖昧さが残っているので それをツール側がうまく処理するというのは難しいように思いました。 まずは、UMLとして厳密なモデルを定義し、その後 それをツール(RealtimeUML)がどのようなコードにするか、という 議論になるのかな?と思います。 |
| 未登録ゲスト | 投稿日時: 2009-1-20 15:04 |
Re: ガード条件に優先順位をつけたい丁寧な回答ありがとうございました、まずは厳密に定義してソースコードを生成してみます。
|
|
| スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |




