
El diseño defensivo consiste en planificar contingencias durante la fase de diseño de un proyecto o iniciativa. En esencia, se trata de anticipar todas las posibles formas en que un usuario final podría hacer un mal uso de un dispositivo y diseñarlo de manera que dicho mal uso sea imposible o que se minimicen las consecuencias negativas. [ 1 ] Por ejemplo, si es importante que un enchufe se inserte en una toma de corriente con una orientación específica, tanto la toma como el enchufe deben diseñarse de forma que sea físicamente imposible insertar el enchufe incorrectamente.
El diseño defensivo en ingeniería de software se denomina programación defensiva . La ley de Murphy es una conocida afirmación sobre la necesidad del diseño defensivo, así como sobre sus limitaciones últimas.
Aplicaciones
Software informático
Las decisiones de implementación y los enfoques de diseño de software pueden hacer que el software sea más seguro y detectar errores del usuario. El código que implementa esto se denomina verificación de cordura .
- Las pantallas de entrada de datos pueden "sanear" la información introducida exigiendo, por ejemplo, que los campos numéricos contengan solo dígitos y, si es aceptable, un único signo positivo o negativo y/o un punto decimal.
- Se pueden verificar los valores de entrada para asegurar que sean válidos. Por ejemplo, para el recuento de lesiones laborales (o número de personas lesionadas), el número puede ser 0, pero no puede ser negativo y debe ser un número entero; para el número de horas trabajadas en una semana, la cantidad para cualquier empleado específico puede ser 0 o fraccionaria, pero no puede ser negativa, mayor que 168 ni mayor que 24 veces el número de días que el empleado estuvo presente.
- Un procesador de texto que intente cargar un documento guardado debe escanearlo para asegurarse de que esté en buen estado y no esté dañado . Si está dañado, el programa debe indicarlo y, a continuación, aceptar la parte del documento que era válida o rechazar el documento completo. En ambos casos, el programa debe seguir ejecutándose y no cerrarse.
Electrónica
Muchos conectores eléctricos aplican este principio al ser asimétricos. Por otro lado, los conectores USB-C son mecánicamente simétricos, pero no eléctricamente, aunque generan una ilusión de simetría gracias a la forma en que los dispositivos responden al cable, lo que permite conectarlos de dos maneras diferentes. Un circuito integrado hace que los conectores y cables se comporten como si fueran simétricos.
Véase también
Referencias
- ↑ Groeger, Lena V. (8 de junio de 2016). "Demasiado humanos (para no) fracasar" . ProPublica .
- Diseño