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

状態遷移図の段階的構築のための論理的基盤

N/A
N/A
Protected

Academic year: 2022

シェア "状態遷移図の段階的構築のための論理的基盤"

Copied!
8
0
0

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

全文

(1)

Vol.0 No.0 情報処理学会論文誌 1959

状態遷移図の段階的構築のための論理的基盤

青 木 利 晃

y;yy

片 山 卓 也

y

本稿では,証明された正しい事実から,正しい状態遷移図を段階的に構築する手法と,それを扱う ための論理的基盤を提案する.また,簡単な例をもとに,その利点と問題点について議論する.

Foundations for Stepwise Construction of State Transition Mo dels

Toshiaki Aoki y;yy

and Takuya Katayama y

Inthispap er,weprop osefoundationstostepwiseconstructcorrectstatetransitionmo d-

elsfrompre-provedfacts. Then, wediscusstheiradvantagesandproblemsbasedonsimple

examples.

1. は じ め に

オブジェクト指向分析モデルは,属性やメソッド な どの概念を含んでいるため,本質的に,無限の状態を 含んでいる.その検証アプローチとしては,大きく分 けて,2種類ある.1つ目は,対象となるモデルを抽 象化などにより有限空間に押えて,モデル検査等の自 動検証を適用するものである.2つ目は,無限状態を 述語論理を用いて直接的に記述し,定理証明システム を用いて対話的に検証を行う.

我々は,後者のアプローチにより,オブジェクト指 向分析モデルの検証法8),14),および,定理証明システ ムHOL4)を用いた検証支援法12),13)を提案してきた.

このアプローチの問題点の1つは,その検証コストが 大きいことである.対話的な検証では,述語論理の推 論規則を,自然数やリストといったデータ型に関する 定理や定義に適用することにより,目的の事実を導く.

そのため,どの推論規則をどの定理/定義に適用すれ ば良いか迷うことが多く,また,対話的な操作による 時間的コストも大きい.

この問題を解決するため,我々は,ADA(Assertion

Driven Approach) とい う手法を提案している.

ADAは2つの活動,(1)領域ライブラリの構築,(2) 正しいモデルの段階的構築,により構成される.

(1)領域ライブラリの構築: 同一の領域に属するシス

y北陸先端科学技術大学院大学

JapanAdvancedInstituteofScienceandTechnology

yy科学技術振興事業団 さきがけ研究21

PRESTO,JapanScienceandTechnologyCorp oration

テムの開発では,用いる語彙が同じ場合が多い.オブ ジェクト指向分析モデルでは,語彙はユーティリティ クラス(データ型)として表現できる.そこで,対象領 域に出現する語彙や概念をクラス図により整理し,そ れらに関する正しい事実を定理として蓄積する.これ を,本手法では,領域ライブラリと呼ぶことにする.

特定のシステムの分析モデル作成の際,領域ライブラ リに蓄積されたデータ型や定理を用いることにより,

証明を再利用することができる.

(2)正しいモデルの段階的構築: 検証で行う対話的 推論は,原理的に,モデル構築と同様のものである.

我々が提案した検証手法では,構築したモデルの検証 は,それを構築する際曖昧に考えていたことを,形式 化し証明することに対応していた.ADAでは,モデ ル構築を行う際,(1)で蓄積された事実を用いて,その 正しさを保証しながら構築を行う.これにより,モデ ル構築の早期に誤りを発見/修正することができ,結 果的に,バックトラックコストを低く押えることが可 能になる.

(1)は,定理証明システムにおける抽象データ型に 関する扱いを拡張することにより扱うことができるこ とがわかった.そこで,本稿では,(2)について,そ の論理的基盤の提案と考察を行う.本稿の構成は次の とおりである.2節では,状態遷移図と領域ライブラ リを形式的に定義する.3節では,領域ライブラリに 蓄積されている正しい事実から,状態遷移図を段階的 に構築する手法を示す.4節では,提案した手法を簡 単な事例に適用して考察を行い,問題点と今後の課題 を明らかにする.

IPSJ SIG Technical Report

2003/7/17

−21−

(2)

2. 状態遷移図と領域ライブラリ

我々が対象としているオブジェクト指向分析モデル は,クラスとステートチャート図により構成される.

クラス毎に1つのステートチャート図が割り当てられ ており,そのクラスから実体化されるオブジェクトの 振舞を記述する.よって,状態遷移図の集合が,この ようなモデルの本質である.以下では,状態遷移図の 集合の段階的構築に焦点を当てる.

2.1 状態遷移図の概要

本研究では,図1のような状態遷移図を対象とする.

この図では,2つの状態遷移図が定義されており,イ ベントを用いて協調動作している.

個々の状態遷移は,ラベルe[cond]=e0actionを持つ.

ここで,eは入力イベント,e0は出力イベント,cond は遷移条件,actionはアクションを表現している.遷 移の前状態において,イベントeを受け取り,condが 成立しているならば,actionを実行して,イベントe0 を出力することを意味する.アクションは属性評価と 属性への代入を表現する式,遷移条件は真偽値を返す 属性評価と論理演算子により構成される式である.そ れぞれ,アクション式,遷移条件式と呼ぶことにする.

状態とイベントは属性に関する表明を持つ.状態の 表明は,その状態で,イベントの表明は,そのイベン トが発生する時に,成立する性質を表現している.図

1では,状態S1は表明0n<100を持っている.こ れは,その状態では,常に,属性nの値は0以上100 未満であるべきということを表現している.また,イ ベントl ogは表明0 l og :v 100を持つ.これは,

イベントlogの属性vは,常に,0以上100未満であ るべきということを表現している.

以上の表明は,成立すべき性質を書き留めておくも のである.属性の計算法や状態遷移図により規定され た振舞により,それが成立しない場合もありうる.状 態とイベントの表明が,任意の状態遷移図の振舞で,

常に,成立する時,その状態遷移図は正しい,と呼ぶ ことにする.

2.2 状態遷移図の意味論

以上で説明した状態遷移図とその意味を形式的に定 義する.

定義2.1 システム

複数の状態遷移図から構成されるシステムを,以下の

Sy stemにより定義する.

$ H>Q @ORJY Q QORJY Q

UHVHWORJY Q ORJY H>Q@ORJY

Q QORJY Q

$ Q

Q +ÿ ≤Q

$ ORJY OLVW ORJY OLVW

∀[∈OLVW≤[≤

OLVW >@

fa®z ¨k

ORJ

≤ORJY≤

1 状態遷移図

System=(Atr;STS;E;AssnE)

whereAtr:属性識別子の集合,

STS :状態遷移図の集合,

E:イベント識別子の集合,

AssnE:E!Pr ed(Atr )

ここで,Pr ed(Atr )Atrの属性を自由変数とする述 語論理式である

.また,入力/出力イベントが無いこ とを表現する特別なイベントをで表現し,2Eで あるものとする.

STSの要素である状態遷移図は,以下で定義される.

定義2.2 状態遷移図

(Atr;S;C ;A;T;t0;s0;s01;a0;Assn)

where

Atr:属性識別子の集合,S:状態識別子の集合,

C:遷移条件式の集合,A:アクション式の集合,

T S2E2E2C2A2S,

t02T;s02S;s012S;a02A;

Assn:S!Pr ed(Atr );Assn(s01)=Tr ue;

t

0

=(s

01

;;;Tr ue;a

0

;s

0 );

以上の定義で,s0は初期状態を表現している.初期 状態では,属性に初期値が設定されているものとする.

初期設定はアクションa0で行われる.また,その他 の状態遷移によるアクションと初期設定のためのアク ションを同様に扱うため,初期化前の状態を表現する

s01と,初期設定アクションを実行する状態遷移t0を 導入した.

次に,属性が持つ値を表現するために,属性の環境 を定義する.

定義2.3 属性環境

システムの属性が持つ値は,以下の領域と値域を持つ 関数により表現する.

:Atr

1

81118Atr

n

8Atr!Value

述語論理式なので,属性を表現する自由変数の他に,述語変数 も使うことができる

(3)

ここで,Atr1;111;AtrnSTSの要素である状態遷 移図の属性集合であり,AtrSy stemの属性集合で

ある.Val ueは,属性が持つことができる値の集合で

ある.

個々の状態遷移と表明の関係を表現 するために , 表明付き状態遷移という概念を導入する.一般形は

fAge=e 0

fBgfPg[c]afQgである.e;e0;c;aは,それ ぞれ,入力イベント,出力イベント,遷移条件,アク ションである.A;B;P ;Qは表明である.遷移前に,

入力イベントに関してA,状態においてPが成立して いた時,この状態遷移が発火すると,遷移後に出力イ ベントに関してB,状態に関してQが成立すること を表現している.

表明付き状態遷移が正しいことは,状態遷移に関す る最弱事前条件(weakest pre-conditions)

1)を用 いて定義する.個々の状態遷移は,遷移条件が成立す れば,アクション,すなわち,属性評価と属性への代 入,を行うので,基本的に,ループ無しの手続き型言 語と等価である.手続き型言語の最弱事前条件は,す でに,良く知られているため,本稿では,それらにつ いては証明しない.

定理2.1 状態遷移の最弱事前条件

状態遷移e[c]=e0 aの イベントe0に関する事後条件

B,状 態 に 関 する 事後 条 件 Q の 最 弱事 前 条 件 を

w p(e[c]=e 0

a;B;Q)と書く.アクションaが,a1 :=

t1;111;an:=tnである時,w p(e[c]=e0a;B;Q)は以下 である.ただし,t1

;111;t

nは属性へのメソッド 適用を 行う式である.

w p(e[c]=e 0

a;B;Q)=

c)((B^Q)[t

1

=a

1 ]111[t

n

=a

n ])

定義2.4 表明付き状態遷移の正しさ

表明付き状態遷移at=fAge=e0fB gfPg[c]afQgが 正しい(valid)時,j=atと書き,以下で定義する.

j=fAge=e 0

fBgfPg[c]afQg,

<j=8:[[A]]^[[B]])[[wp(e[c]=e 0

a;B ;Q)]]

ここで,[[X]]は,Xに出現するすべての属性識別子

aを (a)に,メソッド をそれが表現する実際の関数 に置き換えた式を表現している.<は属性が持つ値や メソッド を表現する関数の理論を表現している.この ように,表明付き状態遷移の正しさは,値や関数の世 界を用いて定義される.以下では,表明の記述とその ような世界を区別する必要が無いかいぎり[[]]を省略 する.

最後に,状態遷移図とシステムの正しさの定義を与

える.

定義2.5 状態遷移図の正しさ 状態遷移図ST =(Atr;S;C;A;T;t0

;s

0

;s

01

;a

0

;Assn)

が正しい時,j=STと書き,以下で定義する.

j=ST, 8(s1;e;e 0

;c;a;s2)2T:

j=fAssnE(e)ge=e 0

fAssnE(e 0

)g

fAssn(s1)g[c]afAssn(s2)g

定義2.6 システムの正しさ

システムSy stem=(Atr;STS;E;AssnE)が正しい 時,j=Sy stemと書き,以下のように定義する.

j=Sy stem,8ST 2STS:j=ST

2.3 領域ライブラリ

領域ライブラリは,データ型とそれに関する定理の 集合である.図2に,汎用カウンタの領域ライブラリ の例を示す.クラスCounterがデータ型を表現してい る.メソッドincdecにより,カウンタのインクリ メント,および,デクリメントを行い,<>などの メソッド によりカウンタの値の検査を行う.カウンタ の値は属性numberにより表現されており,内部に隠 蔽されている.このようなクラスのことを,データ型 クラスと呼ぶことにし,スレテオタイプhhD ataty p eii

で表現する.データ型クラスは抽象データ型と見なす ことができ,定理証明システムHOLにも,それを扱 うためのメカニズムがある.また,オブジェクト指向 特有の,オブジェクトの状態,継承などの概念も,そ のメカニズムを少し拡張すれば取扱可能である.

クラスCounter (データ型)から実体化されるオブ ジェクト()の性質は,ステレオタイプhhPr oper ty ii

を持つ2つのクラスLTE(c)GTE(c)により定義さ れている.これらのクラスからはオブジェクトは実体 化されず,成立する性質,すなわち,定理のみを定義 している.このようなクラスを性質クラスと呼ぶこと にする.性質クラスでは,特定の用途に使われる定理 群をまとめる.個々の定理は,データ型の内部属性は 直接は操作しないため,そのインターフェースである メソッド の適用に関して記述することになる.これは,

イベント通信を含まない表明付き状態遷移に対応して いる.性質クラスには,このような表明付き状態遷移 の集合を定義することにする.

定義2.7 イベント無し表明付き状態遷移 アクションa,遷移条件cから構成されるイベント通 信を含まない表明付き状態遷移を,fPg[c]afQgと記 述する.ここで,Pは事前条件,Qは事後条件である.

この表明付き状態遷移が正しい時,j=fPg[c]afQgと 書き,以下により定義する.

(4)

Counter <<Datatype>>

number new inc dec =, <, >, ≤, ≥

âªfa®z c 1fa®zU ÞN"D1oò

c1fa®zU ÞN"D1oò {True}[n=c−1]n:=n.inc(){n=c}

{True}[n<c−1]n:=n.inc(){n<c}

{True}[n<c]n:=n.inc(){n≤c}

{n≤c}n:=n.dec(){n<c}

LTE(c) <<Property>>

n:Counter

{True}[n=c+1]n:=n.dec(){n=c}

{True}[c+1<n]n:=n.dec(){c<n}

{True}[c<n]n:=n.dec(){c≤n}

{c≤n}n:=n.inc() {c<n}

GTE(c) <<Property>>

n:Counter

2 領域ライブラリ

j=fPg[c]afQg,<j=8:[[P]])[[wp([c]a;Q)]]

最弱事前条件w p([c]a;Q)は,アクションaが,a1:=

t

1

;111;a

n :=t

nである時,以下である.

w p([c]a;Q)=c)(Q[t

1

=a

1 ]111[t

n

=a

n ])

領域ライブラリは,正しいイベント無し表明付き状 態遷移の集合により定義する.

定義2.8 領域ライブラリ

領域ライブラリD O Mを,以下により定義する.

D O MPow (ffPg[c]afQgj

j=fPg[c]afQg;c:条件式;a:アクション式;

P ;Q:データ型クラスのオブジェクトに関する述語g)2では,クラスLTE(c)とクラスGTE(c)におい て,それぞれ,c以下のカウンタ,c以上のカウンタ を実現するための正しいイベント無し表明付き状態遷 移群が書かれている.

3. 状態遷移図の段階的構築

3.1 状態遷移の追加

ADAにおける状態遷移図の段階的構築では,正しい 状態遷移図に,領域ライブラリに蓄積されている正しい 表明付き状態遷移を追加することにより,次の段階の正 しい状態遷移図を作成する.図3にその概要を示す.左 上のSy stemの状態遷移図STiの状態sr cからdstに 正しい表明付き状態遷移fEge=ffFgfPg[c]afQgを追 加する場合である.まず,a)E;F ;P ;QAssnE(e),

AssnE(f),Assn(sr c),Assn(dst)が,それぞれ,同 じになるよう調整する.そして,b)sr cからdstに状 態遷移を追加する.

a) に お い て 表 明 の 調 整 を 行 う際 ,表 明 を 変 更 し た と し て も ,そ れ ぞ れ の 正 し さ は 保 存 さ れ な け れ ば な ら な い .す な わ ち ,以 下 条 件 を 満 た す

VUF GVW 67 L

$VVQVUF $VVQGVW

H I

6\VWHP

$VVQ(H $VVQ(I H>F@I D

3 4

VUF GVW 67 L ’

3 ’ 4 ’

H I

6\VWHP’

( ’ ) ’

H>F@I D

3’

4 ’ ( ’ ) ’

H I

67 L ’

3 ’ 4 ’

H I

6\VWHP’

( ’ ) ’ VUF GVW

H>F@I D

, -

( )

H I

3 状態遷移図の段階的構築法

表 明 E0;F0;P0;Q0を 見 付 け る 必 要 が あ る .た だ し ,Sy stem = (Atr;STS;E;AssnE)STi

=

(Atr

i

;S

i

;C

i

;A

i

;T

i

; t

0i

;s

0i

;;s

01i

;a

0i

;Assn

i ) であ る.

(1) j=fE 0

ge=ffF 0

gfP 0

g[c]afQ 0

g

(2) j=(Atr;STS[ST 0

i

=STi];AssnE 0

)

whereAssnE 0

=AssnE](e;E 0

)](f;F 0

);

ST 0

i

=(Atr

i

;S

i

;C

i

;A

i

;T

i

;t

0i

;s

0i

;s

01i

;a

0i

;Assn 0

i );

Assn 0

i

=Assni](sr c;P 0

)](dst;Q 0

)

A](a;b)は,関数Aの値域の値aからの写像を,a からbの写像で上書きすることを表現している.

(1)は,表明付き状態遷移の表明を調整したとして も,その正しさは保たれなければならないことを表現 している.(2)は,状態遷移図において状態遷移を接 続する状態の表明を調整したとしても,状態遷移図の 正しさは保たれなければならないことを表現している.

3.2 正しさの保存

3.2.1 表明付き状態遷移の正しさの保存

表 明 付 き 状 態 遷 移 fEge=ffFgfPg[c]afQg を ,

(5)

fE 0

ge=ffF 0

gfP 0

g[c]afQ 0

gに変更する場合,遷移条 件cやアクションaの内容に立ち入るべきではない.

ADAでは,個々の表明付き状態遷移の正しさを領域 ライブラリ作成時に証明する.そして,個々の状態遷 移図作成時において,その証明を再利用することを狙 いとしている.そのため,表明を変更する際,遷移条 件やアクションに関する証明をやり直すことは避ける べきである.

以上の方針から,j=fEge=ffFgfPg[c]afQg111(1) を前提にして,j=fE0ge=ffF0gfP0g[c]afQ0g111(2) であるようなE0;F0;P0;Q0を求めることになる.

(1)と(2)は,表明付き状態遷移の定義を用いる と,それぞれ,E^P )w p(e=f [c]a;F ;Q)111(3)

E 0

^F 0

)w p(e=f [c]a;F 0

;Q 0

)111(4)である.遷移 条件やアクションに立ち入らないとすると,(3)の左 辺と右辺を,それぞれ,強めたり弱めたりすることに より(4)を求めることになる.すなわち,以下の2つ の条件を満たすE0;F0;P0;Q0ならば(2)が成立する.

(i) E 0

^P 0

)E^P

(ii) w p(e=f [c]a;F ;Q))w p(e=f [c]a;F 0

;Q 0

)

(ii) は最弱事前条件の性質を用いて,F ^Q )

F 0

^Q 0

111(ii 0

)と簡略化できる.よって,(1)から,

(i)と(ii0)を満たすような,E0;F0;P0;Q0を見付ける ことにより,正しさを保存して(2)へと変更できる.

3.2.2 状態遷移図の正しさの保存

状態遷移図の表明を,その正しさを保存するように 変更するのは,表明付き状態遷移の場合ほど簡単では ない.図4の例を考える.ただし,問題を簡略化する ためイベントは省略してある.この例では,左側の状 態遷移図の状態s3から状態s1に,nの値を2減じる 状態遷移を追加する.この遷移を追加するためには,

状態s3の表明を0 n 100から2 n100に 変更しなければならない.この変更を行 うと,さら に,s2の表明も変更する必要がある.状態s2の表明

0 n <100は,s3への状態遷移後,s3の変更後の 表明を導くには弱すぎるためである.言い替えると,

0n<100)w p(n:=n+1;2n100)が成立 しないためである.よって,以上のようなs3の表明の 変更は,s2の表明を1n<100に変更することを要 求する.s1の表明に関しては,s2への状態遷移後,s2 の新たな表明を導くことができるので変更する必要が 無い.

4の例から分かるように,状態遷移図のある状態 の表明の変更は,他の状態の表明の変更を引き起こす 場合がある.このことを,表明の変更伝搬と呼ぶこと

Q 1 Q m

P 1

P n

R

...

...

Q 1 P 1

P n

R’

...

[b 1 ]a 1

[b n ]a n

[c 1 ]d 1 [c m ]d m

...

Q m [b 1 ]a 1 [b n ]a n

[c 1 ]d 1 [c m ]d m

5

5 3 6 6 2 5

5 3 6 6 2

7 7

5 表明変更の一般形

にする.表明の変更伝搬は,最悪の場合,それまで作 成してきたすべての状態遷移に関して表明の正しさを 再度考え直すことが必要になるため,なるべく避ける べきである.以下では,表明の変更伝搬を発生させな い仕組みについて考察を行う.

5は,状態遷移図のある状態の表明を変更する場 合の一般形である.小文字の記号は状態名を,大文字 の記号はそれぞれに対応する表明を表現している.こ こでも,問題を簡略化するためにイベントを扱わない が,それを含む場合も本質的には同様である.

左の状態遷移図の状態rの表明Rを,右の状態遷移 図のとおりR0に変更する場合を考える.左の状態遷 移図は変更する前のものなので,正しいと仮定する.

よって,以下の2つの事実が成立している.

81in:Pi)w p([bi]ai;R)111(5)

81im:R)w p([ci]di;Qi)111(6)

一方,右側の状態遷移図では,以下の2つの事実が 成立しなければならない.

81in:P

i

)w p([b

i ]a

i

;R 0

)111(7)

81im:R 0

)w p([ci]di;Qi)111(8)

(5)から(7)を導くためには,R)R0が,(6)から(8) を導くためにはR0)Rが成立していれば良い.よっ て,R,R0となり,他の状態の表明を変更せずにR を変更することができないことになる.

(5)と(7)は状態rへ入る状態遷移に,(6)(8)は 状態rから出て行く状態遷移に関するものである.よっ て,状態rへ入る状態遷移しか無い場合は,新たなR0R)R0が,状態rから出て行く状態遷移だけの場 合は,R0)Rが成立するR0に変更可能である.

まとめると,状態遷移図の状態rの表明Rを表明の 変更伝搬を発生させずに変更するためには,新たな表 明R0が以下の条件を満たしていれば良い.

(iii) 状態rへ入る遷移のみの時,R)R0

(iv ) 状態rから出て行く遷移のみの時,R0)R

(6)

0≤n<99 0≤n<100

8 8 8

n:=0 [n<98]

n:=n+1

[n<99]

n:=n+1 n:=n+1 0≤n≤100

n:=n+1 Q Q−

≤Q≤

≤Q

0≤n<99

1≤n<100

8 8 8

n:=0 [n<98]

n:=n+1

[n<99]

n:=n+1 n:=n+1

2≤n≤100 n:=n+1 Q Q−

û÷1A«`Ñ

JN A«` ÂA«`Ñ

4 表明の変更伝搬

(v ) 状態rから出る遷移,入る遷移がある時,R,

R 0

以上では,イベントを含まない状態遷移図について 議論してきたが,イベントに関しても同様である.イ ベントeの表明EE0に変更する時,E0が満たすべ き条件は以下である.

(v i) eが出力 イベントとしてのみ使用されている

時,E)E0

(v ii) eが入力イベントとしてのみ使用されている

時,E0)E

(v iii) eが入力イベント,及び,出力イベントとし

て使用されている時,E0)E

4. 例 と 考 察

4.1 段階的構築の例

2の領域ライブラリを用いて,イベントe+でイン クリメント,イベントe0でデクリメントされ,値が

0以上100以下になるカウンタの状態遷移図を作成し てみる.また,カウンタの値が変更された時,他の状 態遷移図がその変更を記録ものとする.

4.1.1 表明付き状態遷移の変形

まず,図2LTEc100に,GTEc0に 特化した定理群を用いる.この例では,0以上100以 下のカウンタを作成したいので,これらを合成する必 要がある.

例えば,0から100未満まで インクリメントして くループを作るために,クラスLTEfTr ueg[n<

99]n :=n:inc()fn < 100gとクラスGTEf0

ngn:=n:inc()f0<ngを組み合わせる必要がある.

最弱事前条件の性質と表明付き状態遷移の定義を用い れば,以下の手順で組み合わせることができる.

(1)fTr ueg[n<99]n:=n:inc()fn<100g^

f0ngn:=n:inc()f0<ng=

(2)fn<99gn:=n:inc()fn<100g^

f0ngn:=n:inc()f0<ng=

(3)f0n_n<99gn:=n:inc()f0<n<100g)

(4)f0n<99gn:=n:inc()f0<n<100g=

(5)f0ng[n<99]n:=n:inc()f0<n<100g

(1)から(2)では,遷移条件[n < 99]を事前条件 に移動している.(2)から(3)では,最弱事前条件 に関する性質と述語論理の事実を使っている.前者 は,任意のアクションaと事後条件P ;Qに対して

w p(a;P)^w p(q ;Q)=w p(a;P^Q)が成立する,後 者は,(P )R )^(Q )R) =(P _Q)R)が成 立というものである.(3)から(4)では,(P _Q)

R ))(P^Q)R )が成立するという事実を使って いる.最後に,(4)から(5)では,事前条件の一部を 遷移条件に移動させている.

また,以上のような合成だけでなく,追加や分解と いった変形も必要である.例えば,nの値を他の状態 遷移図で記録させる場合,(5)で作成した表明付き状 態遷移にイベントを送信するアクションを以下のよう に追加する必要がある.

fTr uege+=ef0<e:a<100g

f0ng[n<99]n:=n:inc();e:a:=nf0<n<100g

領域ライブラリに蓄積されている表明付き状態遷移 群は,対象システムの要件を満たすように変形するこ とになる.これは,分析活動の1つと見なすべきであ る.以上では,表明付き状態遷移の定義や最弱事前条 件の性質を使って変形を行ったが,これらは分析活動 に沿った変形規則(性質合成規則,イベント導入規則,

などのように)として定義すべきである.

(7)

∀∈ ≤

!

"

#

$ %

≤ ≤

6 段階的構築の例

4.1.2 状態遷移の追加

まず,初期アクションとして属性nにデータ型クラ

Counterの新規オブジェクトを代入し,初期状態を

作成する.そして,この初期状態から状態遷移と状態 を段階的に追加する.また,各々の段階で状態に割り 当てる表明は,0n100を導くようなものでなけ ればならない.常に,0以上100以下であるカウンタ を作りたいからである.

6に,2つの状態遷移図の段階的構築の各ステッ プを示した.

ステップ1: 初期化アクションn:=newCounter () と初期状態s1を導入する.図2には記述していないが,

newメソッド に関して,fTr uegn:=newCounter ()

fn=0gが成立する.よって,s1ではn=0が成立し ている.

ステップ2: 合成した(5)を用いて0から100未満 までインクリメントするループを作る.(5)の前状態 と後状態を状態s1に接続したいため,以下の3つの 条件を満たす表明PBを発見する.Pは,新たな,

状態s1の表明と(5)の状態に関する事前/事後条件に,

Bはイベントeの表明にするものである.

8

>

<

>

:

P)0n

0<n<100^0<e:a<100)P^B

n=0)P

これらは,3.2節で示した条件(i);(ii0);(iii)である.

0 n <100はPの,0<e:a<100Bの解であ る.そこで,ステップ2の状態s1の表明とイベントe

の表明をこれらそれぞれに変更して,状態遷移を追加 する.

ステップ2から5においても,同様に,状態遷移を 追加できる.ステップ5までで,e+e0から構成さ れ,値が0以上100以下になるような任意のイベント 列を受理する状態遷移図となった.そこで,次に,値 を記録する状態遷移図を作成する.ステップ6では,

新たな状態遷移図を追加している.ここでは,データ 記録のためのデータ型に関する領域ライブラリを用い ているが,その詳細は本稿では省略する.

4.2 考 察

以上のようにすれば,状態遷移の接続に関連する表 明を変更しながら,それを追加することにより,表明 の変更伝搬が発生させずに正しい状態遷移図を作成す ることができる.しかしながら,各ステップにおいて 変更する表明によっては,もはや状態遷移を追加でき ない状況に陥る場合がある.例えば,ステップ3にお いて,状態s2の表明を0n100とすると,ステッ プ4において,状態s2から状態s1への状態遷移を追 加できなくなってしまう.s1のn0以上という性質 を,デクリメントのアクション後,この表明から導け ないためである.これは,本質的に,表明の変更伝搬 と同様の問題である.このような問題が発生する原因 は,各状態の表明として,その状態で成立する一番強 い性質ではなく,それより弱いものを割り当てること ができるからである.

5について,再度,考察を行う.3.2.2節で示した 条件(iii);(iv);(v)は,いずれも,表明RR0に変更

(8)

したとしても状態遷移図の正しさが保存されるための 十分条件である.表明RR0に変更する際,他の表 明P1

111P

n

;Q

1

;111;Q

mがどのようなものであっても 構わなくするため,十分条件となっている.しかしな がら,十分条件であるがために,表明R0がこれらの 条件を満たしていなくても,状態遷移図が正しい場合 がある.つまり,正しさが保存されるのに,状態遷移 が追加できない状況が生じるのである.

次に,(iii);(iv );(v )が必要十分条件になる状況につ いて考える.図5の場合,以下の性質が成立していれ ば,これらの条件のいずれも,必要十分条件になる.

(81in:w p([bi]ai;R),Pi)^

(81im:w p([c

i ]d

i

;Q

i ),R )

この状況は,各々の状態に割り当てる表明が,その状 態で成立する最も強いものであることを意味している.

最も強い表明を,各々のステップで発見するのは非常 に難しい.将来どのような遷移を追加するか等も考慮 しなければならないからである.

よって,状態遷移が追加できない状況に陥った場合,

最小限の表明変更の伝搬を行うことが現実的である と考えている.関連する研究として,各状態における 不変表明の自動生成に関する研究がある5)7).これ らの手法の基礎はForwardPropagationとBackward

Propagationと呼ばれるものである.ForwardPropa-

gationでは,最強事後条件(strongestp ost-condition)

を用いて,偽(False)から出発し,各状態遷移の最強 事後条件の和(_)を求めていく.そして,その最小不 動点が,個々の状態で最も強い表明となる.Backward

Propagationでは,個々の状態の弱い表明から出発し,

それらと各状態遷移の最弱事前条件の積(^)を取るこ とにより,段階的に表明を強くしてく手法である.こ のような手法では,不動点の検査を行うことは一般に 決定不能問題であり,また,近似的に求めるにしても 大規模な状態遷移図ではその計算量が問題である.以 上の文献5)7)では,それらの様々な解決策が議論され ている.BackwardPropagationでは,各状態の弱い 表明を段階的に強くしていくため,同様の手法により 表明の変更伝搬を行うことが有効であると考えており,

現在,検討中である.

5. ま と め

本稿では,正しい状態遷移図を段階的に構築する手 法とその論理的基盤を提案した.本手法では,正しい 状態遷移図に,領域ライブラリに蓄積されている正し い表明付き状態遷移を追加することにより,次の段階

の正しい状態遷移図を作成する.また,簡単な例に適 用して,その問題点を明らかにした.今後の課題は,

第一に,表明付き状態遷移の変形規則の提案,第二に,

適切な表明の変更伝搬手法の提案である.

参 考 文 献

1) E.W.Dijkstra:A Discipline of Programming,

PrenticeHall,1976.

2) C.Morgan:Programming from Specications,

PrenticeHall,1990.

3) R-J.BackandJ.Wright:RenementCalculus

-ASystematicIntroduction,Springer,1998.

4) University of Cambridge Computer Lab ora-

tory: The HOL System Description, revised

edition,1991.

5) A.Tiwari, et.al.: A Technique for Invariant

Generation,ToolsandAlgorithmsfortheCon-

structionandAnalysisofSystems,2001.

6) N.Bjorner, A.Browne and Z.Manna: Auto-

maticGenerationofInvariantsandIntermedi-

ateAssertions,TheoreticalComputerScience,

1997.

7) S.Bensalem,Y.LakhnechandH.Saidi:Power-

ful Techniques for the Automatic Generation

of Invariants, Conference onComputer-Aided

Verication,1996.

8) T.Aoki,T.TateishiandT.Katayama:AnAx-

iomaticFormalizationofUMLMo dels,Practi-

calUML-Based Rigorous Development Meth-

o ds,pp.13-28,2001.

9) T.Aoki and T.Katayama: Prototype Execu-

tion of Indep endently Constructed Object-

Oriented Analysis Mo del, Automating the

Object-OrientedSoftwareDevelopmentMeth-

o ds,pp.25-33,2001.

10) T.Aoki,T.Katayama:UnicationandConsis-

tency Verication of Object-Oriented Analy-

sis Mo dels, Asia-Pacic Software Engineering

Conference'98,pp.296{303,1998

11) 青木利晃, 片山卓也: オブジェクト指向方法論 のための形式的モデル,日本ソフトウェア科学会 学会誌 コンピュータソフトウェアVol.16 No.1,

pp.12{32,1999.

12) 青木利晃,立石 孝彰,片山卓也:定理証明技術の オブジェクト指向分析への適用,日本ソフトウェア 科学会学会誌 コンピュータソフトウェア,Vol.18

No.4,pp.18{47,2001.

13) 青木利晃,片山卓也:オブジェクト指向分析モデ ルの検証支援環境,19回 日本ソフトウェア科 学会 全国大会論文集(CD-ROM),2002.

14) 立石孝彰,青木利晃,片山卓也:振舞い近似手法 を用いたステートチャートに対する不変性の検証,

情報処理学会論文誌446号,2003.

参照

関連したドキュメント

1) 境有紀 他:建物被害率の予測を目的とした地震動の 破壊力指標の提案、日本建築学会構造系論文集、第 555 号、pp.85-91、2002. al : Prediction of Damage to

そのような状況の中, Virtual Museum Project を推進してきた主要メンバーが中心となり,大学の 枠組みを超えた非文献資料のための機関横断的なリ ポジトリの構築を目指し,

[r]

これは基礎論的研究に端を発しつつ、計算機科学寄りの論理学の中で発展してきたもので ある。広義の構成主義者は、哲学思想や基礎論的な立場に縛られず、それどころかいわゆ

J-STAGE は、日本の学協会が発行する論文集やジャー ナルなどの国内外への情報発信のサポートを目的とした 事業で、平成

日林誌では、内閣府や学術会議の掲げるオープンサイエンスの推進に資するため、日林誌の論 文 PDF を公開している J-STAGE

 当図書室は、専門図書館として数学、応用数学、計算機科学、理論物理学の分野の文

社会学研究科は、社会学および社会心理学の先端的研究を推進するとともに、博士課