• 検索結果がありません。

線形拘束オートマトンを用いた組込みソフトウェアの仕様記述に関する考察

N/A
N/A
Protected

Academic year: 2021

シェア "線形拘束オートマトンを用いた組込みソフトウェアの仕様記述に関する考察"

Copied!
4
0
0

読み込み中.... (全文を見る)

全文

(1)線形拘束オ−トマトンを用いた組込みソフトウェア の仕様記述に関する考察 2000MT012 二口 裕介. 2000MT019 日紫喜 直幸 指導教員. 2000MT110 横井 崇人. 野呂 昌満. 1 はじめに. 2 組込みソフトウェアとオートマトン. 旧来,組込みソフトウェアは系統的な設計がされてい. 我々は,入力を記憶し,記憶を任意に参照することので. なかった.系統的な開発方法とは,システムの仕様を. きる組込みソフトウェアの表現に適しているオートマト. 厳密に定義,記述することができ,あいまいさのない. ンを用いることにする.オートマトンは記述能力によっ. 設計をすることが可能な開発支援の方法のことである.. てクラス分けができる.一般に,記述能力が高いオート. 近年,組込みソフトウェアの開発の大規模化に伴い組. マトンを用いると複雑な計算が可能であるが,その複雑. 込みソフトウェアの系統的な開発方法が必要とされて. さに起因して,記述や理解が難しくなる.各オートマト. いる.一般に,有限オートマトン (Deterministic Finite. ンの特性と,エレベータに適用した場合を考える.. Automaton,以下 DFA) のモデルを用いて設計するこ とがよく知られている.しかし,DFA を用いて記述を試. DFA は,現在の状態とイベントで次の遷移先が決定さ. みても,対象によっては状態数が組合せ爆発を起こす.. ないので,ボタンの入力を記憶する必要のあるエレベー. 本研究の目的は,組込みソフトウェアをオートマトン. れる.しかし入力の記憶を用いた遷移をすることができ タには適用できない.. [1][2] のモデルを用いて系統的に記述することである.. プッシュダウンオートマトン (Pushdown Automaton,. 本研究では入力の記憶を必要とするような組込みソフト. 以下 PDA) は,プッシュダウンスタックを用いること. ウェアを対象をする.これを DFA で記述しようとする. で入力の記憶が可能となる.記憶の操作の仕方が先入れ. と,状態数が組合せ爆発を起こしてしまう.. 後出しに限定されるので,ボタンの入力の記憶を任意に 参照する必要があるエレベータには適用できない.. 解決策として,入力を記憶する必要のある組込みソ フトウェアに線形拘束オートマトン (Linear Bounded. Automaton,以下 LBA) を適用する.組込みソフトウェ アを一つの状態遷移機械で表現すると複雑になってしま うので,構成要素に分割しそれぞれを状態遷移機械で記 述する.記憶を必要とする部分に LBA を,それ以外の. LBA は,有限の記憶テープと,テープを読み書きでき る有限状態制御部で構成されている.テープを任意の位 置で読み書きできるので,複数の入力を記憶し,入力さ れた順序に関係なく任意に参照する必要のあるエレベー タに適用可能である.. 部分に DFA を適用する.対象とする組込みソフトウェ. チューリング機械 (Turing Machine,以下 TM) は,LBA. アは,記憶された入力記号列に対して検索,追加や削除. の有限の記憶テープを無限の記憶テープにしたもので. など複数の異なる動作を行わなくてはいけない.構造を. ある.無限の記憶を扱う事が可能で記述能力が高くなる. 整理するために状態遷移機械を階層化する.. が,停止問題が決定不能な問題になる. エレベータのような入力の記憶が必要な組込みソフト. 我々の提案する手法を入力の記憶を必要とする組込み. ウェアは,LBA の記述能力で十分表現可能と考え,我々. ソフトウェアに適用することで,系統的に記述すること. は LBA を適用することにした.. が可能となった.エレベータと携帯電話を事例として. LBA の適用手順を説明し,有用性と他の組込みソフト ウェアへの適用可能性を検証する.本研究では状態遷移. 3 事例研究 我々は入力に記憶が必要な組込みソフトウェアを,以下. を理論的に表現したものをオートマトンと呼び,それを. の二種類の特性に分類した. • 入力を記憶しておく必要があり,その記憶された. 個々の組込みソフトウェアに適用したものを状態遷移機. 複数の入力と外部の状態を比較して出力を決定す. 械と呼ぶ.. る必要がある組込みソフトウェア.(以下:外部. 二口は状態遷移機械の分割,日紫喜は LBA の階層化,横 井は他の組込みソフトウェアへの適用を主に担当した.. の状態に依存した特性). • あらかじめ入力に優先順位がついていて,入力の 順序とは関係なく,優先順位の高い入力から実行 される組込みソフトウェア.(以下:入力に優先.

(2) 順位がある特性). ボタン処理機械の状態遷移図. 外部の状態に依存した特性の具体例としてエレベータの. ボタン処理機械を階層化して記述する.ボタン処理機械. 制御ソフトウェアを,入力に優先順位がある特性の具体. は,一つのテープに対し検索や追加などの複数の書き換. 例として携帯電話のモード制御ソフトウェアを題材とす. え動作を行わなくてはいけない.構造を整理するために. る.これらを LBA を用いてモデル化する.. ボタン処理機械を階層化する.ボタン処理機械は階層の. 3.1 エレベータのモデル化. 親の状態遷移機械がその子となる状態遷移機械 (内部の. エレベータの構成要素と各構成要素の役割を 表 1 に示. 状態遷移機械と呼ぶ) を自分自身の状態遷移図の一部と. す.扉はエレベータリフトの動作に影響を与えないので. して持っている.親の状態遷移機械が内部の状態遷移機. 省略する.. 械を持つ状態に遷移することで,内部の状態遷移機械が 動作を開始する.親の状態遷移機械の状態遷移図を図 2. 表 1: 構成要素とその役割   .

(3) 

(4)    

(5)    !

(6) \

(7) ^]`_ (a ) "

(8) $#.   b/g!h 0  $ijk+.LM %&')( * ! 

(9) ,+.-0/213542678+.9 :;=<?>6=@ *A 7=BDCE ;!<DF G /$HI ;=<     J+.EK0/$LM ;=< N /OP=<QR STU >=/VI ;=<W ! 

(10)  b?c ) /$_ (a ) def 4$;=<W

(11) ) X+DYZ/2[I ;=<. に示す.. で表現すると複雑になるので,構成要素ごとに状態遷移 機械で表現する.構成要素をクラス図で表現し,図 1 に .

(12)    1 cd ef*l*m Z[  3 cd ef*l*m Z[  e#f* 56 gh cdji*k 1&OP $% ('*)  3 OP $% ('*)  .#"$% ('*)  1&OPQSR  3 OPQSR . o_p. (. :int) ( (. (). ( (. ( ( ( :int) :int). D EJKLNM $&% ]\^ 1&OPQSR  3 OPQSR  .#"T*U  1&OP T*U  3 OP T*U  1*2&VWXSY Z*[  34 VWXSY Z*[  1. & _ a`Nb LNM Z*c[ d 

(13) a   ef* 576 gh c7dji*k !#"$&% ('*)  (). :int). ( (. 1. ,+.-0/ 1*2 34 576 8*9 1. () () () (). *,+.- (). ?A@CB D   :.;=<&> 1..n. (). LBA の読み書きテープの概要 ボタン処理機械の読み書きテープの概要を以下に示す. • LBA の読み書きテープ内にあらかじめ,左から. 意味する. ボタン処理機械の読み書きテープの概略図を図 3 に. 1..n. GFIH D   3 $&% :.;=<E> 1 $&% :.;=<E>. :int) :int) :int) :int) :int). ( ( ( ( (. ( :int) (). (). (. /. %$'( ). • LBA の読み書きテープ内には,各ボタンが ON または,OFF であるかを記憶する.テープ上の -i は OFF であることを,i は ON であることを. 1. :int) :int) :int). 1. 1. (). &%'end/ (). り記号,下呼出ボタンの順に配置しておく. :int) :int). ().   . end/. !   . 上呼出ボタン,区切り記号,行き先ボタン,区切. (). 1..n-1. end/. $! #"   /  under/ equal/

(14)  *,+.- () /. notFound/. 図 2: ボタン処理機械の状態遷移図. エレベータ制御ソフトウェア全体を一つの状態遷移機械. n=.     01 2 3. notFound/. %$'/(). 状態遷移機械の概要. 示す..  #"   /  over/ equal/

(15)  %$'/() /.   . 示す.. () (). n=. 1. ) *  "! #$&% "! '( "! . :int) :int). 1&OP $% :!;=<E> 1. (). 3 O P $&% :.;n<E> 1. (). -1.  .

(16)  +,&-/. 01/2. . -n. A. -1. *# &% (54 3 67867: 9<;*=. . -n. B. -1. . -n. $. # (54 3 '(67

(17) *>%8 67: 9<;=. 図 1: エレベータ制御ソフトウェアのクラス図. 図 3: ボタン処理機械の読み書きテープの概略図. リフトは,移動の方向や現在階などの動作状況と使用者. 内部の状態遷移機械を LBA を用いて記述する.以下に. が押したボタンをもとに動作するので,入力されたボタ. 内部の状態遷移機械である上昇時ボタン検索,行き先追. ンを記憶する必要がある.この記憶はボタン処理機械で. 加について説明する.外呼出追加は行き先追加とほぼ同. 行う.ボタン処理機械は階層化され,親の状態遷移機械. 様に考えることができるので省略する.. を DFA,子となる状態遷移機械を LBA を用いて記述す. 上昇時ボタン検索. る.ボタン処理機械以外は DFA を用いて記述した.表. 上昇時ボタン検索は,外部からリフトの現在位置を受け. 2 に構成要素と状態遷移機械の名前とオートマトンの対. 取り,現在位置より一つ上の階の値がテープにあるか. 応を示す.. を検索する.読み書きヘッドの動作の概略を以下に示. 表 2: 構成要素と状態遷移機械の名前とオートマトンの対応     

(18) 4 5768# ,-  !   !  DFA   

(19) DFA 9 LBA  !   ! #"$ 

(20) DFA ,- %.&  %'&  DFA ( ) /10'2 ) DFA : )5;=< (> ) < (> ) ?@ ) DFA 3 * #+ * #+ DFA. す.仮想エレベータから受け取る値を a とし,返す値を. equal,notFound,over とする.over は現在階より上 の階の値があることを示す. 1. テープの中を左から見ていき,行き先ボタンか上 呼出ボタンのどちらかで a と同じ値が記憶されて いるかを検索する..

(21) 2. a を発見したら,テープの中の a と同じ階の値を 全て削除し,equal を返す. 3. a を発見できなかったら,a よりさらに上の階の. /. I. ON/ ON. X X,R / X=OFF. /. q0. /. /. X X,L / notFound (X=ON). X X,L / X (X=ON). 4. 発見したら over を返す. 5. 発見できなかったら,下呼出ボタンで a または a. /. I. I. 値を検索し直す.. 5

(22) .,6 75 5

(23) .,6 7 75 09 7 09;:: =?=?>> *< ..- *<   A@B  A@B A@B +@AB @B A@B  #*C  C  ,!,! --.. * */3/30101 22 @@BB 58

(24) #6  (7@)B@B 8 5

(25) 6 (*@ )B7 @B 7 Q& RT7 SVU. O&P. /. /. /. /. notFound/. q1.  #*+"?$

(26)  5

(27) 6 7 

(28)  G

(29) H E F M&N. より上の階の値を検索する.. ON/. /. q0. /. I. /. /. I. X X,R / (X=OFF). X OFF,L / end (X=ON). /. /. q1. ON/. ON/. end/. 外部から押されたボタンの値を受け取り,押されている. /. /. /. 行き先追加. K&L. ON/. end/. ,!-. */3012D

(30)   # () EF 8 

(31)  7  &. /. 6. 発見できなかったら,notFound を返す..   < .

(32) 

(33)   

(34)   

(35)

(36)       

(37)

(38)        !#"%$#  & ' ,+,+ -*-*.. ! #"/1%03$#24   & & ' '  (* )+/1 03 &24  ' & ' (*)+  & ' 58 5 66  7

(39) 7

(40)

(41)

(42)       8  7 7   & & ' '. ON/. q0. I. q1. X ON,L / end (X=a). IJ. X X,R / (X a). ことを記憶する.行き先追加の動作の概略を以下に示 す.追加するボタンの値を a とする. 1. テープの中を左から見ていき,a 階のボタンの情. 図 4: モード記憶機械の状態遷移図 +. 報を記憶する区画までへッドを動かす.. . 2. すでに a が記憶されていたときは,なにもしな いで終了する.記憶されていないときは OFF を ON に書き換え,終了する.. OFF. ,. %'&"(*).  . OFF. OFF.

(43)    .   "!  OFF. OFF. OFF.   . OFF. "! # $ -./10 2314. 3.2 携帯電話のモード制御部分のモデル化. 図 5: モード記憶機械の読み書きテープの概略図. 携帯電話のモード制御ソフトウェア全体を構成要素ごと. 図 4 に示されている,内部の状態遷移機械である検索の. に状態遷移機械で表現する.携帯電話は,あるモード中. 読み書きヘッドの動作の概略を以下に示す.追加・削除. に優先順位の高いモードのイベントが起こった場合,現. は省略する.. 在のモードを後から復帰させるために記憶する必要があ. 検索. る.モード記憶機械は 3.1 節のボタン処理機械と同様. 記憶したモードの中から優先順位が最も高いモードを検. に階層化する.本節では,ボタンが押されると同時に各. 索する.. モードに遷移する携帯電話を考える.以下に構成要素を. 1. テープの中を左から順に見ていき,ON になって. 示し,役割と状態遷移機械とオートマトンの対応を表 3. いるモードがないか検索する.. に示す. 表 3: 構成要素と役割と状態遷移機械とオートマトンの対応   

(44)  65+87 93:<;>=?  HJIKLMN OP MN Q

(45) " "R>  +VVWR>! X P R> 5

(46) J[!R1! B\ R>! 5+]!^

(47) 

(48) R>.   !"#$&%('*)+#

(49) ,.-/1032(4   -%(†/‘‡ ’V,1“(w.”!|+†0‡* 4 s(!y

(50) e%ˆ

(51) YpƒW‰Š

(52) ‹Œ3%(Ž3<%!, @A!B+C %(DEFG4  +V•5

(53) J[| BC ,(032

(54) y–“ HJI “+—#8˜e4 5

(55) <[| B+C , O Z&„VZ2U4 cdps(!y€3,.‚kƒt32(4 +"3,<S+T032U4  +VV,<S+T032U4 BC ,UY1Z2U4 5

(56) J[+lmUnpo

(57) ,<S+T!0>2U4 a>,iq1rs(t32(4

(58) uvxwwUy(z{| @A!B+C % B\ ,~}!32(4 Q  ?;J_`  @A!B+C %Uab

(59) cd#$e'*)+#Ufg ,ihkj64. ™š›œ ‘’   ¢¡£~ -/‘’ DFA †‡‘’ DFA ¤ LBA žŸ 9>:<;>=V?  DFA žŸ H<IKLMN DFA žŸ OP MN DFA Q " DFA žŸ R>. DFA. モード記憶機械の状態遷移図 モード記憶機械を階層化し,内部の状態遷移図に LBA を適用する.モード記憶機械の状態遷移図を図 4 に 示す.. LBA の読み書きテープの概要 モード記憶機械の読み書きテープの概要を以下に示す.. • LBA の読み書きテープ内にあらかじめ,左から 優先順位の高いモード順に配置しておく.. • LBA の読み書きテープ内には,各モードがON または,OFFであるかを記憶する.. 2. ON になっているモードを発見したらそのモード を返す.. 4 考察 本節では LBA 適用の妥当性,LBA を用いた組込みソ フトウェアのモデル化について考察する.. 4.1. LBA 適用の妥当性. 従来では,エレベータのスケジューリングの部分まで, 状態遷移機械で表現されていなかった.厳密に定義さ れていなく,あいまいさがあった.我々はエレベータの スケジューリングに記述能力の高い LBA を用いること で,あいまいさのない記述が可能となった. 最 初 に 我 々 は エ レ ベ ー タ を DFA で 記 述 し よ う と 試 みた.DFA は押されたボタンを状態で記憶する必要 がある.エレベータの中ボタンの押される組合せの. Pn. = 階 数) で 表 す こ と が で き る .同 Pn−1 様に上 (下) 呼出ボタンの組合せ数は n−1 Ci と Pi=0 n 表せる.したがってボタンの組合せは i=0 n−1 Ci × ³P ´2 n−1 になり,状態数は膨大になる. i=0 n−1 Ci 数は. i=0 n Ci (n. モード記憶機械の読み書きテープの概略図を図 5 に. PDA を用いてエレベータのモデル化を試みた.記憶の. 示す.. 操作の仕方が後入れ先出しに限定される.記憶を自由.

(60) のスタックに記憶すればよい.これは PDA の定義に反. • 各リフトの位置を記憶するエレベータ群制御機械 エレベータ群制御機械は以下のような特性があるので,. する.. 外部の状態に依存した特性の組込みソフトウェアに分類. 本研究では LBA を適用することで状態数を減少させる. される. • 複数基のエレベータの個々の位置,リフトの方. に参照するためには,スタックから取り出した値を別. ことができ,状態遷移機械で記述することが可能になっ. 向を記憶し,その記憶を任意に参照する必要が. た.さらに階数の変更を行ってもテープの区画数を階数 分だけ用意すれば,状態遷移図は変わらない.. 4.2 LBA を用いた組込みソフトウェアのモデル化 入力の記憶を必要とする組込みソフトウェアに,我々の. ある.. • 呼出しボタンが押された時に複数基のエレベータ の中から適切なエレベータを動作させる必要が. 提案する LBA の適用手順を用いることで系統的な記述. ある. テープにあらかじめ記憶の必要がある入力の分だけ区画. が可能になると考える.以下に適用手順を示す.. を用意し,エレベータの ID・階・方向の配置を決める.. 1. 組込みソフトウェアを一つの状態遷移機械で記述. ID が A のエレベータが上向き 2 階にあり,ID が B の. すると複雑になるので,構成要素に分割しそれぞ. エレベータが下向き 3 から 2 階間にあるときのテープ. れを状態遷移機械で記述する.. の概略図を図 6 に示す. !  "! $A0%1"' 2(35)d4 *e,5ID.. 2. 記憶あり入力に LBA を適用する. 3. 記憶された入力記号列に対して検索,追加や削除 など複数の異なる動作を行わなくてはいけない. 構造を整理するために状態遷移機械を階層化す る.親の状態遷移機械を DFA で,内部の状態遷 移機械を LBA でモデル化する.. 6 ! 071823/4 !9:;!=<5>@? $A%'. ID B.    .

(61)   . 1. U D OFF OFF. 2. U D ON OFF. 3. U D OFF OFF. #$&%' ()+*-,/.. 5. 親の状態遷移機械と内部の状態遷移機械の状態遷. 1. U D OFF OFF. 2. U D OFF OFF. 3. U D OFF ON. 図 6: エレベータ群制御機械の読み書きテープの概略図. テープ内の配置を図 6 のように考えることで,複数基 のリフトの個々の現在階・方向を記憶することが可能と. 移図を記述する.. 6. 親の状態遷移機械が状態遷移機械間のイベント通. なった.LBA の適用手順にしたがってモデル化するこ とにより系統的に記述することが可能になった.. 信を行う. 外部の状態に依存した特性・入力に優先順位がある特性. 5 おわりに. を持つ組込みソフトウェアへの LBA の適用が有効であ. 本研究では LBA を用いてエレベータと携帯電話の組込. る.特性と具体例と LBA のテープの初期配置の対応を. みソフトウェアを系統的に記述することが可能であるこ. 表 4 に示す.  . とを確認できた.. 表 4: 特性と具体例と LBA のテープの初期配置の対応. . . ;=1&?>Q?@ H "X7ˆ‰ K L  uŠ vZ wX x${. . BC E ! 2 F 1F G *-HI 2FJ5K !MLN D #=@ PQ ? $A%S"!RA=T <5U > P $&%'Z[ DD W07 V 3182XZ6/3/Y O54=! ^ZON _ F N]` =\ ON Fab ^ ` ?c D U F H P $A%SR8\ D FK $A%'][. 4. テープにあらかじめ記憶の必要がある入力の分だ け区画を用意し,配置を決める.. . +& 4$5&7689: <;"='&?>@2ACBDFE?G$HI-"J1&?KL1MONP2QSRTU WOX &IKa"LYbFE7MG[ceZOd\1QI&7H9UY:]A+MOf7^`g$_$cIZhjikBl1MOm[nZ 

(62)   <V KL o Ap+a"b'&?q W KL1M?rs&4$5ept'n$Z <KL X?uvwx MOy1zIg uvwx{| U`}&$Me4 5&7~`€

(63) ‚9:$T[Z  "!$#%'&(*) +,  4$5ƒ X„ KL`&I †FMBD,QIH"U&+p+KL`& ONg  -.-/+01&(2)3 OFF MBD]E?‡[Z <KL&Ia"bFMcedQIHUYA+f7g$cIhjikBl1MOm[nZ o Ap+a"b'&?q W KL1M?rs&4$5ept'n$Z. 今後の課題は,本研究の方法を他の組み込みソフトウェ アに適用し,その有用性を検証することである.. LBA. エレベータ群制御機械ヘの LBA の適用. 謝辞 本研究を進めるにあたり,二年間御指導いただいた野呂 昌満教授,有益なアドバイスをいただいた張漢明助教 授,貴重な時間をさいて数多くのミーティングをして下 さった蜂巣吉成講師,大学院生の熊崎敦司さん,藤原泰 昌さん,森貴彦さん,後藤修平さんに深く感謝致します.. 複数基のエレベータを制御するエレベータ群制御機械を 考える.3.1 節のエレベータのモデル化では,一基のエ. 参考文献. レベータを考えた.エレベータを複数基動作させるとき. [1] A.サローマ,野崎昭弘,町田元,山田秀記,横森貴: 計算論とオートマトン理論, サイエンス社 (1988).. 全てのリフトの現在位置を覚えておく必要がある.エレ ベータ群制御ソフトウェアを考えるとき,以下の 2 つの 状態遷移機械に LBA を適用する必要があると考える.. • ボタンの入力を記憶しておくボタン処理機械. [2] 富田悦司,横森貴: オートマトン・言語理論, 森北 出版株式会社 (1992)..

(64)

参照

関連したドキュメント

2010年小委員会は、第9.4条(旧第9.3条)で適用される秘匿特権の決定に関する 拘束力のない追加ガイダンスを提供した(そして、

これはつまり十進法ではなく、一進法を用いて自然数を表記するということである。とは いえ数が大きくなると見にくくなるので、.. 0, 1,

(採択) 」と「先生が励ましの声をかけてくれなかった(削除) 」 )と判断した項目を削除すること で計 83

タップします。 6通知設定が「ON」になっ ているのを確認して「た めしに実行する」ボタン をタップします。.

被保険者証等の記号及び番号を記載すること。 なお、記号と番号の間にスペース「・」又は「-」を挿入すること。

脅威検出 悪意のある操作や不正な動作を継続的にモニタリングす る脅威検出サービスを導入しています。アカウント侵害の

これらの設備の正常な動作をさせるためには、機器相互間の干渉や電波などの障害に対す

利用している暖房機器について今冬の使用開始月と使用終了月(見込) 、今冬の使用日 数(見込)