defensive design

Noun

 * 1)  The practice of planning for contingencies in the design stage of a project so as to make the misuse of the software impossible, or to minimise the negative consequences.