2012-08-18

ISO 26262との向き合い方 (13) 機能安全の歴史的背景1


ISO 26262の理解を深めるために、書籍『機能安全/機械安全規格の基礎とリスクアセスメント―SIL、PL、自動車用SILの評価法』 を読んだ。

今回は、この本に書かれていることの一部を紹介したいと思う。ちなみに、国際規格を理解するためにはその規格が制定された背景を知るべきだと常々感じていたのだが、この本を読んでよりいっそうそのことを痛感した。一般的に、国際規格自体にはその規格が制定された裏側の背景は詳しくは書かれない。規格のAppendix に表の背景が書かれることがあるので、Appendix は読み飛ばさずにじっくり読むべきだが、表も裏も含めた背景を知るのに一番いいのは規格策定に参加した委員に話を聞くことだ。

ISO 26262 は IEC 61508 に強い影響を受けいる、というよりはISO 26262 は自動車版の機能安全規格である。だから、ISO 26262 を知る上で IEC 61508のことを知ることは意味がある。『機能安全/機械安全規格の基礎とリスクアセスメント―SIL、PL、自動車用SILの評価法』 の著者、現東京海洋大学海洋工学部 佐藤吉信 教授 は、現在、IEC 61508の策定・改訂国内委員の主査である。よって、IEC 61508 や ISO 26262 ができてきた歴史的な背景も詳細にこの本に記載されている。ISO 26262 について理解を深めたい人はこの本を一度読んでみることをお勧めする。

IEC 61508 が制定された歴史的背景

まずは、歴史的背景から、その一部を紹介しよう。

<仕様規定と非関税障壁の問題>
  • 1985年前後に欧州で製造物責任法の相次いで施行され、製品製造業者がこの法律に過度に反応した。
  • それに伴い製品に関わる安全規定策定の動きが各国において一斉に生じた。
  • それらの規定は各国の製品製造業者によって策定されることも多く、結果的に製造業者の製品に合致する設計仕様規格となった。
  • このようにして1980年代から1990年代には、欧州各国の安全規格による非関税障壁の問題が多発した。
  • 欧州内での製品の流通を円滑にするために各国ごとの安全規格を統一することが必要になったが、すでに詳細な設計仕様に基づいて策定されてしまった各国の安全規格を欧州安全規格として統一することは現実的には不可能であった。
  • この反省点に基づき、1990年代になって、ISO機械類の安全規格などにみられるように、製品の定性的あるいは定量的な安全性能に立脚した、いわゆる性能標準化の必要性が認識され始めた。
PL(Product Liability)法(製造物責任法)がきっかけで自己防衛のために、各製品系統ごとの安全規定策定が進んだという点が興味深い。製造業者が製造する商品によって消費者に危害が及んだ際、PL法により製造業者は製造物責任が問われる可能性がある。設計、製造に落ち度があって結果として商品に欠陥があったと判定された場合、その責任を問われるというものだ。

製造物責任の意義」(2012年8月18日 版)『ウィキペディア日本語版』より引用
損害賠償責任を追及する場合、民法の不法行為法における一般原則によれば、要件の一つとして加害者に故意・過失があったことにつき被害者側が証明責任を負う
つまり民法で損害賠償を請求する際には、被告の過失を原告が立証する必要がある。しかし多くは、過失の証明が困難であるために損害賠償を得ることが不可能になる場合があるとの問題意識から、同法で製造者の過失を要件とせず、製造物に欠陥があったことを要件とすることにより、損害賠償責任を追及しやすくした。このことに製造物責任の意義がある。 
無過失責任としての製造物責任に関する扱いとしては、まず、1960年代初めのアメリカで、fault(過失)を要件としない strict liability(厳格責任)の一類型として判例で確立された。また、ヨーロッパでは製造物責任の扱いについて各国でかなりの差異があったが、その均一化を図る必要があるとして、1985年に当時のEC閣僚理事会において製造物責任に関する法律の統一に関する指令が採択され、その指令に基づき各国で製造物責任に関する立法が導入された。
PL法での焦点は製造物に欠陥があったのか、なかったのかという点である。もっとも、「欠陥があることが証明できれば過失を認定できるのが通常であることや、欠陥の有無に関する判断基準は過失の有無に関する判断基準と重なることが多いとして、過失と欠陥がどれだけ質的に異なるかにつき、疑問を呈する見解もある。」ということなので、欠陥の認定と過失の有無は表裏一体と言える。要するに過失があったから欠陥が生まれる、過失がなければ欠陥ではないという論理もあり得るということだ。

何はともあれ、PL法において製造物に欠陥があったことが明確になれば製造業者の負けになる。逆に言えば、製造物に欠陥があったとはいえなければ責任は問われないということだ。

この解釈は非常に難しいだろうし、毎回裁判で議論していたのでは欠陥のあるなしではなく、裁判の進め方如何で欠陥認定が変わる事態になりかねない。

そこで、製造業者は商品系統ごとに安全規定を策定したのだろう。ようするに、安全規定に沿って製品を設計、製造したことを証明することで、過失がない、すなわち安全に関する欠陥がなかったことを主張することを考えたのだろう。(本当にそうかではなく、過失がないことの根拠の一つにしたかったのだ。)

実はこの流れは21世紀になっても変わっておらず、製造物によって起こった事故について、製造業者は常にPL法の脅威にさらされており、国際規格が製造業者に商品の設計に関して過失がなかったことを証明する根拠の一つに使われている。それは製造業者が欠陥を隠蔽しようとするために行っているのではない。例えば、アメリカではオペレーションミスなのか製品の欠陥なのか原因のよく分からない事故において、欠陥がないことを証明しきれない場合、裁判で黒と認定されることがある。これを防ぐためには客観的な根拠が必要であり、国際規格への適合は客観的な根拠の一つとなっている。

なお、各国が商品系統ごと作った設計仕様規格は結果的に、非関税障壁となってしまい、EU統合の際の商品流通の障壁にもなった。しかし、詳細な設計仕様に基づいて策定されてしまった各国の安全規格を欧州安全規格として統一することは現実的には不可能であったため、商品系統を超えた統一した安全規格の制定が希求された。

そのような背景により幅広い商品系統に使用できる機能安全規格 IEC 61508 が策定された。

また、このような背景もある。

<事後安全計画から事前安全計画へ>

事故・災害が起こってから対策を立てる事故後安全計画は20世紀終盤までは効果的であったが、その後飽和(限界)状態になって、事前安全計画の必要性が高まってきた。

また、製品システムは複雑化し、コンピュータ技術の導入が進み、ソフトウェアに起因する不具合が増えてきた。

これにより、全安全ライフサイクルの実現が叫ばれるようになり、IEC 61508で次の事前安全計画の方法論の基本的枠組みが形成された。

【事前安全計画の方法論の基本的枠組み】

a) 全ライフサイクルのそれぞれのフェーズを有機的に関連づける
b) 安全性の尺度として(危害の)リスクを用いる

a) は製品開発を概念形成から廃棄までのプロセスに分離して進めるプロセスアプローチ考え方で、ソフトウェアの品質向上施策の歴史から見ても納得できる。(『ソフトウェア品質論の歴史的推移』を参照のこと)
b) が製品にまつわるリスクをベースに安全を考えるリスクベース設計の考え方で、IEC 61508 の SIL や ISO 26262 のASIL の概念に通じている。

安全のためのリスク軽減戦略

機能安全/機械安全規格の基礎とリスクアセスメント―SIL、PL、自動車用SILの評価法』には、リスク軽減戦略について具体的な事例がたくさん掲載されている。その一部を掲載して考察してみよう。

-プラントのリリーフバルブの例-
たとえば、プラントのリリーフバルブを例に取れば、旧版(ISO/IECガイド51)では、過圧による容器の爆発災害を防止するため、単純に当該バルブを解放することをリスク軽減処置として採用できた。改訂版によると、化学物質を大気中に放出して環境の価値を害するなら、バルブの開放では単純に安全を確保したことにならない。したがって、リスク事象「容器の加圧による破裂」を招かぬように、プラントの安全設計システムの機能が著しく重要になる。
ISO/IECガイド51は 「規格に安全面を導入するためのガイドライン」で IEC 61508 や ISO 26262 の上位に位置するガイドラインである。

このプラントのリリーフバルブの例は、3.11 の福島の原子力発電所の格納容器の弁の解放を思い起こされる。(弁を解放したことが原因で放射性物質が大気中に放出されたかどうかは定かではない。こちらを参照のこと。)

-鉄道信号の例-
また、鉄号信号を例に取れば、従来、列車の衝突を防止するために、なんらかの傷害が信号系に発生すると列車を先ず停止させてきた。これがフェールセーフ技術と呼ばれるもので、常に列車の停止が安全側の状態とされている。しかし、改訂版ガイド51によると、長時間の停止により乗客の財産に毀損が発生し、あるいは急病発生への救急処置が遅延するなどにより乗客の健康逸失が発生すると、単なる停止はそれらの潜在危険に対して安全とは言い切れない。したがって、信号系のデジタル化などによる系の冗長化や、自己診断機能を充実させて信号系のアベイラビリティ向上を目指し、一方では速やかな傷害復旧を促進して、乗客のリスク軽減を計ることがなお一層必要になる。
鉄道の場合、何かあれば列車を停止させれば安全が確保されると考えられていた。それは現在でも正しいフェールセーフの考え方だ。しかし、列車を止め続けることで乗客の時間という財産の毀損は確実に生じる。よって、安全のために列車を止めるという対策だけでは、リスク軽減策は完全ではない。さらに、リスク軽減策を積み重ねると、複雑化するためその複雑化が新たなリスクを生む。だからこそ、現代の安全設計はとても難しいと言える。

-自動車の追突の例-

例えば、自動車が走行中に先行車に追突することにより、当該運転手が自車のハンドルに強打して傷害(危害)が発生する事故シナリオを考える。

この場合、当該自動車がある程度の速度をもって走行している状態、低速先行車が存在する状態、追突危険事象、自車の破損と急激な停止側加速事象、運転手とハンドルとの急激な接近状態、運転手とハンドルとの衝突リスク事象などが事故シナリオの構成要素となる。

<潜在危険の同定>
潜在危険の同定では、最低限1個のリスク事象を特定することが必要である。上記の事例では「当該自動車がある程度の速度を持って走行している状態」、「低速先行車が存在する状態」、「両者の衝突リスク事象」によって、潜在危険(1)が同定できる。さらに、これに「自動車の破損と急激な停止側加速状態」、「運転手とハンドルとの急激な接近危険状態」、「運転手とハンドルとの衝突リスク事象」の諸状態と事象を付け加えることにより潜在危険(2)が同定できる。当然、潜在危険(1)の方が潜在危険(2)よりも広い事故シナリオを包括している。すなわち、潜在危険(2)は潜在危険(1)の部分集合となっている。 
潜在危険(1)と(2)とに対するリスクでは、その内容が異なる。前者のリスクは、後者のリスクを包含し、後者以外の潜在危険、例えば、追突によって、当該運転者が車外に投げ出されるという潜在危険によるリスクも含む。
リスクは、潜在危険をもとに存在するため、潜在危険の解消は、根本的なリスクの解消となる。しかし、決定論的原因故障から生じるものも含めて、あらゆるリスクを根絶することは不可能である。
この部分ちょっと分かりにくいのだが、ようするに潜在危険(1)は自動車が先行車両と衝突するリスクまでのことを関心事にしていて、潜在危険(2)は衝突後に運転手がハンドルに強打するまでのことを関心事にしているということだろう。この後、潜在危険(1)と潜在危険(2)ではリスク軽減策が考え方が異なるということが書かれている。

-自動車の追突事故のリスク例-
一例として、自動車の追突事故のリスクについて考えてみよう。現在、広く実用化されている自動車の安全関連装置として、車間距離警報装置、(能動型)シートベルト、(衝突時)エアーバッグなどが知られている。前述の自動車の衝突の例で同定した潜在危険(1)「当該自動車がある程度の速度をもって走行している状態-低速先行車が存在する状態-両車両の衝突リスク事象」によるリスクを考えれば、車間距離警報装置の安全機能は主としてリスク軽減戦術b)を、シートベルトやエアーバッグなどの安全機能はリスク軽減戦術a)をそれぞれ遂行すると言える。
次に、同様に同定した潜在危険(2)「当該自動車がある程度の速度をもって走行している状態-低速先行車が存在する状態-両車両の衝突危険事象-自車の破損と急激な停止側加速状態-運転手とハンドルの急激な接近危険状態-ドライバーとハンドルとの衝突リスク事象」に対するリスクを考えれば、最終的なリスク事象は「運転手とハンドルとの衝突」であるから車間距離警報装置はもとよりシートベルトやエアーバッグなどの安全機能もリスク軽減戦術b)をそれぞれ遂行すると言える。 
すなわち、同一の安全関連系の安全機能であっても、どのリスクを対象とするかによって異なるリスク軽減戦術をして分類されることに注意すべきかである。このことは、リスク解析・評価と機能安全との関連において重要な意味を持つ。 
固有(本質)安全に対して機能安全とは、「ある安全機能をある確からしさ(確率)で遂行することによってリスクを軽減する能力を持つ安全関連系(装置)によって確保される安全」ということができる。固有(本質)安全では、たとえば、構造物の地震に対する耐震性能など信頼性評価基準が問題となる。機能安全では、安全関連系の機能遂行確率が問題となり、これも信頼性の問題と深く関わってくる。このように、固有(本質)安全および機能安全においては、ディペンダビリティと機能安全が少なからず接点を持つことになる。
これもやや分かりにくいが、解釈すると自動車が先行車両と衝突するリスクである潜在危険(1)については、車間距離警報装置が主たるリスク軽減策であり、シートベルトやエアーバッグは主のリスク軽減策とは追加のリスク軽減策とう位置づけで、衝突後に運転手がハンドルに強打するまでリスクである潜在危険(2)では、車間距離警報装置、シートベルト、エアーバッグが同列のリスク軽減策ということを言っているのではないかと考える。

何はともあれ、著者が強調したいのは潜在危険あるいは潜在危険群によるリスクを明確にすることの重要性であろう。

IEC 61508 と ISO 26262の相違点

a) プロセス産業では早くからプロセスの自動化が進展し、プロセス産業からのエキスパートが多数を占めたIEC 61508策定時に、化学反応を制御するための自動化、安全計装システムの導入など人の介在を含まない安全関連系がすでに多く実用化されていた。一方、当時機械類の産業分野では相対的に自動化は始まって日が浅く、自動車に至っては、今日でも運転者が運転をオーバーライドするという基本的形態から脱していない。 
b) 安全関連系に人の操作機能を含むか含まないかは、安全関連系への要求事項に大きな影響を与える。IEC 61508では、基本プロセス制御系と安全関連系とを分離することが求められているが、自動車などではそれらを分離することは難しい。しかも、運転者と車の加速機能・減速機能・操舵機能遂行システムとはほぼ一体で基本制御系も構成していて、例えば車間距離警報システムなど安全関連系がそれらの基本制御機能の一部を支援しているに過ぎない場合も多い。このため、安全関連系の安全機能のみを独立させて安全度を評価することが難しい上に、システムが複雑なため全体システムの定量的リスク評価が難しくなる。 
c) プロセスプラントの寿命は30~40年と長く、次世代のプラントは基本から新規に設計・製造される。一方、自動車の新型モデルの設計は、旧型モデルの部分的改造であることが多く、旧型モデルの部品などを多く継承する。旧型モデルで使用した部品の安全性は、妥当性が確認済みと見なせる場合が多い。 
d) 危害の規模は、プロセスプラントでは1回当たりに多数の死傷者を出す可能性があり、損害額も大きい。プロセスプラントの台数は世界的に見ても最大数千程度である。一方、自動車では1回当たりの死傷者数は少ないものの、台数が多いため合計すれば死傷者数と損害規模はプロセスプラントを上回る可能性がある。 
e) 機器の不都合に関するリスクオーナーは、プロセスプラントではプラントオーナー、自動車では一義的に運転手であるが、自動車ではリコールリスクが存在する。リコールリスクのオーナーは自動車の販売者となろう。 
f) IEC 61508 では、安全関連系の安全性能を2種類の要求モードに対してSIL1からSIL4までの4段階で規定しているが、ISO26262では、ASIL Aから ASIL D およびQM の5段階で規定している。 
g) IEC 61508 では、安全関連系はセンサなどの入力端から最終的に安全機能を実行するアクチュエータまでの全体として定義され、弁などの機構部品を対象範囲に含まれる。一方、ISO 26262では、安全関連系のうち、電気・電子技術に関連した部分のみを対象とる。
上記の a) と b) の説明でIEC 61508 がプロセス産業(化学プラントなどの自動化製造工程の設計がベースとなる産業)のエキスパートが中心に作られた規格であることが分かる。

また、プロセスプラントでは人の介在を含まない安全関連系のリスク軽減策が多く実用化されていたことも分かる。

一方で、自動車や医療機器は人による操作機能が含まれるため、基本制御と安全関連制御を分離することが難しい。その部分がしっくりこないため、ISO 26262 は自動車用に機能安全をモディファイしたのだろう。医療機器はプロセスプラントとはさらに性質が異なるため、独自路線で規格策定が進んだ。(IEC 60601-1 や IEC 62304, IEC 62366など)

機能安全は当初、リスクを軽減する能力を持つ安全関連系(装置)にフォーカスが当たっていることが分かる。MITのナンシー・レブソン教授が機能安全を評価していないのは、機能安全がシステムのアーキテクチャの複雑性から発生するリスクにフォーカスを当てていないからだと思う。(『機能安全の意味がわかった(IEC61508とISO26262の最新情報』参照)

思い起こせば2006年に日本で開催されたクリティカルソフトウェアワークショップで、自分がエレベータのアーキテクチャの事例で独立した安全装置の有効性を発表したときに、ゲストとして招待されていたナンシー・レブソン教授に「独立した安全装置など、誰でも思いつく単純な方法だ」と酷評されたことが思い出させる。ナンシー・レブソン教授は放射線治療器の Therac-25 の事故調査によって一躍有名になったのだが、Therac-25 の事故がすぐに収束せず6名者もの犠牲者を出してしまったのは、ソフトウェアの複雑性と追加変更による問題の作り込み、ソフトウェアの特徴を考慮していない安全対策などが原因だった。

独立した安全装置は、プロセスプラント系では人の介在を含まない安全関連系のシステムであり単純系システムのアプローチだったため、ソフトウェアの複雑性から発生するリスクを完全に押さえ込むことはできないという意味での批判だったのだと思う。

また、「安全関連系に人の操作機能を含むか含まないかは、安全関連系への要求事項に大きな影響を与える。」はまさにその通りで、医療機器では人の操作機能は必ずと言ってもいいほど介在するため、ユーザビリティの視点でのリスク分析は必須事項となっている。自動車の場合は、まだ、ユーザーオペレーションが単純であるためユーザビリティに対する要求は存在していない。

それどころか、ASILの判定要素の中でユーザーである運転手のコントローラビリティがASILを軽減する手段として使われいる。医療機器ではオペレーションがソフトウェアによって複雑化されているため、ユーザーの回避動作を考慮してリスクが軽減できると考えることはできない。

ただし、自動車だって今後も操作性が単純なままかどうかはわからない。現に、カーナビゲーションシステムやクルーズコントロールなどハンドル、アクセル、ブレーキ以外のオペレーションも増えてきている。

機能安全/機械安全規格の基礎とリスクアセスメント―SIL、PL、自動車用SILの評価法』 を読んで改めて思うのは、IEC 61508 や ISO 26262 はソフトウェアの複雑性、ソフトウェアのアーキテクチャの問題にフォーカスを当てたアプローチについては触れられていないということだ。これらは、ソフトウェアのプロセスアプローチや変更管理、構成管理、検証法等などだけでは解決できない問題だと思う。

P.S.

過去の ISO 26262との向き合い方の記事で、ASILをアイテムやエレメントに割り当てるといった記述をしていましたが、名古屋大学の高田先生からのご指摘及び今回紹介した書籍により、それは間違いであり、SIL, ASILは安全関連系の安全性能を等級化した水準であることが分かりました。これは今回の記事で紹介したように、IEC 61508 が基本制御と安全関連制御を明確に分離していたことの名残であると考えています。しかし、基本制御と安全関連制御が明確に分離できないシステムにおいては、潜在危険から推定するリスクのクラス分類と、ソフトウェアを分割したときの各ソフトウェアアイテムのリスク(安全)クラス分類は必ずしも一対一にはなりません。(付加的な機能のシステマティック故障が安全制御に影響を与えることは大いにあり得るという意味)ASILデコンポジッションはシステムのアーキテクチャの構造分離にことを示していたのだと思っていましたが、実際にはそうではなく、リスクを軽減するための安全性能、安全機構の冗長評価のことでした。繰り返しますが、基本機能と安全機能が明確に分離できないシステムにおいては、ソフトウェアアーキテクチャの重要性がクローズアップされます。ASILデコンポジッションが複雑なソフトウェアシステムにおけるアーキテクチャの設計戦略に踏み込んだ話ではなかったということです。この点については、今後掘り下げていきたいと考えています。