ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

Web系、フレームワーク利用時で、関数・メソッドが並んでいる場合の状態遷移表の書き方とか

2018-05-20 08:39:37 | 開発ネタ
状態遷移図・状態遷移表の書き方(基本編)
https://blog.goo.ne.jp/xmldtp/e/10c5e3d633b701a006bb4d615135a11d


で書いたことは、一般的なケース。実際には、以下のような状況がある。
その場合にどうやって状態遷移表を書くかについて




■ケース1:IF文で、プログラムを呼び出しているところがない。

 Web系などである。フレームワークを使うとこうなるので、多くのケースはこちらに属する。

 onClick()等(フレームワークの場合なんとかAction等)の関数が並び、IF文に分かれていない。
 この場合、状態遷移を表す変数すらない時がある。
 関数、メソッドのみが並んでいて、何かのタイミングでこれらの関数が起動されるというもの。

 ★この場合、onClick関数1つ、Actionメソッド1つを1イベントとすると書きやすい※
  そして、状態遷移だが、状態を保持する関数がある場合は簡単だけど、ない場合がある。
  ない場合、1つの状態ならばいいんだけど、そう考えにくい場合もある
  (画面系のフレームワークで、イベントを処理したあと、正常終了なら他画面に遷移することが、
   プログラムのほかに記述されているケース。struts等がこのケースにあたる)

 ★状態変数がない場合、上記で見つかったイベントを2つずつ取り出し(そのイベントをA,Bとする)
   Aのイベント終了後(ないしはイベント処理実行中に)、ほかのイベントを経ないでBのイベントが実行できる場合
      →AとBは同じ状態
   Bのイベントを実行するにはCのイベント(例えば「戻る」ボタンクリック)を経ないと実行できない場合
      →AとBは違う状態
  と見なして、状態を分けることができる。
   ●この結果、画面の場合は、画面ごとに1状態となる。
    (エラー画面も1状態か?とかはビミョーだけど)

※イベントは一般的には、外部割込みであり、外部割込み時の処理関数は別関数として書き、イベント登録時に
 処理関数(のアドレス)も登録するようにしているから






■ケース2:状態変数が2つ(以上)ある

 (1)2つの状態変数の組み合わせで、1つの状態の場合と、
 (2)全く独立している(=無関係な)場合と
 (3)ある変数のときに、さらに詳細に状態をとるとき

が考えられる。(1)のときは、その組み合わせが1状態となる。まとめるときは


SW-1     開始   |      動作中     |    終了
SW-2   ON  | OFF |  ON  |  OFF    | ON   |  OFF       

のような感じで、まとめていく


(2)は変数ごとに別々の図にする。

(3)は、(1)のケースと(2)のケース2通りある。
例えば上記の例で、ON OFFは、動作中しか関係ない場合

SW-1     開始   |      動作中     |    終了
SW-2          |   ON  |  OFF   |

というのもありだし

表1
SW-1     開始   |      動作中     |    終了

とし、別の表で

表2(動作中のとき)
      ON |    OFF

       
とするのもあり(実は(1)の場合でも、別の表にすることがある。
(2)のケースで(1)の書き方をすると、印刷できないくらい広がることがある)






■for,while文があり、何か回っているが、状態を表す変数やイベントを表す表が見つからない
 この場合、テーブルがあることがある。そのテーブルがすでに状態遷移表になっている。

 テーブルのある項目が受け取ったものの一部と一致していたら、そのテーブルに書いてある
 処理を実行するという形になっている。上述の「ある項目」を探し、それらがイベント、状態になる。


とりあえず、思いついたのは、こんなかんじ。
この記事についてブログを書く
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 代表的なフィールドネットワ... | トップ | 今年のシステム開発受注、RPA... »
最新の画像もっと見る

開発ネタ」カテゴリの最新記事