ここからは、前回連載記事の繰り返しとなる部分もあるが、あらためてSTAMP/STPAの概要を紹介する。2018年の連載記事では、MITが2013年に発行した書籍「STPA Primer」およびIPAが発行したハンドブック「はじめてのSTAMP/STPA」に記載された表記を用いてSTPA手順を解説した。今回はMITが2018年に発行したハンドブックSTPA Handbookに記載されている表記を基に解説する。表記は異なるものの、STPAの手順そのものに変化はないことに注意願いたい。
従来の複雑システム解析アプローチでは、システムをコンポーネントに分け、各コンポーネントを独立に分析し、次に構成要素の振る舞いを理解するためにそれぞれの結果を結合してきた。これは、いわゆる還元主義的なアプローチと言え、重大な損失となる故障のみを考慮している。物理的または機能的コンポーネント群をシステムにマッピングすることは(既知なので当然)できるが、個々のコンポーネントの分析結果を結合して表現できる振る舞いは限定的である。
レブソン氏の名著「Engineering a Safer World」やSTPA Handbookによると、「全体は部分の総和以上である」「コンポーネントが相互作用する時の『創発』する特性を考慮すべき」「創発特性は個々のコンポーネントの振る舞いやコンポーネント間の相互作用によって生じる」「STAMPは、システム理論に基づいた新しい事故因果関係モデルである」「STAMPは、従来の安全解析手法(例えば、FTA、イベントツリー解析、HAZOP、FMEA)の根幹である『故障イベントチェーン』の代替である」などと説明している。
なかなかに高尚な説明であり直接的に理解するのは難しいかもしれない。多少乱暴ではあるが、筆者なりに簡単に言ってしまうと「コンポーネント間の相互作用を考慮する必要がある。それを反映したのがシステム理論に基づくSTAMPである」ということだ。
そのSTAMPをベースとした分析手法が、STPA(System Theoretic Process Analysis)とCAST(Causal Analysis based on Systems Theory)である。
STPA Handbookの第2章では、STPAの概要を4つのステップに分けて図示している(図1)。
「どの損失を防ぎたいのか?」「対象となるシステムは何か?」「システムの境界は何か?」など、これらを明確化してステークホルダーと認識を共有する。
コントロールストラクチャー(CS)と呼ぶシステムのモデル(CS図)を構築する。その上で、一連のフィードバックコントロールループとして、システムをモデル化し、機能的関係性および相互作用を表現する。
コントールアクションについて損失につながる可能性があるかを分析する。
UCAおよびハザードに至る可能性のある因果関係要因を説明するシナリオを作る。この第4のステップの後、対策を検討し、コンポーネント安全制約を導出する。
なお、STPAの手順のさらに詳しい解説については、前回の連載記事「基礎から学ぶSTAMP/STPA」を参照してほしい。
STAMP/STPAを学ぶ人は、おそらくIPAのはじめてのSTAMP/STPAをまず読んで、次にMITのSTPA Handbookを読まれるのではないかと想定している。STPA Handbookの第2章では、STPA手順を具体的に説明し、気を付けるべきこと(注意事項や勘所)についても多くを解説している。ただし、先述したようにとても高尚な説明なので、STAMP初学者には理解し難いのではないかと危惧する。
誤解のないように強調しておくが、STAMP提唱者であるレブソン氏が執筆されたSTPA Handbookは本家本元の教科書であり、STPA Handbookの文章はとても秀逸である。
お世辞抜きに秀逸な文章ではあるものの、STAMP初学者にとっては決して読み易く分かり易い文章ではない。STAMP有識者であれば、STPA Handbookを読んだときに「うん、そうそう、これ重要なんだよね。端的に言えばそういうこと。こう表現すれば良いのね」と理解し、共感できる。
しかし、STAMP初学者にとって、注意事項や勘所も含めて読んだとしても頭に残らないのではないか。読み方が悪いのではなく、普通はそういうものだと思う。初学者であれば、書籍のメインストーリー(システム思考とは、STAMPとは何か? STPAとはどういうものか?)を追いかけることに集中するし、しかもそれが難解であれば当然の帰結ではないか。
そこで本連載記事は、読者として、STAMP有識者ではなくSTAMP初学者を前提に置き、産業界の現場技術者をメインターゲットとして、STPA Handbookに記載された注意事項、勘所の幾つかを事例も使いながら分かり易く解説することにした。
STPA Handbookには注意事項や勘所が数十個ある(数え方に依る)が、それらを全部並べたのでは結局STPA Handbookと変わらず、「はい読みました」の自己満足だけで終わってしまいかねない。そこで、特に重要と思われ、かつ思い違いの多い項目を選んだ。筆者がSTAMP初学者の分析結果を幾つもレビューした経験上、STAMP初学者が陥り易い勘違い/思い違いの項目、筆者自身が悩んだり、思い違いをしたりして苦労した経験のある項目をぜひ伝えられればと考えている。
また、STAMP/STPAに関するTipsなどの情報を提供するコンテンツは本連載記事の他にもある。それぞれ別の観点から掲載事項を選別しているので併せて読んでいただければ幸いである。
次回からは、STPAの手順で紹介した4つの各ステップにおいて、失敗を起こさず円滑に進めるためのTipsを紹介する。(次回に続く)
石井 正悟(いしい しょうご)
京都大学理学部卒業後、東芝にてOSカーネル、仮想計算機、システム高信頼化技術、システムシミュレーション技術の研究開発に携わる。その後IPAにて、STAMP、FRAMなどの安全性解析手法の調査研究に従事。STAMP普及促進のため、書籍「はじめてのSTAMP」シリーズ発行、STAMP支援ツール「STAMP Workbench」開発や各種教材作成などを担う。現在はIPA専門委員としてSTAMP普及活動に関わる。
STAMP/STPAとは何か
STPAの手順を理解する
STPAの分析を実際にやってみる
システム理論に基づくアクシデントモデルSTAMP
6年かかっていた分析が3年で終わる、新たな安全解析手法「STAMP/STPA」とは?Copyright © ITmedia, Inc. All Rights Reserved.
組み込み開発の記事ランキング
コーナーリンク