情報処理推進機構のソフトウェア高信頼化センター(IPA/SEC)が発行する「SEC journal」から注目の話題を紹介。今回はIoT(モノのインターネット)を活用したソフトウェア開発で必須になるとみられているアクシデントモデル「STAMP(Systems-Theoretic Accident Model and Processes)」だ。
本記事は、(独)情報処理推進機構 ソフトウェア高信頼化センター(IPA/SEC)が発行する「SEC journal」45号(2016年7月発行)掲載の「システム理論に基づくアクシデントモデルSTAMP」(執筆:IPA/SEC調査役 石井正悟氏)を転載しています。
IoT(Internet of Things)の普及に見られるように、コンピューターで制御されたシステムは、日常生活のあらゆる場面において密接に関与するようになってきて、システムの安全性向上が大きな課題になっている。一方で、システムの高機能化に伴い個々のシステム自体が大規模・複雑になり、更に様々なシステムがネットワークによって相互に接続されてシステムの大規模・複雑化に拍車がかかっているため、システム全体の安全性確保がますます難しくなってきている。実際に近年は、システム障害(アクシデント)もシステム構成要素に起因するのみならず、構成要素同士の間、ないし、システムと人間との間の複雑な相互作用によるものがしばしば発生している。その背景には、従来の安全性の考え方及びシステム開発手法は「アクシデントはシステム構成要素の故障に起因する」と仮定しており、システム構成要素の故障以外の事故原因(ハザード要因)をカバーしきれていないことが挙げられる。このような状況においてIPA/SECでは、システムの安全性に関して世界的に著名な米国マサチューセッツ工科大学(MIT)のNancy Leveson教授が提唱しているSTAMP(Systems-Theoretic Accident Model and Processes)に注目しつつ、コンピューターシステムの安全性向上に資する新たな手法について調査・研究・普及の活動を行っている。
20世紀に開発されたシステムの多くは、構成要素が少なく、それらの役割も明確であり、それゆえアクシデントが起きた場合は、構成要素のどれが根本原因でアクシデントに至ったのかを分析することは容易であった。従来アクシデントは、根本原因となる機器の故障や人間のオペレーションミスがまず発生し、それがシステム内のほかの機器や人間に伝搬し、システム内で悪影響を食い止めることができずに、最終的に起こってしまうという、チェーンオブイベントの形のモデルとして捉えられていた。
しかし、21世紀になると、開発されるシステムの規模は非常に大きくなり、構成要素も爆発的に増大すると共に、要素間の相互作用も複雑になり、個々の要素の役割を理解しただけでは、もはやシステムを理解できなくなった。そのような相互作用が複雑なシステムにおけるアクシデントの原因は、一つの構成要素に限定できる要因だけではなく、複数の要素間の相互作用による要因も考える必要があった。
MITのLeveson教授は、著書「Engineering a Safer World」※1)の中で、システムの安全性は構成要素の相互作用から創発される(局所的な相互作用に隠れていたものが表面化して全体に影響を与える)ものであり、個々の要素を分割して分析するべきではないと述べた。そして、現代のシステムのアクシデントの多くは、システム構成要素の故障によって起きるのではなく、システムの中で安全のための制御を行う要素(コントローラー:Controller)と制御される要素(被コントロールプロセス:Controlled Process)の相互作用が働かないことによって起きるというアクシデントモデルを提唱した。このモデルを「STAMP(Systems-Theoretic Accident Model and Processes):システム理論に基づくアクシデントモデル」と呼ぶ。
STAMPモデルでは、システムの様々な階層でコントローラーと被コントロールプロセスに該当する要素が存在しており、それらの相互作用が適切に働くことによりシステムの安全が実現されるとする。STAMPモデルにおいて、アクシデントは相互作用が適切に働かないことによって起こり、具体的にはコントローラーから被コントロールプロセスへの必要な制御指示(コントロールアクション:Control Action)が適切に与えられないために起こるとしている。そして、不適切なコントロールアクションが与えられる要因として、コントローラー自身が想定する被コントロールプロセスの状態(プロセスモデル:Process Model)が、実際の被コントロールプロセスの状態を正しく反映できていないことが主要な要因であるとしている。たとえコントローラーも被コントロールプロセスも故障せずに、仕様通りに正しく動作していても、このような認識の不整合により不適切なコントロールアクションが与えられ、最終的にアクシデントにつながるというアクシデントモデルである。
Copyright © ITmedia, Inc. All Rights Reserved.