3.3 ゴールモデル整形プロセス
3.3.5 Control loop の構築
充足性判定条件を満たす主要ゴールが同定されると,各主要ゴールに対してControl loopを 割り当てる.本ステップでは,各主要ゴールのサブゴールをControl loopの観点から整理・詳 細化することで,Control loop設計のための情報を抽出する.ゴールモデルの意味論に照らし 合わせると,各主要ゴールにControl loopを対応付け,Control loopに関連する状態群をサブ ゴールとして記述することは,Control loopの概念に基づいて主要ゴールを達成するというこ とを意味しており,また,Control loopが主要ゴールとして記述されたゴールの達成に対す る責務を持つことを意味している.本研究では,このサブゴールの抽出,つまり主要ゴール
におけるControl loopに関するアクティビティの抽出のために,ゴール記述パターンである
Control loopパターンを導入する.
Control loopパターン
本研究で導入するControl loopパターンを図3.10に示す.Control loopパターンはツリー 構造で表現され,Control loopのアクティビティに対応する3種類のゴールタイプをツリー 上に明示的に記述するものである.Control loopパターンの根には主要ゴールが対応付けら れ,Control loopのアクティビティにおけるAnalyzeとDecideの責務を割り当てる(Analyze
& Decideタイプゴールとして同定する).Analyze & Decideタイプゴールのサブゴールは
CollectタイプとActタイプに分類される.入力変数の扱いに関するゴールはCollectタイプ
に該当し,振舞いによる状態達成を表現したゴールはActタイプに分類される.
図3.11の上図はControl loopパターンの一例を形式的に記述したものである.ここで,P,
Qはそれぞれ,主要ゴールに対する事前条件,主要ゴールがいずれ満たすべき状態を,Rj は Q( =Rm)を満たすために達成しなければならない状態(マイルストーン)を表す.また,Mi
は入力変数が取り得る値に対応する状態であり,Sjiは状態Miにおけるシステムの振舞いで ある.3は将来のいずれかの時点で真となることを,2は今後常に真であることを表わす時相 論理演算子である.Control loopパターンの根に該当するゴールは先に述べたとおりAnalyze
<<goal>>
Analyze & Decide AND- refinement
goal
subgoal
<<goal>>
Collect
subgoal
1..* 1..*
<<Entity>>
ධຊኚᩘ
Concerns :Monitor 1..*
1
⌧≧䛾ศᯒ䞉䜰䜽䝅䝵䞁 䛾㑅ᢥ
ሗ㞟 䜰䜽䝅䝵䞁䛻䜘䜛≧ែ㑄⛣
<<goal>>
Act
<<goal>>
䝃䝤䝂䞊䝹 0..*
subgoal
subgoal
0..*
subgoal
<<goal>>
䝃䝤䝂䞊䝹
subgoal OR-
refinement
<<goal>>
Conditional Act 0, 1
2..*
0..*
subgoal
<<Entity>>
᧯సኚᩘ
Concerns :Manipulate 0..*
<<Entity>>
ไᚚኚᩘ
Concerns :Control 0..*
図3.10.Control loopパターン
& Decideタイプに該当し,“P ⇒ 3Q” は,主要ゴールの達成を意味している.サブゴール
のうち,入力変数に関与し,入力変数の現在の値が同定されていることを表現するゴールは Collectタイプに該当し,“2(M1∨. . .∨Mn)”で示される.一方,Actタイプのゴールは,入 力変数の値と現在の目標達成状態,選択された振舞いによって次の状態に遷移することを表す ゴール“Rj∧(∨i=1...n(Mi∧Sj+1i))⇒3Rj+1”により表現することができる*1.
本ステップでは,Control loopパターンの根のゴールに各主要ゴールを対応付け,Control loopパターンのゴール分割に従って,主要ゴールのサブゴールをリファクタリング,つまり整 理する.図3.11の下図は,Control loopパターンにおける各ゴールの役割をControl loopの各 アクティビティに対応付けて示したものである.まず,主要ゴールは,Control loopにおける
分析(Analyze)と決定(Decide)の責務を持ち,現状の分析と次に取るべきアクションの選
択や,アクションの制御の役割を担う.
ここで,Control loopを構築する場合,Control loopが扱うプロセス変数も明確化する必要
がある.2章で述べたとおり,Control loopには,Control loopへの入力情報となる入力変数,
*1ここで,0≤j≤mとなるmが存在し,R0=P,Rm=Qである.
Pэ䕻Q
PҍM1ҍS11 э䕻R1 䕕(M1Ҏ…ҎMn)
PҍMnҍS1n э䕻R1 Pҍ(Ҏ(MiҍS1i))
э䕻R1
Collect
Analyze & Decide
䠄
Conditional Act䠅
… ධຊኚᩘ
Concerns
Act
…
Act
R1ҍ(Ҏ(MiҍS2i)) э䕻R2 䠖Monitor
⿕ไᚚኚᩘ
Concerns 䠖Control
᧯సኚᩘ
Concerns 䠖Manipulate
i=1..n i=1..n
⌧≧䛾ศᯒ䞉 䜰䜽䝅䝵䞁䛾㑅ᢥ
䜰䜽䝅䝵䞁䠍䛻䜘䜛
୰㛫≧ែ䜈䛾฿㐩
ሗ㞟
䜰䜽䝅䝵䞁䠍’䛻䜘䜛
୰㛫≧ែ䜈䛾฿㐩 䜰䜽䝅䝵䞁䠍(or 䠍’)䛻 䜘䜛୰㛫≧ែ䜈䛾฿㐩
Collect
Analyze & Decide
䠄
Conditional Act䠅
… ධຊኚᩘ
Concerns
Act
…
Act
䜰䜽䝅䝵䞁䠎䛻䜘䜛୰
㛫≧ែ䜈䛾฿㐩 䠖Monitor
⿕ไᚚኚᩘ
Concerns 䠖Control
᧯సኚᩘ
Concerns 䠖Manipulate
図3.11.Control loopパターンの一例(上図:形式的記述,下図:各ゴールの役割)
Control loopの制御対象となる制御変数,Control loopが変更(操作)可能な操作変数の3種
類のプロセス変数が存在する.既に述べたように,Analyze & Decideタイプゴールは2種類 のサブゴールにより詳細化されるが,情報収集の責務を持つCollectタイプゴールは,現在の 状態を同定することが可能なエンティティである入力変数と関連付けられる.もう一方の,ア クション実行による状態遷移を責務として持つActタイプゴールは,必要に応じて,決定結果 からアクションを制御するために与えられる操作変数と,主要ゴール達成のために変更可能で ある制御変数を表現するエンティティに関連付けられる.このように,Control loopパターン に従ったゴール整形においては,プロセス変数を同定しながら,Control loopの各アクティビ ティに該当するゴールを明確化する.
ここで,Control loopの各アクティビティとゴールタイプとの対応関係の妥当性について
議論する.まず,CollectとActは環境に関与するアクティビティであるのに対し,Analyze,
Decideはシステム内部で閉じたアクティビティである.また,Analyze, Decideがゴールモデ
ル上で状態としての明示的な表現が難しいアクティビティであるのに対して,Collect, Actが 明示的に示されていれば,Control loopの明示的な役割を同定することができると考えられる.
従って,CollectタイプとActタイプのゴールを集約,つまりサブゴールとして持つゴールに
Control loopを割り当てることと,加えて,同ゴールがCollect,Actタイプゴールの達成状態
を利用するゴールであることから,同ゴールにAnalyzeとDecideの役割を割り当てることは 妥当であると考えられる.また,プロセスコントロールモデルにおける制御部と処理部の役割 を考えると,AnalyzeとDecideは制御部の役割となり,システム上では同一コンポーネント として実装される場合も多い.この設計モデルとの対応関係の観点からも,AnalyzeとDecide の役割を同一ゴールに割り当てることは妥当であると考えられる.
Collectタイプの決定
Control loopパターンの適用にあたっては,まず,主要ゴールがAnalyze & Decideタイプに 該当することから,主要ゴールのサブゴールとしてCollectタイプを同定するところから始め る.ここで,Collectを実現,つまりCollectタイプのゴールを達成するためには,入力変数が 必要になる.入力変数とはControl loopに対しての入力となる情報であり,Control loopに割 り当てられるゴールを達成,あるいはゴールの達成を判断するために収集する必要のある情報 である.従って,ゴールモデル上においては,まず,入力変数がエンティティとして定義され ている必要がある.もし入力変数が定義されていなければ,新たに入力変数をゴールモデル上 に定義する.
次に,入力変数を収集するゴールが既に主要ゴールのサブゴールとして記述されているか どうかを確認し,もし記述されていなければサブゴールとして新たに定義する.最後に,こ のサブゴール,つまりCollect タイプのゴールと入力変数との間に Concerns関係を定義す
る.KAOSのConcerns関係は,単にゴールとエンティティとの関係を定義するに過ぎない
ため,本研究では,どのような関係であるかを分類可能な属性情報をConcerns関係に付与す
る.表3.1はConcerns関係を詳細化するラベルの一覧である.Collectゴールと入力変数間の
Concerns関係に対しては,:Monitorのラベルを付与する.
Example 5 —図3.12は,図3.9で示した清掃ロボットのゴールモデルに対して,主要ゴー ル「個々のごみを清掃することができる」に対応するControl loopのCollectタイプの決定過 程を示したものである.図3.9においては,同主要ゴールを詳細化したゴール群にCollectタ イプに該当するゴールと入力変数は存在しない.この主要ゴールを達成するためには,ごみの 清掃手段を決定するために「ごみの形状」と,清掃の成否を判断するために「清掃結果」に関す る情報が必要であると考えられる.従って,ここでは,入力変数として「ごみの形状」と「清
表3.1.Concerns関係詳細化ラベル
ラベル ゴールタイプ エンティティ Concerns関係の意味付け
:Monitor Collect 入力変数 入力変数の値を決定する情報収集
:Manipulate Act 操作変数 操作変数の変更に関与するアクション
:Control Act 制御変数 実行結果により,制御変数を変更させる可能性
のあるアクション
ಶ䚻䛾䛤䜏䜢Ύᤲ䛩 䜛䛣䛸䛜䛷䛝䜛
䛤䜏Ύᤲ䛻ᚲ せ䛺ሗ䛜
㞟䛥䜜䛶䛔䜛
㐺ษ䛺ᡭẁ䛷䛤䜏 䜢Ύᤲ䛷䛝䜛 䛤䜏䛾ሙᡤ䛻
฿㐩䛩䜛䛣䛸 䛜䛷䛝䜛
྾ᘬ䛻䜘䜚 䛤䜏䜢Ύᤲ䛩 䜛䛣䛸䛜䛷䛝䜛
ᣢ䛱ୖ䛢䜛䛣䛸 䛷䛤䜏䜢Ύᤲ䛩 䜛䛣䛸䛜䛷䛝䜛
Analyze & Decide
䛤䜏䛾ᙧ≧
Concerns
Ύᤲ⤖ᯝ Concerns
Collect
ධຊኚᩘ
䠖Monitor 䠖Monitor
྾ᘬ䝴䝙䝑䝖 Concerns
䝻䝪䝑䝖䜰䞊䝮 Concerns
図3.12.Colletタイプ,入力変数の追加
掃結果」を表現するエンティティを追加し,これらを収集するためのゴール「ごみ清掃に必要 な情報が収集されている」をCollectタイプのゴールとして追加する.さらにこれらの入力変
数とCollectタイプゴールを,:Monitorラベルの付与されたConcerns関係で関連付ける.
図3.13は,図3.9で示した清掃ロボットのゴールモデルに対して,すべてのControl loopの
Collectタイプ決定後のゴールモデルである.主要ゴール「バッテリーを管理することができ
る」に対しては,「バッテリー残量」がゴール達成の判断に必要な入力情報となり,主要ゴー ル「目標物に到達することができる」については,「現在地の座標」と「目標物の座標」に関 する情報が,目標物へ到達するために必要であると考えられる.これらはいずれもすでにエン ティティとして記述されているため,ここでは既に定義されている各ゴール–エンティティ間
のConcerns関係に対して,:Monitorラベルを付与する.
Actタイプの決定
Collectタイプのゴールと入力変数が同定されると,次に,状態変化を実現するアクション
を同定する.これらはゴールモデル上ではアクション実行による状態遷移を責務とするActタ イプゴールとして表現される.もし,複数の振舞いによりActタイプゴールが達成できる場