Wiktionary
n. (context computing English) the practice of planning for contingencies in the design stage of a project so that to make the misuse of the software impossible, or to minimise the negative consequences.
Wikipedia
Defensive design is the practice of planning for contingencies in the design stage of a project or undertaking. Essentially, it is the practice of anticipating all possible ways that an end-user could misuse a device, and designing the device so as to make such misuse impossible, or to minimize the negative consequences. For example, if it is important that a plug be inserted into a socket in a particular orientation, the socket and plug should be designed so that it is physically impossible to insert the plug incorrectly. Power sockets are often keyed in such a manner, to prevent the transposition of live and neutral.
Defensive design in software engineering is called defensive programming. Murphy's law is a well-known statement of the need for defensive design.