« 2011年6月 | トップページ | 2011年8月 »

2011年7月

2011年7月 4日 (月)

状態って、どうやって抽出します?

だいぶ以前から”書く書く”と言っていた、状態遷移図についての話が、Intreface誌の連載第8回でやっと載せました。

この記事でとりあげた例は、UARTの通信制御の状態遷移図です。
UARTで受信するパケットのフォームに応じた状態を設けて、一連の受信制御を行っています。

Uart

状態遷移図って、お馴染みの方は割と多いと思います。
では、その皆さんに質問です。状態ってどうやって抽出します??
状態遷移図を良く使ってはいても、この本質的な問題って、結構難しいと思います。

この記事の本編では、こんなことを書きました。


同じ入力データであっても,事前に何があったかによってプロセスの対応が異なる場合があるのです.このような振る舞いのことを,「順次処理コントロール」と言います.この順次処理は,DFDだけでは表すことが出来ません.このような場合には,状態遷移図を用いてプロセスの振る舞いを捉えたモデルを作成する方が適しています.

今回の例(UART制御)や、画面遷移のように、状態遷移させるイベントの元が明確であり、それらをどう扱うかを切り替えるための”状態値”は割と考えやすいでしょう。
世の中にはそれ以外のモデルも沢山あると思うのですよね。
よく使われている電子ポットの例で考えると...
 ● 保温中・沸騰中 といった、ユーザから見たシステムの稼動状況で状態を捉える
 ● 蓋OPEN ・ CLOSE といった、モノの物理的状況(=センサの感知状況)などを状態として捉える
というのがあります。

他には、どんな状態抽出の考え方があるのでしょう。
これって、前々から考えていることなのですが... 何か文献などあれば、知りたいなと思うのです。
ぜひ、皆さんコメントにて教えていただけると嬉しいです。


mobaq最後にクイズ
Interface誌掲載時と、上記の絵には違いがあります。さてどこでしょう?
(紙面を持っている方だけが分かる ... coldsweats01)
あっ、アクションが記入されていることではありませんよ。

※ 関連記事: Interface 2011年8月号


« 2011年6月 | トップページ | 2011年8月 »