大規模な状態数のモデル化の手法

2 views (last 30 days)
大貴 渡邉
大貴 渡邉 on 2 Sep 2021
Commented: Atsushi Ueno on 2 Sep 2021
状態数が20個、各状態間で処理を行う中間処理が380個(状態1から2、状態2から1などの両方向存在し、中間処理においても状態で行うような処理と同等の処理を行う)のような大規模な状態数に対して、私たちは1つの状態遷移表を用いて開発を行うことを検討しています。
一方で、このような大規模な状態遷移表を記述すると、動作が重くなるなどの問題点が浮上しています。
そこで、状態数の多い状態遷移表の最適なモデル化の構造を教えていただければ幸いです。
(状態数の多いモデル化はどのように実現するのがベストプラクティスでしょうか。)

Accepted Answer

Atsushi Ueno
Atsushi Ueno on 2 Sep 2021
状態遷移はなるべく単純にすべきですが、電話屋さん等「大規模複雑なステートマシン」となる特徴を持つシステムはあります。そのような場合は状態遷移表が有用で、より分かり易い表現方法と言えます。
>そこで、状態数の多い状態遷移表の最適なモデル化の構造を教えていただければ幸いです。
状態遷移表を階層的にしたり、表の中に中間処理まで明示するなどの工夫で効率的な設計を目指す手法があります。Stateflowとは別のCASEツール「ZIPC」製作元の会社では上記手法を「拡張階層化状態遷移表(EHSTM:Extended Hierarchy State Transition Matrix)設計手法」として提唱しています。
StateflowもEHSTMで設計するのに十分な仕様を有しています(表の内部に中間処理をグラフィカルに表示する機能こそありませんが)。またメインの状態遷移図はもちろん充実しており、私はいつもStateflowで状態遷移図と状態遷移表を両方表示してStateflowを使います。
>大規模な状態遷移表を記述すると、動作が重くなるなどの問題点...
私も経験がありますが、Stateflowで遅くなるのは画面表示です。一度に大量の項目を表示すると動作が重くなるのはどのCASEツールにも言える事だと思います。全体表示すると小さくて読めなくなる様な表は避け、状態の階層化やグループ化を検討すべきです。
  1 Comment
Atsushi Ueno
Atsushi Ueno on 2 Sep 2021
(おそらくご使用になっているかと思いますが、質問文には明記していなかったので)
Stateflowには「真理値表」があります。真理値表と状態遷移表を組み合わせ「条件判断→イベント生成は真理値表で」「イベントを受けて状態遷移は状態遷移表で」の様な構成にすると、大規模複雑なシステムでも設計し易く、把握し易い表現が可能になります。

Sign in to comment.

More Answers (0)

Categories

Find more on Stateflow in Help Center and File Exchange

Products


Release

R2021a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!