ISO/DIS26262とツール認定

[カテゴリー:ネタ集め中] 調査途中の、とりとめもない記事です。いずれきちんと整理された記事を書くかも分かりません。

自動車ECUを作成する際、ソフトウェアのツールを色々と使う事になります。これまでは好きなツールを使っても良かったのですが、ISO26262が法制化されてしまうと、好き勝手なツールを使う訳にはいかなくなります。きちんとツールを評価した上で、ツール認定レポートなど、いくつかのドキュメントを作成しなくてはいけません。

では、ツール認定レポートを書くにあたり、何をどうする必要があるのでしょうか?

ここでは、ツール認定についてISO/DIS26262-8を読んで勉強した事をまとめてみます。ただし、勉強中の上に独学です。ですから、「あちこち間違ってるんじゃないの?」と半信半疑(?)でご覧下さい。

ツール認定はなぜ必要か?

ISO/DIS26262-8のツール認定の章で気にしている事を一言でいうと、「ツールが誤動作したら、どうするのさ?」だと思います。

ツールが誤動作する事もある、という前提の元に、なんとか危険性をコントロールしないといけません。そのために、ツール認定というものを行うのだと理解しています。

ツール認定の流れ

ツール認定には、3つのパラメータがあります。1つは、TCL(Tool Confidence Level)、もう1つはASIL、そして最後に「ツール評価」です。

TCLとは、「ツールの誤動作のせいで、安全性要求に違反してしまう恐れ」のレベルです。

TCL1 危険なし
TCL2 ちょっと危険あり
TCL3 やや危険あり
TCL4 とても危険あり

というTCL1~TCL4の四段階に分かれます。 (「危険なし」「ちょっと危険あり」「やや危険あり」「とても危険あり」という言葉は、わかりやすいように私が造語しました。ISO/DIS26262-8の正式な表現ではありません)

ASILは、どれくらい重大な安全性要求なのか?です。ASIL D(とても重大)からASIL A(ちょっと重要)まで、4段階に分かれます。(「とても重大」「ちょっと重要」なども、私の造語です。ISO/DIS26262-8の正式な表現ではありません)

TCL1 × ASIL Aの組み合わせが、いちばん安全的に軽いです。一方、TCL4 × ASIL Dの組み合わせがいちばん安全的に重いです。

これらの重さに従って、「ツールの評価」を行います。たとえば、TCL1 × ASIL Aであれば、安全的に軽すぎてツールの評価は必要ありません。一方、TCL4 × ASIL Dであれば、かなり手厚いツール評価が必要になってきます。

TCLとASILに応じた「ツール評価」を行い、ツール認定レポートを作成する

このツール認定レポートによって、このツールは使っても大丈夫なように思われる!という事になれば、やっとそのツールを使う事が出来るようになります。

TCLを決めるには?

2つの切り口

TCLを決めるには、「ツールが誤動作したら、どうするのさ?」という疑問に対して、2つの切り口で分析をします。

1つ目は「ツールの誤動作のせいで、安全性要求に違反しそう?」、2つ目は「ツールの誤動作を予防もしくは検出できそう?」です。

構成

これらを理解するために、まずISO/DIS26262-8で想定されている(と私が感じた)ツール周り構成について整理します。

「ツール」と、「ツール出力をチェックするツール」が登場する

まずは、これから認定しようとしているツールについて着目します。たとえば、コンパイラだったとしましょう。すると、前工程からの入力=ソースコード、後工程への出力=バイナリコード になります。

もしもコンパイラの吐くバイナリコードが本当に正しいのか?が心配なのであれば、それをチェックするためのツールが必要になります。別のコンパイラを走らせて結果を比較するなり、バイナリコードを実行しておかしくないかチェックしたりします。

そんなわけで、「認定したいツール」と、「その出力をチェックするツール」の2つのツールが登場します。

問題が起きるまでの流れ

TCLを決めるために、なぜこの2つの切り口が用意されたのか?を考えてみました。

まず、「ツールの誤動作のせいで、安全性要求に違反しそう?」です。たとえ誤動作しても、別に安全とは関係ないよね?ということであれば、そもそも気にする必要すらありません。(注:あくまで、「機能安全の観点からは、気にする必要が無い」という意味です)

次に、「ツールの誤動作を予防もしくは検出できそう?」です。たとえツールが誤動作しても、それを別のツールで予防・検出できるのであれば、最終的な問題にはつながりません。ツールが誤動作し、なおかつそれを検出しそこねた時にのみ、安全性に関する問題が発生します。

問題が起きるまで

安全性要求に違反しそう?

ツールの誤動作のせいで、安全性要求に違反しそうでしょうか?

これについて、2つのレベルが定義されています。

TI0 そういう可能性はなさそうだ、という議論がなされている
TI1 それ以外

TI = Tool Impact

(日本語部分は造語)

ちょっと具体例が思い浮かびませんが・・・どんな場合なんでしょうね。

具体的にどう決めれば良いのかは、ISO/DIS26262-8では触れられていないように思います。

予防・検出できそう?

ツールの誤動作のせいで、出力に誤りがありました。さて、それをうまく検出できそうでしょうか?

これについては、4つのレベルが定義されています。

TD1 かなりの信頼性でもって、予防・検出できると言える
TD2 中くらいの信頼性でもって、予防・検出できると言える
TD3 低い信頼性でもって、予防・検出できると言える
TD4 それ以外のケース

TD = Tool error Detection

(日本語部分は造語)

どのツールをどの程度のレベルと評価すればいいのかは、よく分かりません。ただ言えるのは、ツール出力をシステマチックの検証 できる仕組みがないのであれば、問答無用でTD4になるという事です。その場合、誤動作がみつかるのは偶然でしかありませんから。

「信頼性」に、かなり、中くらい、低いとありますが、これらをどのように選べばよいかのさじ加減は、ISO/DIS26262-8では触れられていないように思います。

TCLの決定

TI0か1か、TD1~TD4のどれか?この2つのパラメータにより、TCL1~4が決定します。

TCL1  TI0の場合、もしくはTI1かつTD1の場合
TCL2  TI1かつTD2の場合
TCL3  TI1かつTD3の場合
TCL4  それ以外のすべて

TCL = Tool Confidence Level

これでやっと、TCLが決定しました。

ツールの評価

ツールのTCLが決まり、目標とするASILが分かったなら、いよいよツールの評価です。

ISO/DIS26262-8には、TCL1~4とASIL A~Dのマトリクスで、どの評価方法がお勧めか?が定義されています。

定義されているのは、ラフなものから、手厚いものの順番に次の4つです。

1a これまで使ってきたからオッケー
1b 開発プロセスの評価
1c ツールのValidation
1d Safety standardに従って開発された

「これまで使ってきたからオッケー」というのは、いちばんラフな評価方法です。ただしこれは、担当者の感想ではダメです。どのバージョンのツールをどうつかって、どういう結果になったのか?が全て記録されていない限り、この手はつかえません。

「開発プロセスの評価」は、ツールがCMMIなど一般的なプロセスにしたがって作られているか否か?という判定です。これは、正式にアセスメントを受けていないとダメなようです。

「ツールのValidation」は、誤解を恐れずに書くのであれば、ひたすら色々テストしましょう!という事です。ツールのテストをユーザーがするのも変な感じですが、規格ではユーザー側で使う機能をきちんとチェックしなさい、という風に決められているようです。

「Safety standardに従って開発された」というのは、たとえばISO26262にしたがって開発されたツールです。ただし、その証拠は?たとえばアセスメントが必要なのか?については触れられていません。個人的な予想では、何らかの公式アセスメントをツールベンダーが受けないとダメなのではないかと思います。

TCL1であれば、そもそもツールの評価は必要ありません。

TCL2であれば、ASIL A~Dどれでも、「これまで使ってきたからオッケー」「開発プロセスの評価」のいずれか(もしくは両方)を採用します。

TCL3であれば、ASIL A~Cなら「これまで使ってきたからオッケー」「開発プロセスの評価」、ASIL Dなら「ツールのValidation」「Safety standardに従って開発された」のいずれか(もしくは両方)を採用します。

TCL4であれば、ASIL A~Bなら「これまで使ってきたからオッケー」「開発プロセスの評価」、ASIL C~Dなら「ツールのValidation」「Safety standardに従って開発された」のいずれか(もしくは両方)を採用します。

より細かい情報がISO/DIS26262-8に記載されていますので、そちらを見ていただいたほうが分かりやすいかもわかりません。

認定レポートを書く

ツール評価まですんだら、認定レポートを書きます。(本当は、もっと色々なドキュメントを作成する必要があります。ISO/DIS26262-8をご参照ください)

ツール認定は、外部機関から認証してもらわなくても良い(もちろん、してもらっても良い)との事です。ですから、1回は外部機関の力を借りることになるのでしょうが、それ以降は自力でやっても良さそうです。

まとめ

ツール認定をするには、

  • 目標とするASILを決める
  • ツールの使われ方によって、TCLを決める
  • ASILとTCLに応じて、ツールの評価手法を決め、実施する
  • 認定レポートを書く

という流れになります。

おまけ

ツール認定の章を読んでいて思ったのですが、信頼性が高いとか低いとか、かなり曖昧なモノサシが用意されています。

CMMIならそれでも良いのでしょうが、ISO26262は法制化されます。何かあったら裁判にかけられるわけで、これはちょと心配です。

<妄想>

欧州で、事故があって裁判になりました。訴状には、「ISO26262に従っていないから事故が起きたんだ!」と書かれています。

パターン1: 裁判官「ほほう、欧州の企業で認定うけたんやな。ヨシャ、信用したろか」

パターン2: 裁判官「あーん?よく分からん島国の企業で認定うけとるのぅ。コリャ信用できんわい。くわしく詮議せんといかんのう(ニヤリ)」

という事がありえるんじゃないか・・・なんて妄想してみました。魚心あれば水心…

</妄想>

基準があいまいということは、見る人のさじ加減1つでどうとでもなるわけで、これはちょっと恐ろしい事のように思います。はてさて、どうしたものでしょうか。