slide - POSL

自律分散型道路交通システムを対象とした
ゴール指向要求分析手法 C-KAOS
九州工業大学大学院
○野村潤 成瀬龍人 外村慶二 鵜林尚靖
株式会社デンソー
司代尊裕 岩井明史
1/25
概要
研究内容
ITSを用いた予防安全のための要求分析
ITS(Intelligent Transport Systems)
渋滞、事故、環境問題を情報通信により解決
・ 車車間通信:車載システム同士の協調
・ 路車間通信:路上インフラと車載システムの協調
分割
分析の難しさ
信号無視防止
車線変更時衝突防止
・・・
・自律性:交通状況に応じて振る舞いが変わる
→発生する状況が多い
・分散性:様々なシステムが協調し合い事故を防止
→相互作用が多い
⇒網羅的な分析が難しい(複雑化、巨大化)
合成
提案手法 C-KAOS(Component-based KAOS)
・ 構成要素ごとにゴールモデル構築
・ シナリオベースに合成
⇒分析の容易化
2/25
目次
1.
分析モデル構築の問題
2.
C-KAOS
3.
記述例
4.
まとめと今後の問題
3/25
1.分析モデル構築の問題
4/25
KAOS
KAOS(Knowledge Acquisition in autOmated Specification)
・ある要求を階層的に分解してゆき、要求を達成するための要件を抽出する
・機能要件の抽出、トレードオフの明確化、形式検証に主に役立つ
Why
↓
KAOSを用いた理由
1. 機能要件、衝突、検証が狙い
2. 理解し易い
3. アクタを考えずに済む
What
・・・
↓
・・・
Who
ゴール
要件
エージェント
AND分解
OR分解
5/25
KAOSモデル構築の問題
ITS開発では以下を踏まえた分析が必要
自律性(自己適応)
・発生する状況
・振る舞いの変化
事故が起こっ
ていない
分散性
・相互作用
・トレードオフ
環境によって
進行方向に
依存関係が変化する
対物距離を適度
に保っている
障害物がない
前方車両との
車間が適切
運転手がよそ
見をしてない
距離が狭いときに
速度を上げない
車間を適度
に保っている
左右の車との
車間が適切
前方車両の速度に合わ
せて走行している
距離が広いときに
速度を落とさない
影響を与えるものが多い
交通規則を
守っている
停止線を守っ
ている
制限速度を
守っている
信号を守って
いる
表示色が伝
わっている
後方車両との
車間が適切
網羅的に表現することが困難
環境によって
信号機が物
に隠れていな
振る舞いが変化する
い
車線に沿って
走行している
信号機が設
置してある
信号機を運転
手が見ている
夜間ヘッド
イトを付けて
ランプを点灯
している
切替規則が
定義してある
ランプが壊れ
ていない
距離が適切なときに
速度を上げ下げしない
6/25
2.C-KAOS(Component-based KAOS)
7/25
C-KAOS
アプローチ
分割統治の考え方をKAOSに適用
・ステークホルダー毎にモデル作成
・シナリオベースにモデルを合成
⇒大きな問題領域をゴールモデルの
組み合わせで表現
ドライバーの
ゴール
事故を起こさ
ない
道路上の情報をド
ライバーへ伝える
KAOSを拡張
・属性の付加
・合成規則の定義
情報をドライ
バーへ伝える
目的地に着く
その他
ドライバーの意思
を他の車に伝える
道路上の情
報を得る
information
分析ステップ
停止線の存
停止線の
在を知らせる
ゴール
1. シナリオの作成
2. ステークホルダーの抽出
3. ステークホルダー毎のモデル作成
車の存在を知
停止線の存
る
在を送信する
4. モデルの合成
操作命令に
従う
車のゴール
information
表示色を車に
伝える
表示中の色を
知る
車の存在を知
る
信号の
ゴール
情報を送信す
る
8/25
分析ステップ
1. シナリオの作成
2. ステークホルダーの抽出
3. ステークホルダー毎のモデル作成
4. モデルの合成
1.シナリオの作成
ステークホルダーの定義
「問題領域内で振る舞いを起こすもの
また、振る舞いに制約を与えるもの」
シナリオ)赤信号時に車両を交差点内に進入させない
※依存関係は組み合わせで表現する
⇒関係を含まないように切り分ける
2.ステークホルダーの抽出
9/25
分析ステップ
1. シナリオの作成
2. ステークホルダーの抽出
3. ステークホルダー毎のモデル作成
4. モデルの合成
信号の色を守
らせる
表示色を車に
伝える
表示に従わない車
に操作支援を行う
ステークホルダー毎のモデル作成
・他のステークホルダーの要求を含まない
例)車両はゴール「信号を守る」を持たない
信号機の「信号を守らせる」というゴール
表示に沿わない行動をとろ
うとしている車に警告する
事故を起こさ
ない
道路上の情報をド
ライバーへ伝える
⇒複数の視点を含まないようにモデルを作成
操作命令に
従う
ドライバーの意思
を他の車に伝える
10/25
信号の色を守
らせる
表示色を車に
伝える
表示中の色を
知る
車の存在を知
る
情報を送信す
る
-V : sense, send
-O : state, object, message, command
-C : internal, external
-P : information
-T : 影響範囲に入った
-V : sense, send
-O : state, object, message
-C : internal, external
-V : sense
-O : state
-C : internal
-V : sense
-O : object
-C : external
-V : VERB(動作)
-O : OBJECT(動作の対象)
-C : COMPLEMENT(対象の説明)
-V : send
-O : message
-C : external
分析ステップ
1. シナリオの作成
2. ステークホルダーの抽出
3. ステークホルダー毎のモデル作成
4. モデルの合成
ゴールへの属性の付加
動作、対象、説明を抽象化したもの
例)車の存在を知る
→V:sense, O:object, C:external
⇒ゴールモデルの合成に用いる
リンクへの属性の付加
アクティブになる条件と状態名を付加
例)車両が信号機の影響範囲に入ったとき
信号機があることを伝える
→P:information, T:影響範囲に入った
⇒環境に応じた要求の変化を表現
種類
V : sense, send, output, receive, know, act
O : message, state, object, command,
C : internal, external,
-P : PHASE(ACTIVEになる状況名)
-T : TRIGGER(ACTIVEになる条件)
11/25
P : information, warning, operation
分析ステップ
1. シナリオの作成
2. ステークホルダーの抽出
3. ステークホルダー毎のモデル作成
4. モデルの合成
目的地に着く
上位
事故を起こさ
ない
下位
道路上の情報をド
ライバーへ伝える
その他
事故を起こさ
ない
1.
2.
ドライバーの意思
を他の車に伝える
名称による合成
属性による合成
操作命令に
従う
名称による合成
・ 同じ名称のゴールを一つにまとめる
⇒属性を付加し辛いゴールの合成に利用
目的地に着く
事故を起こさ
ない
道路上の情報をド
ライバーへ伝える
ドライバーの意思
を他の車に伝える
その他
操作命令に
従う
12/25
-V : receive, output
-O : message
-C : external
-V : receive
-O : message
-C : external
-V : output
-O : message
-C : external
-V : sense, send
-O : state, object, message
-C : internal, external
-V : sense
-O : state
-C : internal
-V : sense
-O : object
-C : external
分析ステップ
1. シナリオの作成
2. ステークホルダーの抽出
3. ステークホルダー毎のモデル作成
4. モデルの合成
1.
2.
-V : send
-O : message
-C : external
属性による合成
-V : receive, output
-O : message
-C : external
-V : receive
-O : message
-C : external
名称による合成
属性による合成
・send属性の親ゴールを
receive属性のゴールと繋ぐ
(条件:対象O、説明Cが等しい)
-V : output
-O : message
-C : external
-V : sense, send
-O : state, object, message
-C : internal, external
-V : sense
-O : state
-C : internal
-V : sense
-O : object
-C : external
-V : send
-O : message
-C : external
13/25
3.記述例
14/25
例題:信号無視防止
表示を守らせ
る
停止線を
越えさせない
シナリオの説明
赤信号時に車両を交差点内に進入させない
ステークホルダ
ドライバー、車、信号、停止線
各ステークホルダのトップゴール
ドライバー:目的地へ着く
車:事故を起こさない
信号:車に信号を守らせる
停止線:停止線より前に車を停車させる
止まらない!
自動ブレーキ
接近したけど
止まる気配がない
「止まりなさい」
環境に応じて変化するゴール
まだ遠いけど
交差点との距離が大きいとき⇒情報提供フェーズ
影響範囲内
交差点との距離が小さく、速度が大きいとき⇒警報フェーズ
「信号あります」
交差点直前で、停車していないとき⇒操作支援フェーズ
情報提供フェーズ
警報フェーズ
事故を起こさな
い
操作支援フェーズ
15/25
ドライバーと車両のゴールモデルの合成
ドライバーの
ゴール
目的地に着く
事故を起こさ
ない
その他
名称による合成
車のゴール
事故を起こさ
ない
道路上の情報をド
ライバーへ伝える
情報をドライ
バーへ伝える
道路上の情
報を得る
ドライバーの意思
を他の車に伝える
意思表示機能の
状態を把握する
他の車が分
かる
操作命令に
従う
他の車へ知ら
せる
操作命令を
実行する
操作命令を受
け取る
16/25
車両と信号機のゴールモデルの合成
事故を起こさな
い
道路上の情報をド
ライバーへ伝える
-V : receive
-O : message
-C : external
-V : receive
-O : command
操作命令に
-C : external
従う
ドライバーの意思
を他の車に伝える
意思表示機能の
状態を把握する
道路上の情
報を得る
情報をドライ
バーへ伝える
車のゴール
他の車が分
かる
他の車へ知ら
せる
操作命令を
実行する
操作命令を受
け取る
属性による合成
send-receive
信号の色を守
らせる
information
信号の
ゴール
operation
表示色を車に
伝える
warning
表示に従わない車
に操作命令を送る
-V : send
-O : command
-C : external
表示に沿わない行動をとろ
うとしている車に警告する
表示中の色を
知る
-V : send
車の存在を知
-O : messageる
-C : external
表示に沿わない行動をと
ろうとしていることを知る
情報を送信す
る
表示中の色を
知る
-V : send
-O : message
表示に従わない
-C : external 表示中の色を
ことを判断する
知る
車の存在を知
る
情報を送信す
る
車の存在を知
る
操作命令を送
信する
17/25
合成結果(情報提供フェーズ)
ドライバーの
ゴール
目的地に着く
事故を起こさ
ない
道路上の情報をド
ライバーへ伝える
information
停止線の
ゴール
車の存在を知
る
ドライバーの意思
を他の車に伝える
道路上の情
報を得る
情報をドライ
バーへ伝える
まだ遠いけど
影響範囲内
「信号あります」
その他
車のゴール
information
表示色を車に
伝える
停止線の存
在を知らせる
停止線の存
在を送信する
操作命令に
従う
表示中の色を
知る
車の存在を知
る
信号の
ゴール
情報を送信す
る
18/25
合成結果(操作支援フェーズ)
ドライバーの
ゴール
目的地に着く
事故を起こさ
ない
止まらない!
自動ブレーキ
道路上の情報をド
ライバーへ伝える
ドライバーの意思
を他の車に伝える
停止線の
ゴール
車の存在を知
る
操作命令を
実行する
operation
表示に従わない車
に操作命令を送る
止まれない場合に操
作命令を送る
止まれないこ
とを知る
車のゴール
操作命令に
従う
操作命令を受
け取る
operation
その他
操作命令を送
信する
表示に従わない
ことを判断する
表示中の色を
知る
信号の
ゴール
車の存在を知
る
操作命令を送
信する
19/25
4.まとめと今後の問題
20/25
6.まとめと今後の問題
•
まとめ
– KAOSに対して、属性の付加、合成規則の定義を行うことで
分割統治を可能にし、大きな問題領域の分析を容易化
•
今後の課題
– 手法の洗練
• 現状
– 細分化の指標がない
– 合成規則=send-receiveのみ
• 今後
– 記述例を増やす
» ゴール、細分化規則、合成規則の洗い出し
– 形式化(時相論理式)
» 仕様充足の検証
» 合成規則に適用
21/25
今後の課題(1/3)
• 属人性の緩和
– ゴールの記述 : 多少の言葉の差異は、概念辞書を利用した置換で吸収できる
– 細分化の方針 : パターンの作成(パターンの正当性は論理検証)
停止不可能な車両
を操作支援
止まれない場合に操
作命令を送る
車の存在を知
る
止まれないこ
とを知る
操作命令を送
信する
車両をセンシ
ング
停止可能性
の計算
メッセージを
送る
概念辞書を用いた抽象化
C-KAOS語群に置換
属性値の付加
アーキテクチャの生成
Formalなゴールモデルの生成
(道路交通システムに特化=「正しさ」が議論できる)
22/25
今後の課題(2/3)
• 属人性の緩和
– ゴールの記述 : 多少の言葉の差異は、概念辞書を利用した置換で吸収できる
– 細分化の方針 : パターンの作成(パターンの正当性は論理検証)
現状の
パターン
運転支援
外部情報取得
制約付加
内部情報発信
自動操作
情報提供
C→◇M
操作命令
制約付加型
(信号機や停止線)
運転支援型
(自動車)
Formal
refinement
patterns
警報
C→◇T
C→◇T
M→◇T
Milestone-driven refinement
C∧D→◇T
C→◇D
C→CWT
Case-driven refinement
23/25
今後の課題(3/3)
現状:組み合わせの順番が不可変
⇒構成要素のゴールモデルを木構造で記述することに問題があるのでは・・・
構成要素の
ゴールモデル
構成要素の
ゴールモデル
ネットワーク状に
記述
仕様として
組み合わせを与える
構成要素の
ゴールモデル
親に応じて
動的に木構造へ
24/25
ご清聴ありがとうございました
ご意見・ご質問などをお願い致します
25/25