基本情報技術者試験のフェールセーフは、故障や障害が起きたときに安全を優先する考え方です。フールプルーフは人の誤操作への備え、フェールソフトは機能や性能を落として処理を続ける考え方なので、問題文の「何に備えて、何を守るのか」を読むと区別できます。
ただし、「停止」と書いてあればフェールセーフ、「継続」なら別の用語、と単語だけで決めるのは早すぎます。停止は安全を守る手段の一つですし、誤操作を防ぐために動作を止める場合もあります。
この記事では、四つの設計思想の比較、問題文を分類する手順、条件を少し変えたオリジナル練習問題を通じて、答えの理由を説明できる状態を目指します。機械や設備の例は試験学習用の仮想例であり、実際の安全装置の仕様や設計方法を示すものではありません。
- 安全優先・誤操作対策・縮退継続・要求機能維持の違い
- 同じ「停止」でも原因と目的によって答えが変わる理由
- 問題文から原因・目的・故障後の動作を拾う判定手順
- 境界例の練習問題で誤答の根拠まで確認する方法
基本情報のフェールセーフと安全優先の考え方

安全を優先する設計思想とは
フェールセーフ(fail-safe)は、システムが故障しても被害を広げないよう、あらかじめ想定した安全側の状態へ移す考え方です。何も起きないようにすることではなく、異常が起きた後の振る舞いに注目します。故障を完全になくすことが難しいからこそ、故障を前提とした備えを考えるわけです。
たとえば、教材用の搬送模型が正常な位置を判定できなくなった場面を想像してください。「誤った位置へ腕が動いて周囲に当たるおそれがあるため、腕の駆動を停止する」と問題文にあるなら、守ろうとしているのは安全です。作業を続けることより、危険な動きを抑えることを優先しています。
ここでは「止めた」という結果だけでなく、「危険を避けるため」という目的も一緒に読んでください。部品の交換のために止めた、営業時間が終わったから止めた、通信に失敗して偶然止まった、といった記述だけでは、フェールセーフの設計だとは判断できません。
故障で何もできなくなった状態と、故障時に安全な状態へ導く仕組みは別です。前者は単なる結果、後者は設計上の方針です。「障害が発生すると停止してしまう」という一文では、停止により何を守るのかが分からないため、選択肢の残りの説明も確認する必要があります。
IPAの組込みシステムの安全に関する資料の第5章でも、障害の影響を抑えるために安全側へ帰着させる考え方として説明されています。基本情報の学習では、まず「故障が起きた後も、安全を優先する」という軸を押さえましょう。
また、IPAが掲載する基本情報技術者試験シラバスVer.9.2の「信頼性設計」には、フェールセーフやフェールソフトなどの用語が挙がっています。用語の音が似ていても、一つの意味にまとめず、それぞれの設計目的を説明できることが学習の出発点です。
フールプルーフは人の誤操作に備える

フールプルーフ(foolproof)は、人が誤った操作や入力をすることを見越し、その誤りが障害や危険につながりにくいようにする考え方です。利用者が毎回注意してくれることだけに頼らず、間違いを受け付けない、間違いに気付いて修正できる、といった仕組みに着目します。
試験学習用の入力画面を考えてみます。数量欄に文字が入力されたら、内容を確定せず、「数値を入力してください」と示して入力し直してもらう。この場面ではシステムの機器が故障したわけではありません。人の誤入力を想定し、誤った処理や異常終了を防いでいます。
停止を含む例でも同じです。ある教材模型について、「利用者が保護カバーを開けた状態で操作しても、駆動部を動かせないようにする」と記述されていたとします。動かないことだけを見ればフェールセーフに思えますが、説明の中心は危険につながる誤操作を受け付けないことなので、フールプルーフとして読めます。
一方、「カバーを検出する部品が故障し、閉じているか判断できない場合には、駆動を禁止して安全を保つ」と書かれていれば、着目点は検出部の故障後の安全です。この違いは、同じ模型でも問題文の前半を読み落とすと見えなくなります。
覚えるときは、フールプルーフを「誤操作を絶対にゼロにする保証」と受け取らないようにしてください。試験では設計思想の分類を考えています。「間違えやすい操作へどのように備えているか」が分かればよく、あらゆる利用者や想定外の行動に対する万能な保証を意味するわけではありません。
また、画面に「注意してください」と書いてあるだけで、必ずフールプルーフと判定するのも避けたいところです。どの誤りを想定し、処理を確定させない、入力し直せる、操作そのものをできなくするなど、どの仕組みが説明されているかを確認します。注意書きの存在より、誤りをどう扱うかが判断材料です。
IPAの令和4年度春期情報処理安全確保支援士試験の午前Ⅱ問22では、誤入力を知らせて正しい入力を促し、異常終了を避ける設計が題材になっています。基本情報の練習にも、故障ではなく入力ミスが起点だと読み分ける視点を使えます。
フェールソフトと継続性の違い

フェールソフト(fail-soft)は、故障した部分を切り離したり、機能や性能を低下させたりしながら、可能な範囲で運用を続ける考え方です。すべてを通常どおり提供することをいったん諦めても、残せる機能を使って処理を継続する点に特徴があります。この状態は縮退運転とも呼ばれます。
仮想の学習サービスで、図を表示する補助機能に障害が起きたものの、文章の問題と解答機能は使えるとします。図を必要としない問題だけ提供し、演習を続けるという説明なら、機能を限定して継続しています。単に故障しているのではなく、使える部分を残す方針が記述されています。
性能の縮退も対象です。「一部の処理装置が故障したので、同時に受け付ける処理数を減らし、応答が遅くなっても処理を続ける」という仮想例なら、画面上の機能名は同じでも、性能を落として継続しています。フェールソフトを「メニューが消えるときだけ」と狭く覚えないようにしましょう。
これに対してフォールトトレランスは、障害が発生しても要求された機能を維持できるようにする考え方です。たとえば、ある機能を同じ条件で提供できる予備系へ切り替え、処理を継続する説明が典型的な判断材料になります。「フォールトトレラント」は、そのような耐障害性を持つシステムを形容する表現として使われます。
ただし、フォールトトレラントなら「どんな故障でも、性能は必ず100%、瞬間的な遅れもゼロ」と覚える必要はありません。問題文で維持するよう求められている機能や条件を確認します。予備の存在は方式の説明であり、それだけで全条件を満たせるとまでは断定できません。
両者を分けるときには、故障後に何を諦めたかを探すと分かりやすいです。「応答時間が長くなる」「一部機能を停止する」「処理能力を下げる」なら縮退の手掛かりです。一方、「故障を予備で補って要求機能を維持する」が主題なら、耐障害性に重点があります。単なる「継続」だけでは区別し切れません。
| 設計思想 | 主に備えること | 問題文で見る目的・動作 |
|---|---|---|
| フェールセーフ | 故障や障害 | 危険や被害を抑え、安全側へ移す |
| フールプルーフ | 人の誤操作・誤入力 | 誤りを受け付けない、訂正を促す |
| フェールソフト | 一部の故障・障害 | 機能や性能を落として運用を続ける |
| フォールトトレランス | 故障・障害 | 故障があっても要求機能を維持する |
IPAの令和6年度春期システムアーキテクト試験の午前Ⅱ問23も、フェールソフトを障害後の動作から判定する形式です。安全な停止と、性能低下を許容した継続を対比して読む練習に使えます。ここで紹介した仮想サービスの例や比較表は、定義を学ぶための整理であり、実サービスの障害時仕様を説明したものではありません。
安全側はいつも停止とは限らない
フェールセーフを「故障したら何もかも止める」と覚えると、安全と停止を同じ意味で扱ってしまいます。安全側とは、問題文で避けようとしている危険を抑えられる側の状態です。どの機能を止めるか、どの機能を維持するかは、対象と条件に左右されます。
仮想の設備模型で、搬送用の腕と、避難経路を示す照明が別々の機能になっているとします。腕の異常な動きを止めることは安全を守る手段ですが、それに合わせて必要な照明まで消すと安全な状態になる、とは限りません。すべての電源を切ることと、安全を優先することは同じではないのです。

この例を試験の記述として読むなら、「腕の暴走を防ぐために駆動を停止する」と「暗くなって避難しにくくなるのを防ぐために経路の表示を保つ」は、それぞれ何を危険と見ているかが違います。停止したかどうかではなく、記述されている危険と対応後の状態の関係を確かめます。
安全側を考える練習では、①何が故障したのか、②故障するとどのような危険があるのか、③対応後にその危険を抑えられるのか、の三点を短く説明してみてください。「故障した検出部」「位置が分からないまま駆動すると危険」「駆動を許可しないので危険な動きを抑える」のように、因果関係をつなぎます。
一つのシステムに複数の設計思想を取り入れることもできます。入力画面はフールプルーフで誤入力に備え、危険な出力はフェールセーフで抑え、補助機能はフェールソフトで縮退させる、という説明は矛盾しません。用語はシステム全体に一枚だけ貼るラベルではなく、どの備えを説明しているかを読むための区分です。
本記事の設備模型は学習のために条件を単純化した例です。実際の機械や防災設備では、想定する故障、周囲の条件、必要な安全機能などの検討が関わります。試験用の覚え方を、そのまま実装や操作の指示として使うものではありません。
基本情報のフェールセーフを問題文で見分ける

原因と動作を分ける判定手順
選択肢を読む前に、設問が何を尋ねているかを確認しましょう。「フェールセーフの説明はどれか」と「フェールソフトの例はどれか」では、同じ四つの選択肢でも正解が違います。用語を思い浮かべる前に、求められている分類を一つに決めておきます。
次に、選択肢を「起きたこと→備えの目的→その後の動作」に区切ります。長い文章でも、原因に当たる部分と動作に当たる部分を分ければ、曖昧な印象から具体的な条件へ移れます。目的が省略されているときには、何を維持し何を失うのかという記述も手掛かりにします。
「誤った値を入力」「操作方法を間違える」なら人の誤りが起点です。「部品が故障」「通信に障害」「異常が検出される」なら故障や障害への対応を読みます。ただし原因だけで決めず、次の目的も確認してください。
被害を抑え、安全な状態へ移すならフェールセーフが中心です。誤操作を受け付けない、正しい入力を促すならフールプルーフが中心です。使える機能を残す説明なら、縮退か要求機能維持かをさらに比べます。
「性能が低下しても」「一部機能だけ」「処理数を減らして」など、何かを減らして運用する説明はフェールソフトの手掛かりです。故障を補い要求機能を保つ説明ならフォールトトレランスを検討します。
「センサーの故障後に、危険な動作を防ぐため駆動を止めるからフェールセーフ」と説明できれば、装置名を丸暗記するより条件の変化に対応できます。残りの選択肢も、どの目的なのか短く分類してみましょう。
例えば、「通信障害が起きたため、画像配信を停止し、文章だけを配信してサービスを続ける」という仮想文では、原因は通信障害、目的は配信の継続、動作は機能を限定した配信です。「停止」という語が含まれても、停止するのは一部機能であり、サービス全体は縮退して続いていると読めます。
逆に「異常な出力による被害を避けるため、出力を停止する」なら、安全を優先しています。どちらも停止を含みますが、「何のために」「どこまで停止するか」が違います。語の有無ではなく、文章のつながりを見る習慣を付けましょう。

装置名と単語だけで決めない
引っ掛かりやすいのは、見たことのある装置名を先に分類してしまうことです。「カバーがあるからフールプルーフ」「予備機があるからフォールトトレラント」と即断すると、記述されている条件より、自分の記憶の中の例を優先してしまいます。同じ部品でも用途や目的が異なる場合があります。
「止める・続ける・間違えない」という短い覚え方は、最初に整理する助けにはなります。しかし、止めることが誤操作防止の手段になる、故障後も安全を保つための機能は動き続ける、継続には縮退と要求機能維持の両方がある、という境界を補って使う必要があります。
| 見かけの手掛かり | 早合点しやすい判断 | 追加で確かめる条件 |
|---|---|---|
| 停止する | すべてフェールセーフ | 危険を抑える停止なのか、誤操作に備える禁止なのか |
| 処理を続ける | すべてフォールトトレランス | 機能・性能を落としているか、要求機能を維持するか |
| 予備へ切り替える | 必ず通常どおり | 切替え後に何を提供でき、何を諦めるか |
| 警告する | すべてフールプルーフ | 誤入力を訂正させるのか、機器異常を知らせるだけか |
| 安全という語がある | 必ずフェールセーフ | 人の誤操作への備えか、故障後の安全優先か |
| 故障を減らす | フェールセーフ | 故障を起こしにくくする説明か、起きた後の対応か |
「故障を減らす」ことにも注意しましょう。高い品質の部品を使って故障しにくくする、といった説明は故障の発生を避ける視点です。フェールセーフの焦点は故障が起きた後の安全なので、発生確率を下げる説明だけでは一致しません。名称が似た用語が選択肢に並ぶ場合にも、この前後関係を使えます。
また、修理しやすくして復旧を早める説明と、故障時に安全側へ移す説明も分けます。部品を短時間で交換できるからといって、故障直後の危険が抑えられるとは限りません。「故障の発生を防ぐ」「故障後の動作を決める」「故障から復旧する」のどこを説明しているかを見れば、論点を整理できます。
記述の境界を比べる練習問題
ここからは本記事オリジナルの練習問題です。公式過去問の転載ではありません。各例は示された条件の範囲で分類し、現実の製品仕様を推測して補わないでください。まず用語を選び、次に「原因」「目的」「動作」の三つを自分の言葉で説明してから解説を読みましょう。
問題A:故障した検出部への対応
教材用の搬送模型で、位置を検出する部品が故障した。位置が分からないまま腕を動かすと、周囲への接触のおそれがあるため、駆動を停止する。この設計思想に最も合うものは、フールプルーフ、フェールセーフ、フェールソフト、フォールトトレランスのどれでしょうか。
答えはフェールセーフです。原因は部品の故障、目的は接触による被害の防止、動作は駆動の停止です。「止まるから」だけでなく、「故障後に危険を抑えるために止めるから」と説明してください。人の誤入力への対策でも、縮退による処理継続でもありません。
問題B:誤入力を訂正してもらう
演習アプリの数量欄に、利用者が数値以外の文字を入力した。アプリはその値で処理を確定せず、入力方法を示し、正しい値への修正を促す。機器故障は起きていない。この設計思想に最も合うものは何でしょうか。
答えはフールプルーフです。誤入力を起点として、誤りが処理へ進まないようにしています。エラーメッセージという語だけで選ぶのではなく、何についてのエラーかを読みます。部品の故障を通知するメッセージなら、それだけで同じ分類になるわけではありません。

問題C:同じ停止でも原因が違う
教材模型について、次の二つの説明を比較します。①利用者がカバーを開けたまま起動操作をしても、駆動しないようにする。②カバーの状態を判定する部品が故障した場合、危険な駆動を避けるために停止する。それぞれ、記述の中心となる設計思想は何でしょうか。
①はフールプルーフ、②はフェールセーフです。①は誤った操作への備え、②は故障時の安全への備えです。どちらも「駆動しない」という結果なので、結果だけでは分類できません。実際の一つの仕組みが複数の狙いを持つことと、問題文がどの狙いを説明しているかは分けて考えます。
問題D:一部の機能を残す
仮想の学習サービスで、集計グラフの生成機能に障害が発生した。グラフの提供を休止し、文章問題の出題と採点を続ける。サービスの通常機能の一部が使えなくなっている。この対応の分類は何でしょうか。
答えはフェールソフトです。使えない部分を停止し、使える機能を残して運用しています。文章問題を出せることだけに注目して「要求された機能をすべて維持」と読み替えないでください。設問には通常機能の一部を諦める条件が明示されており、その縮退が判断の根拠です。
問題E:性能だけ低下する
仮想の処理システムで、一台の処理装置が故障した。残りの装置を使い、同時処理数を減らすため応答は遅くなるが、処理を継続する。利用できる機能名は変わらない。この例もフェールソフトと判断できるでしょうか。
判断できます。縮退するのは機能だけでなく性能の場合もあります。ここでは処理能力の低下を受け入れ、全面停止を避けています。「機能名が変わらない」という一部分より、「性能を落として継続する」という条件を優先して読みます。

問題F:要求機能を予備で維持する
あるシステムでは、処理機能に必要な条件を満たす予備系を備えている。主系が故障した際には予備系へ切り替え、利用者に提供する要求機能を維持するようにしている。どの設計思想が中心でしょうか。
答えはフォールトトレランスです。主系の故障を補い、要求された機能を維持することが中心です。ただし、この文章だけから「すべての種類の故障に対応できる」「遅延は絶対に生じない」とは言えません。問題に書かれている維持対象を根拠に分類し、余分な保証を付け足さないことが大切です。
問題G:警告だけで安全優先と言えるか
仮想の装置で異常を検出すると、警告メッセージを表示し、その後の運転判断は利用者に任せる、とだけ記述されている。この説明から、装置が自動的に安全側へ移るフェールセーフだと断定できるでしょうか。
この記述だけでは断定できません。異常を知らせることは分かりますが、その後の状態が危険を抑えられるのかは説明されていません。フェールセーフの選択肢を選ぶなら、安全側へ移る仕組みが記述されているかを確認します。「異常」「警告」が含まれるだけで設計目的を補ってはいけません。
問題H:予備でも性能が落ちる
仮想の配信システムで、主回線の故障時に予備回線へ切り替える。ただし予備回線では通信速度が下がり、配信する情報量を減らして運用を続ける。設問が「性能を低下させても運用を続ける考え方」を尋ねている場合、何を選びますか。
答えはフェールソフトです。予備があることに目を奪われず、低下を受け入れた継続が問われていると読みます。冗長構成という方式の話と、縮退運転という動作の話は両立できます。設問の対象が方式なのか、障害後の動作なのかを確認してください。
間違えた問題を復習へつなぐ
間違えたときには、正解の用語を何度も書くより、判断に使えなかった条件を一つ残すと復習しやすくなります。「停止を見て選んだが、原因は誤操作だった」「予備を見て選んだが、性能低下を許容していた」のように、誤答へ至った読み方を短く言い直します。
問題Cを間違えた人は、同じ動作でも原因が変わる問題を練習するとよいでしょう。問題EやHを間違えた人は、機能と性能のどちらが縮退しているかを探します。問題Gを間違えた人は、問題文にない安全機能を自分で補っていなかったかを見直します。間違いの種類に合わせて練習を選ぶと、説明の読み直しにも目的ができます。
分類を確認するには、選択肢の表現を一部だけ入れ替えてみる方法もあります。「安全を守るため停止」を「性能を落として継続」に変えたら答えは何になるか、「部品の故障」を「利用者の誤入力」に変えたら何を追加で確認すべきか。変更した条件と分類の理由を説明できれば、文章の丸暗記から離れられます。
ただし、答えを変えるために問題の条件を勝手に読み替えるのは、本番では逆効果です。学習時の条件変更は理解を確かめる練習であり、本番の選択肢は書かれているとおりに読みます。省略された実装を想像して補うのではなく、明示された原因と目的に戻る習慣を付けましょう。
関連する信頼性分野では、設計思想を分類する問題と、稼働率を数値で求める問題を分けて対策すると整理できます。計算も確認したい方は、基本情報の稼働率・MTBF・MTTRと直列・並列の計算で公式と解法を学べます。稼働率が高いことと、故障時に安全な状態へ移れることは、同じ質問への答えではありません。
基本情報のフェールセーフの復習
基本情報のフェールセーフは、故障や障害が起きたときに安全を優先する考え方です。動作が止まるかどうかを先に覚えるより、「何が起き、どんな被害を避け、その後どの状態になるか」を読むと、具体例が変わっても理由を説明できます。
人の誤操作や誤入力への備えはフールプルーフ、機能や性能を落として運用を続けるのはフェールソフト、障害があっても要求機能を維持するのはフォールトトレランス。この比較を使い、選択肢を一つ選ぶだけでなく、他の選択肢がどの目的を説明しているかも確かめてください。
次の演習では、選択肢の「原因」「目的」「故障後の動作」をそれぞれ短くメモしてみましょう。三つをつないだ一文で理由を説明できれば、装置名や「停止」「継続」という語だけで答えを選んでいないか、自分で確認できます。
本記事の練習を終えて実際の出題形式でも確かめたい方は、基本情報の過去問アプリで演習する方法もあります。まずは信頼性設計の問題を解き、正解した場合にも選択肢を分けた根拠を確認してみてください。


コメント