より複雑なシステムの安全性解析の理論とその分析手法である「STAMP/STPA」を実践する上での勘所をTips形式で簡潔に分かりやすく説明する本連載。第4回は、STPA手順「第3のステップ:UCAの識別」を失敗しないための重要ポイント、注意点について解説する。
システムとシステムがつながる、より複雑なシステムの安全性解析の理論としてSTAMPが注目され、その手法であるSTPAの普及が進んでいる。本連載はSTAMP/STPAを実践する際に役に立つと思われる勘所の幾つかをTipsの形式で簡潔に分かりやすく説明する。
今回の第4回では、STPA手順「第3のステップ:UCAの識別」を失敗しないための重要ポイント、注意点について解説する。
⇒連載「今こそ知りたい!STAMP/STPAの勘所」のバックナンバーはこちら
第3のステップではコントロールストラクチャーのコントロールアクションを分析して、非安全なコントロールアクション(UCA)を識別する(図1)。
STAMPにおいてUCAは次のように定義されている。
非安全コントロールアクション(UCA)は、ある特定のコンテキストと最悪の環境下で、ハザードにつながるコントロールアクションのことである。
前回の記事では、第2のステップで行うCS図(制御構造図、Control Structure Diagram)の構築を“最もSTAMPらしい手順”と記したが、第3のステップにおける4つのガイドワードもまたSTAMPの大きな特徴といえる。このステップではコントロールアクションが論理的に非安全になり得るか否かをあらゆる視点から検討する。その際にこれら4つのガイドワードは漏れのない視点を提供するものであり、とても考えやすい視点を提供している点が大きな特徴でありアドバンスであろう。幸いなことに、UCA(非安全制御行動、Unsafe Control Action)を抽出する際に使う4つのガイドワードの意味を勘違いする例はあまり聞いたことがない。それだけ、シンプルなガイドワードといえる。
コントロールアクションが非安全になるには4つの側面がある。その側面(視点、view、aspect)を提供するのが以下に記すSTAMPのガイドワードである。
UCAを抽出するときに重要なこととして、網羅性(検討する視点としての網羅性)の確保がある。
UCAが現実として発生し得るか否かではなく、「UCA抽出の視点において論理的に網羅性を確保している」ことが重要で、その網羅性確保のための道しるべとなるのがこれら4つのガイドワードである。
ところで、なぜガイドワードはこれら4つなのだろうか?
STPA Handbookにも「これらの4つのカテゴリーは、おそらく全部そろっているものです」という記載にとどまっており、論理的で納得のいく解説はない。
筆者の個人的見解は、「それを聞いてはいけない。そういうものと受け入れるのみ」である。
“Not providing”と”Providing causes hazard”の2つだけで神羅万象をカバーしている。物事の状態はあるかないかで全てをカバーしているのだから(意地悪を言えば、例えば量子力学的にはその中間にも状態があるのだが、それは伏せておこう)。残りの2つは、経験豊富なナンシーさんがそう言っているのだから、そういうものなのだと受け入れる。
以上。納得いただけただろうか?
納得しないと悩むことになるかもしれない。筆者も悩んだ末の結論なので。
UCAでは、コントロールアクションが非安全となるコンテキストを識別しなければならない。コンテキストを考慮しなければ安全か非安全か評価できないからであり、このコンテキストが重要となる。
あるコントロールアクションが常に非安全というのは論外で分析するまでもない。全てのUCAは(どのコンテキストで)どのような条件下だとコントロールアクションが非安全であるのかを明確にすることによって、その後、システムの設計からそれらの事例を排除したり、軽減する方法を見つけたりすることができる。
コンテキストを説明するため、UCAには次の5つの部分を含めるべきとされている。
なお、この順番は英語の文法をベースにしており日本語には馴染まないので、次ページで日本語での書き方の一例を紹介する。
Copyright © ITmedia, Inc. All Rights Reserved.
組み込み開発の記事ランキング
コーナーリンク