IPA 信頼性設計の考え方 — 頻出論点と過去問

頻出論点

1. この分野は何か

機械は壊れ、人は操作を誤るものとして、そのときシステムを止めるのか、動かし続けるのか、そもそも誤りを起こさせないのかを、設計の段階で決めておく考え方です。障害がどこから生じるかを図や表で洗い出す分析の手法もあわせて扱います。異常時に処理を止めずに続ける設計と、安全のためにあえて止める設計の違いを、実際の対策例と結び付けて見分けることが要点です。

2. 実際の出題のされ方

身近な操作画面の仕組みを例に挙げてどの設計方針に当たるかを選ばせる問題が、ITパスポートで出ています。例えば、ファイルを削除するときに確認メッセージを表示する仕組みをフールプルーフの例として選ぶ問題が出題されています。応用情報技術者の午前と高度試験の午前Iでは、主要な設計用語の定義を並べて正しい説明を1つ選ばせる問題のほか、フールプルーフを実現するインタロックの具体例や、障害原因の分析手法であるFTAの説明を問う問題が出ています。

高度試験の午前IIでは、設計の方針や機器の動きを文章で示し、それがどの考え方に当たるかを判定させる問われ方が目立ちます。無効なデータが入力されたときにエラーメッセージを出して再入力を促すプログラム設計をフールプルーフとして選ばせる問題は、ネットワークスペシャリストと情報処理安全確保支援士の午前IIで出ており、情報処理安全確保支援士の午前IIではカオスエンジニアリングも問われています。

故障したときに利用者に危害が及ばないようにシステムを止める性質は、エンベデッドシステムスペシャリストの午前IIでCPSの文脈で出題されています。

フェールソフトやフォールトトレランスの適切な動作・記述を選ぶ問題は、システムアーキテクトとシステム監査技術者の午前IIで問われています。

3. 学習のポイント

故障そのものを起こさないようにするアプローチと、故障が起きることを前提に対処するアプローチの対比を押さえます。

  • フォールトアボイダンス: 故障しにくい部品を選び、設計や製造の品質を高めて、故障そのものを減らそうとする考え方です。
  • フォールトトレランス: 構成部品の一部に故障が起きても、重要部品の多重化(冗長化)などによってシステム全体の機能を維持し、処理を継続させる考え方です。

次に、障害が起きたときに安全のために止めるのか、機能を落としてでも動かすのかの違いを整理します。

  • フェールセーフ: 機器の故障や異常が発生した際、常に安全側に制御して被害を最小限に抑える考え方です。制御プログラムの障害時に暴走を避けて安全に運転を停止したり、データや装置を損なわずに停止したりする動作がこれに当たります。
  • フェールソフト: 一部に障害が起きても全体を止めず、機能を縮小したり性能(パフォーマンス)が低下したりすることを許容してでも、必要な運転を継続する考え方です。

これらと並んで、人間のミスに着目する設計と、事前・事後の分析手法も区別しておきます。

  • フールプルーフとインタロック: フールプルーフは、利用者が誤操作や誤入力をしてもシステムの誤動作や異常終了を招かないようにする(または誤操作自体をさせない)設計です。その実現手段の一つであるインタロックは、安全のための条件がそろわない間は装置が動かないようにしたり、危険な状態を検知したら動作を止めたりする仕組みです。
  • 障害原因の分析手法と検証手法: FTA(故障の木解析)は、起きてほしくない障害を一番上に置き、その原因をANDやORのゲートでつなぎながら下へ下へと分けていくトップダウンの手法です。これに対して、部品ごとの壊れ方から出発してシステムへの影響を調べるボトムアップの手法がFMEAです。また、本番に近い環境でわざと障害を起こし、そのときの振る舞いから弱点を見つけて直すことを続ける手法がカオスエンジニアリングです。

4. 間違えやすいところ

用語名を差し替えた誤答肢が繰り返し出題されています。誤操作を防ぐ設計の説明にフェールセーフの名前を付けたり、安全な状態に固定して止める設計の説明にフォールトトレランスの名前を付けたりする選択肢です。誰の何に対する備えなのか(利用者の誤操作か、構成要素の故障か)と、異常時のゴール(安全な停止か、処理の継続か)を切り分けて読むことが重要です。

フェールソフトという言葉の響きに引きずられた誤答肢にも注意が必要です。応用情報技術者の午前とシステムアーキテクトの午前IIでは、フェールソフトをソフトウェアの不具合への対策とする選択肢が出ています。フェールソフトの「ソフト」はソフトウェアの意味ではなく、障害時に機能を縮めて柔らかく運転を続けることを指します。

システムアーキテクトの午前IIでは、フォールトトレランスとフェールソフトの関係を誤った選択肢もあります。フェールソフトをフォールトトレランスに含めないとするものです。フェールセーフやフェールソフトとともに、障害に備える設計の考え方としてまとめて押さえておきましょう。

信頼性設計の考え方の理解度チェック

信頼性設計の考え方の過去問一覧

信頼性設計の考え方の用語

システム構成のほかの論点

稼働率・信頼性指標28問 システム構成方式・冗長化28問 性能評価・キャパシティ32問