防御性设计 防御性设计也稱為防守設計是在專案設計階段的应急方案防御式设计是考慮使用者可能會錯誤使用的所有情形用設計手法避免錯誤使用或是降低錯誤使用的機會例如假如某一個接頭需要以特定的方向插到插座中而且這個非常重要會設法設計此接頭讓接頭必需依正確的方向才能插入插座中電源插頭多半會依此方式設計避免火線和中心線插反 軟體工程中的防御式设计稱防御性编程著名的摩菲定理說明了為何需要防御式设计防御式设计是和契约式设计相反的一種設計方式契约式设计的作法會假設所有向伺服組件提出運作請求的客戶組件都會符合運作時需要的前置條件不過若其假設太過冒險例如多通道的客戶端伺服器系統或是分散式計算就比較適合使用和契约式设计相反的防御性编程