Loading article…
防御設計とは、プロジェクトや事業の設計段階で不測の事態に備えるための計画のことです。基本的には、エンド ユーザーがデバイスを誤用する可能性のあるすべての方法を予測し、そのような誤用を不可能にするか、悪影響を最小限に抑えるようにデバイスを設計する手法です。たとえば、プラグを特定の方向でソケットに挿入することが重要な場合は、プラグを間違った方向に挿入することが物理的に不可能になるようにソケットとプラグを設計する必要があります。電源ソケットは、多くの場合、活線と中性線の入れ替わりを防ぐために、このような方法でキーが付けられています。また、活線になったコネクタに触れることができないように、壁に埋め込まれています。
ソフトウェア エンジニアリングにおける防御的設計は、防御的プログラミングと呼ばれます。マーフィーの法則は、防御的設計の必要性とその究極の限界を示すよく知られた法則です。
アプリケーション
コンピュータソフトウェア
実装の決定とソフトウェア設計アプローチにより、ソフトウェアの安全性が高まり、ユーザー エラーを検出できます。 これを実装するコードは、健全性チェックと呼ばれます。
- データ入力画面では、入力内容を「サニタイズ」できます。たとえば、数値フィールドには、適切な場合は数字、符号、および 1 つの小数点のみが含まれます。
- 入力された値が正当な値であるかどうかを確認できます。たとえば、職場での負傷者数 (または負傷者の数) の場合、数値は 0 であってもかまいませんが、負の数は使用できず、整数である必要があります。1 週間の労働時間数の場合、指定された従業員の数値は 0 であってもかまいませんが、小数であってもかまいませんが、負の数は使用できず、168 を超えることも、出勤日数の 24 倍を超えることもできません。
- 保存された文書を読み込むように要求されたワードプロセッサは、その文書が適切な形式であり、破損していないことを確認するためにスキャンする必要があります。破損している場合は、プログラムはその旨を通知し、有効な部分的な文書を受け入れるか、文書全体を拒否する必要があります。いずれの場合も、プログラムは実行を継続し、終了しないでください。
エレクトロニクス
多くの電気コネクタは、非対称にすることでこの原理を適用しています。一方、USB-C プラグは機械的には対称ですが電気的には対称ではありません。しかし、デバイスがケーブルに反応する方法から対称の錯覚を実現し、2 つの方法のいずれかで差し込むことができます。付属の回路により、プラグとケーブルは対称であるかのように動作します。
