Solidez (informática)

En cualquier caso, los sistemas complejos deben gestionar con elegancia los errores que se produzcan.

Algunos de los sistemas más robustos son evolutivos y pueden adaptarse fácilmente a nuevas situaciones.

[4]​ Los programas y el software son herramientas centradas en una tarea muy específica, por lo que no son generalizados ni flexibles,[4]​ Sin embargo, las observaciones en sistemas como Internet o los sistemas biológicos demuestran la adaptación a sus entornos.

Por el contrario, el nuevo código debe poseer una funcionalidad equivalente, de modo que si una función se rompe, otra que proporcione la misma función pueda sustituirla, mediante la diversidad manual o automatizada del software.

En la actualidad, las prácticas informáticas no se centran en la construcción de sistemas sólidos,[4]​ sino más bien en la escalabilidad y la eficiencia.

[7]​ Requiere que el código maneje estas terminaciones y acciones con elegancia mostrando mensajes de error precisos e inequívocos.

Estos mensajes de error permiten al usuario depurar más fácilmente el programa.

[7]​ El programador también asume que su propio código escrito puede fallar o funcionar incorrectamente.

[7]​ Esta información debe ocultarse al usuario para que éste no las modifique accidentalmente e introduzca un error en el código.

Cuando estas interfaces están correctamente construidas, los usuarios las utilizan sin encontrar resquicios para modificarlas.

La interfaz ya debe estar correctamente implementada, por lo que el usuario no necesita hacer modificaciones.