信頼性設計の整理

<table>
  <thead>
    <tr>
      <th>分類</th>
      <th>用語 (英名)</th>
      <th>説明</th>
      <th>情報システムの例</th>
      <th>それ以外の機器の例</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th rowspan="2">壊れないように</th>
      <td>フォールトアボイダンス (Fault Avoidance)</td>
      <td>故障原因を徹底排除</td>
      <td>高品質プログラミング</td>
      <td>高品質部品の選定</td>
    </tr>
    <tr>
      <td>フールプルーフ (Fool Proof)</td>
      <td>誤操作でも安全動作</td>
      <td>入力制限、確認画面</td>
      <td>誤挿入防止コネクタ</td>
    </tr>
    <tr>
      <th rowspan="5">壊れても稼働</th>
      <td>フォールトトレランス (Fault Tolerance)</td>
      <td>予備機能で継続</td>
      <td>RAID、負荷分散</td>
      <td>複数エンジン、二重ブレーキ</td>
    </tr>
    <tr>
      <td>フォールトマスキング (Fault Masking)</td>
      <td>故障影響を隠蔽</td>
      <td>ECCメモリ</td>
      <td>異常値の無視</td>
    </tr>
    <tr>
      <td>フェールオーバー (Fail Over)</td>
      <td>予備システムへ切替</td>
      <td>ホットスタンバイ</td>
      <td>無停電電源装置</td>
    </tr>
    <tr>
      <td>フェールバック (Fail Back)</td>
      <td>復旧後、元に戻す</td>
      <td>自動切り戻し</td>
      <td>予備から主へ切替</td>
    </tr>
    <tr>
      <td>ディグレイデッドオペレーション (Degraded Operation)</td>
      <td>機能低下しても重要機能維持</td>
      <td>低重要度通信制限</td>
      <td>出力制限</td>
    </tr>
    <tr>
      <th rowspan="2">壊れた時の被害抑制</th>
      <td>フェールセーフ (Fail Safe)</td>
      <td>安全な状態へ移行</td>
      <td>データ自動保存</td>
      <td>非常停止ボタン</td>
    </tr>
    <tr>
      <td>フェールソフト (Fail Soft)</td>
      <td>徐々に性能低下し停止</td>
      <td>省電力モード</td>
      <td>航空機の不時着</td>
    </tr>
  </tbody>
</table>



<article>
  <p>LLMに書かせたので、間違ってないか確認してね</p>

  <h3>１．壊れないようにするための設計</h3>

  <h4>フォールトアボイダンス (Fault Avoidance)</h4>
  <p>フォールトアボイダンスは、設計や製造の段階で、欠陥や故障の原因となる要素を徹底的に排除することで、故障の発生そのものを防ぐという考え方です。</p>
  <p><b>情報システムの例：</b> 高品質なプログラミング規約の遵守、厳密なコードレビュー、詳細なテスト計画と実施、適切なハードウェア選定、定期的なセキュリティ脆弱性診断など。</p>
  <p><b>それ以外の機器の例：</b> 航空機の機体設計における冗長性の確保、自動車部品の耐久性試験の実施、原子力発電所の多重防護壁の設計、医療機器の滅菌プロセスの徹底など。</p>

  <h4>フールプルーフ (Fool Proof)</h4>
  <p>フールプルーフは、人的な誤操作やミスが発生しても、システムが安全に動作し続けるように設計する考え方です。操作ミスによる故障や事故を防ぐことを目的としています。</p>
  <p><b>情報システムの例：</b> Webフォームにおける入力項目の制限（文字数、形式など）、ソフトウェアの操作ミスを防ぐためのGUI設計（確認ダイアログの表示など）、誤ったコマンド入力を防ぐためのCLIの設計など。</p>
  <p><b>それ以外の機器の例：</b> 家庭用コンセントの形状を工夫してプラグの誤挿入を防ぐ、洗濯機のチャイルドロック機能、電子レンジの誤操作防止機能、自動車のシフトロック機構など。</p>

  <h3>２．壊れた時に稼働を止めないようにするための設計</h3>

  <h4>フォールトトレランス (Fault Tolerance)</h4>
  <p>フォールトトレランスは、システムの一部に故障が発生しても、予備の機能や冗長性によってシステム全体の機能を維持し続ける設計です。</p>
  <p><b>情報システムの例：</b> サーバーのRAID構成、ロードバランサーによる負荷分散、ネットワーク機器の冗長化（スパニングツリープロトコルなど）、仮想化技術を用いて障害発生時に別のサーバーに処理を移行する、データベースの内容を複数のサーバーに複製するレプリケーションなど。</p>
  <p><b>それ以外の機器の例：</b> 航空機に複数のエンジンを搭載する、自動車のブレーキ系統を二重化する、エレベーターのワイヤーを複数本使用する、工場の生産ラインに予備の設備を用意するなどが該当します。</p>

  <h4>フォールトマスキング (Fault Masking)</h4>
  <p>フォールトマスキングは、故障が発生した要素の悪影響が、システム全体に及ばないようにする仕組みです。故障を隠蔽し、あたかも正常に動作しているかのように見せます。</p>
  <p><b>情報システムの例：</b> メモリのエラーを自動的に訂正するECC（Error Correcting Code）メモリ、通信データに誤りがないかチェックするパリティチェック、ソフトウェアで冗長なデータ構造を用いて誤りを検出・訂正するなどが挙げられます。</p>
  <p><b>それ以外の機器の例：</b> 産業用ロボットのセンサーに異常値が出ても、他のセンサーの情報に基づいて制御を続ける、制御システムを冗長化し、誤った信号が出ても多数決などで正しい信号を特定するなどが考えられます。</p>

  <h4>フェールオーバー (Fail Over)</h4>
  <p>フェールオーバーは、稼働中のシステムに障害が発生した場合に、自動的に待機していた予備のシステムに切り替えて処理を継続する仕組みです。</p>
  <p><b>情報システムの例：</b> Webサーバーやデータベースサーバーをホットスタンバイ構成にし、障害発生時に自動的に予備のサーバーに処理を切り替える、複数のサーバーを連携させるクラスタリング技術を用いて、一部サーバーに障害が発生しても他のサーバーが処理を引き継ぐなどが該当します。</p>
  <p><b>それ以外の機器の例：</b> 停電時に自動的に電力を供給する無停電電源装置（UPS）、商用電源が失われた際に自動的に起動する非常用発電機などが挙げられます。</p>

  <h4>フェールバック (Fail Back)</h4>
  <p>フェールバックは、フェールオーバーによって予備システムに切り替わった後、元のシステムが復旧した場合に、自動的または手動で元のシステムに処理を戻す仕組みです。</p>
  <p><b>情報システムの例：</b> 障害から復旧したサーバーを自動的に運用系に戻す設定を行ったり、管理者が手動でシステムを元の構成に戻したりする手順などが該当します。</p>
  <p><b>それ以外の機器の例：</b> 予備の冷却システムが作動した後、主冷却システムが復旧したら自動的に元の冷却システムに切り替えるなどが考えられます。</p>

  <h4>ディグレイデッドオペレーション (Degraded Operation)</h4>
  <p>ディグレイデッドオペレーションは、システムの一部機能が低下した状態でも、重要な機能を維持して動作させる設計です。完全な機能は失われるものの、最低限のサービスを提供し続けることを目指します。</p>
  <p><b>情報システムの例：</b> ネットワーク帯域が逼迫した際に、重要度の低い通信を制限する、複数のディスクで構成されたストレージシステムで一部のディスクが故障しても、残りのディスクで読み書きを継続する、Webサイトで画像表示を省略してテキスト情報のみを表示するなどが挙げられます。</p>
  <p><b>それ以外の機器の例：</b> 自動車のエンジン制御システムが一部センサーの異常時に、安全な範囲内で出力制限を行う、航空機の操縦システムが一部故障時に、残りのシステムで操縦を維持しながら飛行を継続するなどが該当します。</p>

  <h3>３．壊れたときに被害を抑えるための設計</h3>

  <h4>フェールセーフ (Fail Safe)</h4>
  <p>フェールセーフは、システムが故障した場合や異常が発生した場合に、常に安全な状態に移行するように設計する考え方です。人命や設備への危険を最小限に抑えることを目的としています。</p>
  <p><b>情報システムの例：</b> ソフトウェアが予期せぬエラーで停止した場合に、作業中のデータを自動的に保存する、システムに異常が発生した場合に、管理者へアラート通知を送る、危険な状態を検知した場合に、自動的にシステムを安全な状態に移行させるなどが挙げられます。</p>
  <p><b>それ以外の機器の例：</b> エレベーターに異常が発生した場合に、最寄りの階で安全に停止する機構、自動車のブレーキシステムが故障した場合に、自動的にロックがかかるABS（アンチロック・ブレーキ・システム）、工作機械の緊急停止ボタン、ガス漏れを検知して自動的にガスを遮断する警報機などが該当します。</p>

  <h4>フェールソフト (Fail Soft)</h4>
  <p>フェールソフトは、システムが故障した場合でも、可能な範囲で機能を維持し、徐々に性能を低下させながら安全に停止する設計です。急激なシステム停止による影響を緩和することを目的としており、グレースフルデグラデーションとも呼ばれます。</p>
  <p><b>情報システムの例：</b> サーバーの高負荷時に処理能力を徐々に低下させる、ネットワーク機器が輻輳時に新しい接続を制限する、バッテリー駆動の機器でバッテリー残量が低下すると省電力モードに移行するなどが挙げられます。</p>
  <p><b>それ以外の機器の例：</b> 自動車のエンジンが過熱した場合に、徐々に出力を低下させる、航空機の油圧システムが一部故障した場合に、残りのシステムで機能を維持しながら飛行を継続するなど。</p>
</article>