システム工学概論 第8回 状態を持つ系 2004. 11. 25 第8回概要 1.状態のあるソフトと 状態の無いソフト 2.状態,遷移原因,遷移ルート 3.状態遷移図 4.有限状態機械モデル(Finite State Machine,FSM)の利用 状態を持っ系 これ迄の講義 ー状態を持たない系ー 今迄の通常技術で対応が可能 以後の講義 ー状態を持っ系ー 今迄と異る対応が必要 ・入力から出力への変換関係が ・入力から出力への変換関係 が,状態により変る 固定している 多様な顔を見せる ・先に状態を考え分離する. ・機能(入力から出力への 残りは状態毎プログラムにな 変換の関係)を中心に設計 る. ・数学的な演算処理が中心なら これらプログラムは従来とおり これで充分 ・人を始めとする身辺の各種 メカニズムの実現に適している 成熟した技術 ハードを伴うことが多い オブジェクト指向はその一端 状態構造の有り/無し 状態構造有り 状態構造無し 3 変換 関係 F 入 力 出 力 入 力 変換 関係 F1 1 4 2 出力4 出力3 出力2 出力1 時計 時刻表示 を 求める 状態4 状態3 状態2 状態1 時計 盤面 時刻表示 時刻を える 時計 時刻 1 秒ク ロック 実時間ク ロック 表示 する 時計 盤面 有限状態機械 Finite State Machine 身辺殆どの物/現象などを模擬可能 Object 状態 状態 (電球)滅火(中) 状態 (電球)点灯(中) スイッチON 電球 スイッチOFF 1 0 滅火 滅火 1 0 点灯 状態:(広辞林)ありさま,様子 (工学)ある安定したありさま :(本教科)ある視点から見て 安定な 状態を云う 時間t 状態遷移原因 / Event 状態 状態 ( 電球) 滅火( 中) ( 電球) 点灯( 中) スイ ッチON 電球 スイ ッチOFF スイッチ スイッチ ON押下 OFF押下 (状態)遷移原因 1 0 1 0 時間t 滅火 点灯 滅火 (状態)遷移原因:状態を変化させる原因(瞬間的信号) 状態遷移ルート 滅火状態 (電球)滅火(中) 点灯状態 緩やかに点 (電球)点灯(中) 状態遷移ルート 電球 緩やかに滅 スイッチ ON押下 1 0 1 0 スイッチ OFF押下 時間t 滅火 点灯 滅火 状態遷移:状態が移り変わること 状態遷移ルート:状態が移り変わる道筋 電気スタンドの状態遷移図 略記ー理論等 状態名:例 空き 滅火中 S0 (状態番号) 例 遷移原因名 例 Off SW 状態名:例 塞り (状態番号) 例 遷移原因名 例 On スイッチ On 点灯中 S1 SW スイッチ Off 滅火中 スイッチ On 点灯中 スイッチ Off 図面記号:図面を書くときに守るべき記号の規格, 図は仕様記述言語 SDL Specification and Description Language 電気スタンドの状態遷移図 滅 火 中 SW SW スイッチ On 点 灯 中 SW スイッチ Off 点灯中 滅火中 排他的 SW 点灯中 排他的 信号灯 点 火 時間 休止中 緑点火 黄点火 赤点火 休止中 スイッチOn 緑点火 黄点灯 黄点火 赤点灯 排他的に異る状態をとる 赤点火 緑点灯 (状態)遷移ルート 状態記号 旧状態 樽形で表す (状態)遷移原因 状態 が変 わる こと が状 態遷 移 遷移原因1 ○○を△する 遷移原因2 ○を△□する くさび状の切込み箱で表す (SDLでは入力と呼ぶ) 状態遷移 ×を□する 状態が変わること Aを出力する 新状態 新状態 遷移ルートA 遷移ルートB 遷移ルートには,名称(番号) を付ける (状態)遷移ルート 状態が移り変る道筋 遷移ルートの始点 状態遷移原因の直下 遷移ルートの終点 次の状態記号の接点 機能と出力/メッセージ 旧状態 遷移原因1 ○○を△する 遷移原因2 ・状態遷移図は,旧状態から新状態 へと,上から下または左から右に 書く. ・状態の直後に状態遷移記号を書く 1状態に複数の遷移原因がある. なるべく揃えて書く方が良い. ○を△□する ×を□する Aを出力する 新状態 新状態 遷移ルートA 遷移ルートB ・遷移ルートは,機能/処理,出力, 判断/分岐,(関数)呼出しを 経路の途中に入れることができる (フローチャートに似ている) ・□箱は機能で「○○を□する」と 書く.(SDLではタスクと呼ぶ) ・くさび状箱は,外部出力である. (SDLではメッセージ,他ではコマン ド と名付ける場合もある) 簡単な自動販売機 自動販売機の状態 ¥ 購入指定 投入金 販売 可能 煙草自動販売機 合計金額 待機中S0 購入(商品)指定 ¥ ¥ 投入金 煙草自動販売機 煙草自動販売機 投入金あり販売不可S1 投入金 購入指定 販売可能S2 簡単な自動販売機 自動販売機 待機中 投入金 投入金あり 販売不可 指定 商品 販売可能 走行する自動車 車の 速度 時間 停止中 加速中 Q1.状態遷移図 を書け Q2.遷移原因名 を決めよ Q3. それらは 何処から 生じるか? 停止中 信号青 出発 加速中 速度40Km/h に到達 定速走行中 減速中 停止中 定速 走行中 減速中 前方黄信号 減速 目標目前 車両停止 自動車運転手のシミュレータが作れる 状態遷移原因に伴う情報 停止中 信号 赤から 青に変化 定速 走行中 加速中 速度40Km/h に到達 前方黄信号 減速中 車両停止 状態遷移の信号 伴う情報 (不要な場合もある) 新信号 青,黄,赤 数種の遷移を纏められる 速度 XkM/h 変数を伝えられる 状態遷移の 契機に限定する 各種の信号/変数 複数種の信号可能 状態遷移原因に伴う情報 停止中 信号 赤から 青に変化 定速 走行中 加速中 速度40Km/h に到達 前方黄信号 減速中 車両停止 状態遷移の信号 伴う情報 (不要な場合もある) 新信号 青,黄,赤 数種の遷移を纏められる 速度 XkM/h 変数を伝えられる 状態遷移の 契機に限定する 各種の信号/変数 複数種の信号可能 現実世界 電話交換 リーン リーン もしもし 角の蕎麦屋を 交換手 A B ダイヤル レジスタ 呼出音 C 呼出信号 D 抽象化した世界 モデル 空き ダイヤル中 Off hook ダイヤル終了 Aを接続する Aを開放する Bを接続する 振る舞い Cを接続する 自動交換機が作れる 仕 様 の 記 述 呼出中 Off hook Bを開放する Cを開放する 通話中 On hook Dを 開放 する Dを接続する 仕様が記述できている SDLは交換機仕様記述で出発 仕様記述言語 SDL 通信は世界的な相互接続の必要性から標準化が進んでいる 交換システムの仕様表記が下のような図式表記から始まった. 1980年代に仕様記述言語として図式表記と言語表記が標準化 System Description and Description 略称 SDL プロトコルの仕様表記などにも多く用いられている 現在では,状態記号中の図式表記は標準としては廃止されている A 空き ダイヤル中 Off hook ダイヤル終了 Aを接続する ダ 呼 呼出中 Off hook Aを開放する Bを開放する Bを接続する Cを開放する Cを接続する Dを接続する 通話中 On hook Dを 開放 する 単純な仕様からプログラムへ 旧状態 接続A有り 旧状態 A ダイヤル終了 状 態 遷 移 Aを開放する 旧状態 接続B有り 接続C有り ダ ダイヤル中 新状態 A ダイヤル中 状態遷移には旧状態から新状態への 移行の為の機能を含む 旧状態に有って新状態に無いもの 状態遷移で削除する 新状態に有って旧状態に無いもの 状態遷移で追加する ダ ダイヤル終了 Aを開放する プログラム Bを接続する Bを接続する プログラム Cを接続する Cを接続する プログラム B 呼 C 呼出中 新状態 B 仕様 具体化した プログラム 状態遷移ルートは通常のプログラムと同じ性質である 呼 C 呼出中 新状態 状 態 遷 移 プログラムへの具体化 旧状態 A 旧状態 Cを接続する ダ Bを接続する ダイヤル中 Aを開 放する Aを開放する Bを接続する Cを接続する 仕 様 A開放指令を 送る A左端の専有 を解除する A右端の専有 を解除する Aを作る各接 点を求める ダイヤル終了 各接点開放 指令を作る Aを開放する プログラム 全開放指令 を送出する Bを接続する プログラム Aをテーブルか ら削除する Cを接続する プログラム B 呼 C 呼出中 新状態 ダ ダイヤル中 Aを開放する ダイヤル終了 状 態 遷 移 A B 状態遷移ルート中のプログラムは 通常の設計でできる 呼 C 呼出中 新状態 具体 化し たプ ログ ラム 状態遷移中の分岐1 もしもし 角の蕎麦屋を 呼出信号 相手空き A ダイヤル レジスタ B C 呼出音 呼出中 相手話中 E ダイヤル中 ダイヤル終了 話中 状態遷移ルートには 判断/分岐があっても良い (形式論理では許さない) 話中音 状態遷移中の分岐2 ダイヤル中 A 正常 ダイヤル レジスタ 空き 料金未払い サービス拒否 E 空き Off hook 未 使用 電話 ダイヤル中 発信拒否 発信拒否 ダイヤル終了 話中音 状態遷移中の分岐3 On hook 発信拒否 S5 ダイヤル中 S1 話中 S4 話中音 ダイヤル レジスタ 話中音 未使用 発信 電話 On hook On hook ダイヤル終了 話中 拒否 空き S0 Off hook 通話中 S3 On hook 呼出中 S2 Off hook 呼出音 再呼出 呼出信号 On hook ・太線の経路は,正常にサービスが進行して終了する過程. ・その他のルートが正常ルートの数倍ある.(設計で対処する) 相手話し中などは,サービスの一環だから「準正常」という ハード異常などに対処する「異常」もある. 状態遷移原因表 O n h o o k 発信拒否 O n h o o k ダイヤル中 Off ダイヤル 原因 Hook 終了 状態 e1 e2 空き Tr0-1 (S0) 話 中 話 ダ 話 O n h o o k 未使 用電 話 空 き O ff h o o k 話 中 ダイヤル終了 発 信 拒 否 Off hook 呼出中 通話 中 0 O n h o o k 再 呼 出 呼 O n h o o k ・人が操作するものは, あらゆる場合を考える. ・状態遷移原因表に遷移ルート名/ 番号を記入する 漏れは一目で分かる. ・全ての遷移ルートにつき, 間違いない遷移を決める. ・各種の異常に対する遷移は 正常サービスの数倍になる ダイヤル中 (S1) On Hook e3 再 呼出 e4 Tr1-2 呼出中 (S2) 通話中 (S3) 話中 (S4) 発信拒否 (S5) ・最終的には遷移ルートは 関数に対応させる. ・上の例では状態とイベント番号 の組合せで関数名称化した 状態を使う利点 在来の便法 状態遷移図 ○○フラグを立てる ○○フラグを立てる ○□信号は きたか? ○○フラグ は1か? ・状態を使い,排他的に 明解に示せる ・区分できて考え易い ・構造が簡単になる ・誤りが少ない.普通の 設計の時より品質が良い ・1~2状態のみ,混在する場合 には,これでも構わない ・状態数が増え,あるいは遷移 原因数が多くなると混在して 考えにくく,扱い難い ・最終的に誤りが多い ・Dynamic jumpは処理能力の 無駄使いである システムを構成する抽象機械群 Windows PCの状態 各アプリケーション 毎の状態 Word待機中 Word アプリケーション 使用可 ファイル 編集 表示 挿入 書式 スタート Word 休止中 Word ファイル 編集 表示 挿入 書式 abcbdbdbd dk nm,......... スタート Word PowerPoint Excell 標準 スライド一覧 ノート スライドショー マスター グレースケール 設定パレット ツールバー ルーラー ガイド 標準 スライド一覧 ノート スライドショー 各アプリケーション 内で各オプション毎の状態 マスター 非マスター グレースケール 非 グレースケール Word使用中 システムは多数の小さい系から成る 系 = 抽象機械 (有限状態機械, Finite State Machine) 抽象機械群 = プロセス 各アプリケーション内で 各オプション毎の状態 各アプリケーション 毎の状態 Windows PCの状態 Word待機中 Word アプリケーション 使用可 ファイル 編集 表示 挿入 書式 スタート Word 休止中 Word ファイル 編集 表示 挿入 書式 標準 スライド一覧 ノート スライドショー マスター グレースケール 設定パレット ツールバー ルーラー ガイド 標準 スライド一覧 ノート スライドショー 表示モードのprocess マスター 非マスター abcbdbdbd dk nm,......... マスターのprocess スタート Word使用中 Word グレースケール PowerPoint 非 グレースケール グレースケールのprocess Excell 休止中 準備中 準備完了 使用可 PCのpcess 休止中 準備中 繋がりのある状態群を 纏めてプロセスと名付ける 使用可 Wordのprocess PowerPintのprocess Excellのprocess システムは幾つものプロセスから成る システムを構成するプロセス 休止中 準備中 準備完了 使用可 休止中 準備中 準備中 使用可 使用可 Excellのprocess Wordのprocess PCのpcess 休止中 プロセス間通信 標準 スライド一覧 グレースケール マスター 非マスター 非 グレースケール グレースケールのprocess ノート スライドショー マスターのprocess 表示モードのprocess システムの中の各プロセス間で通信して全体システムとして動作させる. 簡単に複雑なシステムができる = 複雑なシステムが簡単にできる 複数プロセスの自動販売機 現金収受 プロセス 販売プロセス 自動販売機 投入金0 待機中 投入金 自動倉庫 プロセス 指定 商品 投入金 投入金 > 0 投入金 投入金あり 販売不可 販売可能 更に,ドンドンと複雑な機能も実現できる. ソフトウエアとハードウエアとの対応 入力 I (Input) 現金収受 プロセス 自動販売機 自動倉庫 プロセス 販売プロセス 投入金0 投入金 出力 O (Output) 処理 P,機能 F 待機中 指定 商品 投入金 商品 指定 投入金 > 0 投入金 マイコン制御 現金収受装置 投入金あり 販売不可 販売可能 自動販売機 本体装置 マイコン制御 自動倉庫 ソ フ ト ウ エ ア ハ | ド ウ エ ア 自動販売機の遷移原因 現金収受 プロセス 自動倉庫 プロセス 販売プロセス 自動販売機 投入金0 待機中 投入金 指定 商品 投入金 商品 指定 投入金 > 0 投入金 図の略称 投入金 商品指定 投入金あり 販売不可 遷移原因 投入金が入力された 商品が指定された 販売可能 伴う情報 投入金額 商品を示すコード(例:場所) 複数プロセスを持つシステム システム全体を幾つかのプロセスに分割する 個々のプロセスP1~Pnは相互に独立であるようにする これらがそれぞれ状態数S1~Snであれば,全体系は S1*S2 * S3*・・・ Sn の状態数を持つ. 作る手間は,状態数に比例するから S1*S2 * S3*・・・ Sn 例 10*10*10=1000 の系が, S1+S2 +S3・・・ Sn 例 10+10+10=30 の手間で作れ,大幅な簡単化ができる. 各プロセスをシステムを構成するハード機能部分に対応させる とソフトとハードが一体のものとして扱え,取扱いが容易 になる 纏め ・ソフトには,状態構造を持つ系と 状態構造を持たない系がある ・状態構造は,状態,遷移原因,遷移ルート で表される ・状態と遷移原因で,状態遷移が起る. 遷移ルートはフローチャートと同じに書ける. ・遷移ルートを関数/モジュールに対応させると, 今までのプログラム設計法が使える ・複数プロセスにすれば,簡単に複雑なシステム が取り扱える
© Copyright 2024 ExpyDoc