組込みシステムにおける 外部環境分析の提案

組込みシステムにおける
外部環境分析の提案
九州工業大学大学院 情報工学研究科 情報科学専攻
金川 太俊、瀬戸 敏喜、鵜林 尚靖
(株)東芝 ソフトウェア技術センター
鷲見 毅、平山 雅之
1
研究の背景
 様々な環境で動作する組込みシステムは、置かれ
た環境に応じて動作する必要があり、分析者はシ
ステムの動作環境で起こりうる異常動作を想定し
なければならない
システムの動作環境を分析する必要がある
 本研究では、外部環境の影響により発生する異常
動作を体系的に抽出する手法を提案する
2
組込みシステムが受ける外部環境からの影響
システム
ソフトウェア
ハードウェア
影響
アクチュエータ
観測/制御
対象
直接観測/制御
できない
オブジェクト
影響
新たに考慮されるオブジェクト
センサ
本研究では、センサとアクチュエータ
を用いて観測・制御を行い動作する
組込みシステムを対象としている
外部環境からの影響
• 制御対象に影響を与え、制御
結果を変化させる
• 観測対象そのものに影響を与える
観測/制御
対象
これらを考慮して、異常動作の
抽出を行う
3
ライントレーサによる具体例
コースアウトする例外
系シナリオを考える
コースアウト
ユースケース:走行する(右エッジをトレース)
《正常系シナリオ》
光センサにより、直下部の反射光を観測し光セン
サ値がライン上を示すならば右旋回、ライン外を示
すならば左旋回を行う
ユースケース:走行する(右エッジをトレース)
《例外系シナリオ》
思いつきに頼って要因を考えると、
必要の無いものまで考慮してしまう
?
コースアウトの要因は、ハード
ウェアの故障?風?照明?
フレーム問題
4
提案する手法の狙い
 システムに影響を及ぼすオブジェクトを抽出したい
が、思いつきで抽出していたらフレーム問題に陥る
→抽出の基準を定めなければならない
 システムの観測・制御対象に注目し、それらに影響
を与える外部環境内のオブジェクトを抽出する
→これらの集合をコンテキストと定義する
5
手法の位置づけ
本手法は、下図に示すように、要求分析終了後に使用されるよう位置づけられ
ている.従って、システムの動作仕様や、ハードウェア仕様などは要求分析によ
り既に明らかになっているものとする.
eUMLなどの既存の開発プロセスに組み込んで使用することが出来る
要求分析
本提案手法
設計
例外系シナリオ
実装
テスト
6
手法の概要
1.コンテキスト要素の抽出
2.コンテキストの状態分析
「観測対象」、「制御対象」、それらに影響
を与える「外部環境内のオブジェクト」を
抽出する
システムの動作はコンテキストの状態に
よって決まる.その状態は各コンテキスト
要素の状態を組み合わせたものである.
そこで、それらの状態遷移を明確にする
3.システムに対する制約の分析
コンテキスト要素が、システム内部でど
のように扱われているかを明確にし、そ
こから制約を導き出す
分析結果の活用
分析
4.例外系シナリオ作成
今までの結果を用いて、例外系シナリ
オを作成する
7
Ⅱ 分析結果の活用
ユースケース:走行する(右エッジをトレース)
正常系シナリオ
「直下部の反射光:強」ならば左旋回、「直下部の
反射光:弱」ならば右旋回
前提1 光センサ値>0x30⇒直下部の反射光:強
前提2 光センサ値<0x22⇒直下部の反射光:弱
前提3 環境光:弱
手法によって、環境光が「光量:弱」から「光
量:強」に状態遷移したときのシステムへの
影響も分析しているので、次のような例外
シナリオが作成できる
手法により新たに抽出
前提3を逸脱した場合:環境光:強
→直下部の反射光が影響を受け、直下部の反
射光:弱のときに直下部の反射光:強の処理を
行なってしまう.つまりライントレーサがライン
上にあるにもかかわらず、ライン外のときの処
理が行なわれる
8
抽出した例外系シナリオ
外乱による転倒
環境光によって直下部の
反射光の光量が変化する
分析者の思いつき
による抽出
ラインの勾配によりライン
トレーサの速度が変化す
る
ラインの曲率がライントレー
サの走行可能範囲を超え
る
分析時に抽出
テスト時に抽出
手法による抽出
ラインの曲率は走行可能範囲であっても
事前のステアリングの角度により転倒す
る
テストによる抽出
9
まとめ
手法適用による期待効果
 オブジェクト抽出の基準を定めるため、フレーム問題に陥る
ことが無い
 例外系シナリオ作成までのプロセスを提供する
今後の課題
 抽出にノウハウが必要である例外系シナリオに関しては、ノ
ウハウデータベースを蓄積しなければならない
10
コンテキスト要素の抽出
<<観測対象>>
<<制御対象>>
直下部の反射光
ステアリング方向
それぞれの保持している値に注目
方向[右|左]
光量[連続量]
その値を変化させるものを抽出
環境光
外部環境内オブジェクト
システム
ソフトウェア
ステアリング方向を制御
《制御対象》
ライントレーサのステアリング方向
値
外部環境
クラス図にまとめる
環境光 光量を変化させる
値
反射光を検知
《観測対象》
直下部の反射光
値
11
コンテキストの状態分析
環境光考慮前
環境光を考慮して遷移条件を見直す
No
ソフトウェアの遷移条件
1
直下部の反射光「光量:強」
∧ 環境光「光量:強」
2
直下部の反射光「光量:弱」
∧ 環境光「光量:強」
3
直下部の反射光「光量:強」
∧ 環境光「光量:弱」
4
直下部の反射光「光量:弱」
∧ 環境光「光量:弱」
1,2,3
4
環境光考慮後
12
システムに対する制約の分析
システムでの内部表現の明確化
コンテキスト要素
状態
対応ハードウェア
内部表現
制約
光センサ
センサ値
255段階表現
ステアリングモータ
左/右
なし
なし
なし
なし
光量:強
直下部の反射光
光量:弱
左
ステアリング方向
右
光量:強
環境光
光量:弱
システムがコンテキスト要素の状態をどのように把握しているかを明確にする
コンテキスト要素
直下部の反射光
システムによる状態の把握
光センサ値>0x30
⇒光量:強
光センサ値<0x22
⇒光量:弱
13
例外系シナリオ作成
ユースケース:走行する(右エッジをトレース)
正常系シナリオ
「直下部の反射光:強」ならば左旋回、「直下部の
反射光:弱」ならば右旋回
前提1 光センサ値>0x30⇒直下部の反射光:強
前提2 光センサ値<0x22⇒直下部の反射光:弱
前提3 環境光:弱
ユースケース記述に、
前提条件を追記
(正常系シナリオでは環境光からの強い影
響は無いものとしているので「弱」となる)
これらの前提を逸脱するケースを考える
「環境光:強」のときは?
直下部の反射光:強になり、システムは車体
がライン上にあろうとなかろうと左旋回を行う
14
質問、指摘された点
外部環境の定義
外部環境をモデリングしたとは言えないはず
状態分析の意義
無くてもいいのでは?
この手法を使えば本当に網羅できるのか?
15