...

基調講演】 『車載ソフトウェアの品質を考える

by user

on
Category: Documents
20

views

Report

Comments

Transcript

基調講演】 『車載ソフトウェアの品質を考える
1.車載ソフトウェアに求められる品質とは
車載ソフトウェアの品質を考える
2.開発段階で考えることができる範囲
3.検証技術の可能性
2011年5月20日
平山雅之
4.開発における基本動作と技術の限界
Masayuki HIRAYAMA
1.
Masayuki HIRAYAMA
車載ソフトウェアに求められる品質とは
走行コンテキスト vs. 自動車
走行コンテキスト
ドライバー
走行状況
基本機能
走る +
止まる
+
曲がる
+ ?
--- 速度
車間距離
制御可能な要素
エンジントルク
エンジン回転数
走行経路 --- 直線/カーブ
登り勾配/下り勾配
ブレーキ制動力
路面状況 --- ドライ / ウェット
ステアリング回転角
ステアリングアシスト力
ドライバー
操作
自動車
エンジン
制御
ブレーキ
制御
ステアリング
制御
無数の組み合わせ
走行コンテキスト
Masayuki HIRAYAMA
自動車の挙動
走行コンテキストに自動車の挙動が
合致しているか
Masayuki HIRAYAMA
ドライバーの意図/感覚に
自動車の挙動が
合致しているか
ソフトウェア・システムの品質視点
ISO/IEC9126
Software Engineering
- Product Quality
直接的なソフトウェア品質
作る側の視点
・機能性 ・信頼性
・効率性 ・機能性
・保守性 ・移植性
全ての品質視点をカバーする
⇒ どのよう
どのような方法を用いるか?
ような方法を用いるか?
品質を確認する
前提:彼(彼女)との距離・間柄----
ISO/IEC9241
Guidance on Uasbility
“愛情”
利用者視点の品質
・ユーザビリティ
ISO/IEC15504
Information technology
-- Process assessment
開発作業の品質
定式化が難しい -- 定式化できないものの「質」
を論じるのも難しい
前提:システムの置かれた(利用される)状況
どうやって“表わす” ?
どうやって“計る”
?
そもそもどの程度だったら ?
そもそも不具合があったら?
IEC61508
Functional safety of electrical/electronic/programmable
electronic safety-related systems
システムの安全性に関する視点
・機能安全
Masayuki HIRAYAMA
どうやって“表わす” ?
どうやって“計る”
?
そもそもどれくらいだったら ?
そもそも偽りだったら?
Masayuki HIRAYAMA
ソフトウェアを定式化(=表現)するということ
前提
システムの置かれた状況
利用される状況
1.車載ソフトウェアに求められる品質とは
機能的側面
⇒機能実現のからくり
⇒処理のアルゴリズム
2.開発段階で考えることができる範囲
非機能的側面
⇒ 性能
⇒ ユーザビリティ
3.検証技術の可能性
4.開発における基本動作と技術の限界
開発プロセス側面
⇒ 直接作業(要求分析~実装)
V&V作業(検証、テスト)
間接作業(管理)
Masayuki HIRAYAMA
Masayuki HIRAYAMA
全てを予め
考えることができるか
決めることができるか
表現することができるか
ソフトウェアの定式化 -- 全てを予め考え表現する
飛行船を所定の位置で
ホバリングさせる
周囲の気流
-水平方向/垂直方向
⇒ 飛行船形状の影響
飛行船の空間位置の影響
想定外を想定する?
豪雨・豪雪
花粉・黄砂
放射能
単純事象の想定
乗員の重量バランス
強風-向かい風・横風
ダウンバースト
飛行船自身がもつ慣性力
飛行船の浮力
⇒ 周囲の気温
事象複合の想定
路面
物理法則 / 流体力学
などの支配法則
-制御条件、パラメータとして
モデルに表現することは可能
-情報処理分野の知識だけでは
考えられない/決められない世界
穴があいている
鋲・釘が散乱している
部分凍結している
粘着性液体が覆っている
枝や葉が散っている
カエルが群がっている
より深刻な結果へ
4輪パンク
ブレーキ系統故障
エンジンストール
Masayuki HIRAYAMA
Masayuki HIRAYAMA
ソフトウェアの定式化 – 全体と部分
システム内動作の競合
※ 様々な指令を用いて特殊な機能を実現
システムとしての自動車
個々のECU
それぞれの挙動/サービス
それぞれの構造・構成
VICS
(例)地震管制、火災管制…
※ 指令間
指令間には優先度
には優先度があり、それによって
優先度があり、それによって機能の優先関係表現
があり、それによって機能の優先関係表現
vs.
ETC
ECU
ブレーキ制御
エンジン制御
系としての
システム全体の挙動/
サービス
システム全体の構造・構成
ステアリング制御
エアコン制御
システム全体を
どのようにして定式化するか
どのようにして見通すか
パーキング運転
乗りかごを駐留させる
・駐留させる階
=パーキング階
火災発生時、乗りかごを
避難階へ動かす
【主動作対象指令】
《優先度》
優先度》
【競合対象指令】
スタート禁止指令
>
避難階移動指令
駐留中に出される指令
Masayuki HIRAYAMA
火災管制運転
Masayuki HIRAYAMA
避難階移動中に出される指令
動作タイミング競合の特定
システム全体像の把握とエラー処理
※ 対象とする指令が同時に出される状態を特定
パーキング
スイッチONかつ
パーキング階以外
または移動中/
携帯電話: 大規模化(約700万LOC程度)
火災管制
スイッチONかつ
スイッチ かつ
避難階以外
または移動中/
パーキング階
移動運転中
set
スイッチONかつ
パーキング階
かつ停止中/
パーキング階
停止中
パーキング階
移動指令
パーキング階
かつ停止中/
一旦戸開完了/
スイッチONかつ
避難階
かつ停止中/ 避難階
かつ停止中/
パーキング階
駐留中
set
set
一旦戸開指令
スタート禁止
指令
避難階
停止中
Sub1:
音声通話
避難階
移動運転中
set
避難階
移動指令
避難階
待機中
一旦戸開完了/
set
set
一旦戸開指令
スタート禁止
指令
スイッチOFF/
Sub4:
カメラ
Sub2:
メール
Sub3:
ブラウザ
システム全体像の整理
システム全体像の整理
機能ユニットの整理と優先順位付け
機能ユニットの整理と優先順位付け
Sub5:
ユーティリティ
サブシステム分割図
カメラ
Air
2つのCPU
HMI
にどのように機能を
振り分けるか
モータ
Sub1:
音声通話
Sub2:
メール
Sub3:
ブラウザ
Sub4:
カメラ
Sub5:
ユーティリティ
システム機能による
スイッチOFF/
メモリ
Masayuki HIRAYAMA
Masayuki HIRAYAMA
周辺デバイスなどとのIF
並行動作整理&エラーハンドリング
各機能サービス間の
並行動作や割り込み関係な
どをマトリクス状に整理
1.車載ソフトウェアに求められる品質とは
2.開発段階で考えることができる範囲
機能サービスごとに
異常動作時のエラー
ハンドリングのレベルを
検討する
3.検証技術の可能性
4.開発における基本動作と技術の限界
Masayuki HIRAYAMA
Masayuki HIRAYAMA
リソース競合
検証の網羅性
検証技術とは
設計や実装の「正しさ」を確認する
⇒「正しさ」の判断基準はどこにある?
設計者の意図通りの
設計内容になっているか
システム
設計内容
設計通りの挙動を
実現しているか
ドライバーの意図通りの
挙動をするか
設計者
設計者の意図通りの
挙動をするか
システム
挙動
ドライバー
搭乗者
目視によるトレース(レビュー)
特定条件を設定して動作確認(テスト)
論理パスを網羅的に
トレース(モデル検査)
Masayuki HIRAYAMA
Masayuki HIRAYAMA
適用結果
モデル検査は万能か
システム動作記述
対象:CDプレーヤ
(トレーユニット)
/*mtype =
{TEJECTED, NTEJECTED, ON, OFF, PLAY, PAUSE, FORWARD, REWIND,
STOP}*/
#define p (count == 0);
byte count = 0;
mtype = {eject, power, play, pause, forward, rewind, stop};
chan c = [0] of {mtype};
active proctype switch(){
/*電源オフ状態*/
S_OFF:
if
:: c?power -> /*パワーボタンが押されたら:電源オン状態でかつストップ状態*/
printf("電源オン¥n");
goto S_ON
/*それ以外は、自己遷移*/
:: c?eject -> goto S_OFF
:: c?play -> goto S_OFF
:: c?pause -> goto S_OFF
:: c?forward -> goto S_OFF
:: c?rewind -> goto S_OFF
:: c?stop -> goto S_OFF
Promela記述
Promella記述:約
記述:約300行
行
記述:約
検証システム
(SPIN)
により動作検証
•
fi;
/*電源オン状態*/
S_ON:
if
:: c?power -> /*パワーボタンが押されたら:電源オフ状態*/
count ++;
printf("電源オフ¥n");
count --;
goto S_OFF
Masayuki HIRAYAMA
•
Masayuki HIRAYAMA
どのような状況でも特定の状態に到達するか?
– S_ONへ行かない場合がある。
– S_OFF状態で電源ボタン以外のボタンが
押され続ける。
特定のボタンが押されると期待する状態に到達するか?
– 「電源ON・停止・トレー排出状態で再生ボタンが
押されると、いつかは再生状態に行く」が成立しない。
モデリングとは
モデル検査の作業の流れと問題点
ソフトウェア仕様
モデル
システムなどを特定の視点から
象的に整理した像
問題点3
問題点0
状態モデル(仕様)
モデル
/ プログラム実装
検査モデル
検査モデル
検査モデル
作成
影し、
制御のビュー
状態遷移のビュー
ユーザビリティのビュー etc.
モデル検査
ツール
仕様修 正
特定のビューについての検証
だけでは不 分
問題点2
検査条件
反例
<>(p && q)
#define p p_state == RUN
#define q s_state == WAIT
システムを 象的に整理する
⇒結構難しい
システムの
不具合解析
りうる“状態”とは ?
問題点1
状態モデルに問題あり
⇒“反例” として検査条件を たさないシ
ステムの動作シークンスの一例を出力
Masayuki HIRAYAMA
仕様・設計の
性排
SoC技術
技術
との 合
SystemC
SpecC
UMLによるモデリング
UML profile for Real Time Systems
組込みソフトウェア
LSI,マイコン etc
SECでのトライアルの場合
でのトライアルの場合
者:3
(開発経
フェーズ
アプリクーシュン, OS
ハードウェア
Masayuki HIRAYAMA
モデル検査適用に関する考 点
組込みシステムのモデリング
組込みシステム
モデルを考えながら整理するだけでも
仕様の
性検討としては 効
は5年前 )
IST
(3日間)
•プログラミング経
プログラミング経
•状態遷移の考え方を理解
状態遷移の考え方を理解
していることが
外部
センサ
アクチュエータ
UMLのハードspecへの利用
この部分のモデリング
が 題
Point-1: ソフトウェアのモデリング
Point-2: ハード&ソフト&外部
の接点を 確化
Point-3: 信頼性/安全性を実現する信頼性保証
信頼性 安全性を実現する信頼性保証 法の
Masayuki HIRAYAMA
トライアル
フェーズ
対象システムの状態図整
Promela記述作成
SPINによる検証
Promelaは対象システムの設計モデルのすべてを記述するには
は対象システムの設計モデルのすべてを記述するには
記述能力が い。
⇒ モデル検査で える部分は、設計の一部。
ハードウェアとのインタラクシュンの部分などは い
検証のためのモデル(検証モデル)を作成しなければならない
⇒検証したい部分の特定。
検証可能なように
化。
検証したい性質が り えるよう 形や め込み。
Masayuki HIRAYAMA
ソフトウェア・テストの 題と 用法
ソフトウェア・テスト
ソフトウェア・テスト
様々な動作コンテキストの中で
特定の状況における特定のデータに
動作のストップシュット確認
した
非正常動作
想定外状況下での挙動
テスト
の構
⇒ シミュレータ利用
テストのみを 重するのは
Masayuki HIRAYAMA
仕様 /安全 の重要な個所・機能を
重点的にテスト
テストクースの設計
テスト再現確認
テスト=動作ストップシュット
↓
テストログの記 と再現
Masayuki HIRAYAMA
Fault Tree Analysis
異常動作パターンの 出方法
システムにとって ましくない事象の
論理ツリーによって
開
を
Fatal Trouble
車が停止できない
+
適 な制動力が
られない
+
ブレーキ中にタイヤロック
デビエーシュン
分析
+
できない
一 に正常系動作
設計情報
対象システムの動作仕様 中
UML, 状態遷移図 など
準 Ⅱ)
マスタシリンダが動作しない
力が
されない
力を
大規模ソフトウェア
⇒ 全ての論理パスをテストするのは不可能
全ての時間をテストするのは不可能
設計
実装
テストでは
りのあることは確認できても
システムが正しいことは証 できない
(準 Ⅰ)
テスト
仕様
力が られない
FunctionFailure
+
各動作の 目での
正常系動作からの逳
正常系動作からの逳 クースを検討
クースを検討
遃 の
の不具合事例に
不具合事例に
する状況を
する状況を い出し
異常動作の い出し ミスユースクース分析
ブレーキヘダルが
っ かり動かない
かり動かない
ヘダル 力を検知できない
力を検知できない
み込み速度が検知できない
み込み角度が検知できない
Masayuki HIRAYAMA
設計レビュー
設計レビュー / テストなどで
重点的に確認
重点的に確認
Software
Errors
Masayuki HIRAYAMA
o
の限界
情報の
象度
モデル(仕様)
テスト仕様
High
1.車載ソフトウェアに求められる品質とは
2.開発段階で考えることができる範囲
Generate
設計
3.検証技術の可能性
Create
4.開発における基本動作と技術の限界
ソフトウェア
設計
Low
実装
Masayuki HIRAYAMA
Masayuki HIRAYAMA
モデルを 用した品質向
程の内容
検証の特
要求分析
アーキテクチメ設計 実装(設計)
整理
仕様定
方式検討
基本構造定
品フゟミリー定
ユースクースの
検証技術
安全性 信頼性向 のための 法
用 シトリオベース
実装技術(プラットフェー
ムや
)
の
な設計
正確性
性
網羅性
レビュー
プロトタイヒング
レビュー
シミュレーシュン
スコアリング
レビュー
シミュレーシュン
形式仕様
モデル検査
モデル検査
検証の正確さ
再利用
ツール化
レビュー
テスト
モデル検査
定理証
検証目的の さ
自動化
コスト
レビュー
適用コスト
検証の正確さ
効な形式
法
検証目的の
コスト
形式化の目的
理解の基
くり
仕様の 確化
との 通理解
シトリオでの確認
再利用の意識
実装技術を意識した確
認(タスク設計の
性 )
適用コスト
ツール化
自動化
再利用
Masayuki HIRAYAMA
Masayuki HIRAYAMA
2
さ
テスト
モデル検査
定理証
品質の作りこみ
レビュー
品質管理/向 の基本
テスト
テスト
要求分析
モデリング
&
モデル検査
Plan
Do
どの程度の品質
-不具合の検出目
-信頼性の度合い
どのような方法で実現するか
どのような指 で
するか
アーキテクチメ設計
どのドキュメントのどの部分をどのような
視点から重点的にレビューするか
どの部分をどのようにテストするか
どのような
で動作させる
どのようなテスト ースを確認する
モデル検査でどのような性質をチェック
するか
設計
o
確認した品質
正
実装
コード解析
コードレビュー
Masayuki HIRAYAMA
Masayuki HIRAYAMA
Check
の問題点を
設定した目
を達成しているか
どこに問題があるか
Fly UP