Nel Cap.8 Defensive Programming, c'è un'interessante distinzione tra Robustezza e Correttezza, che molto spesso a sproposito vengono usati quasi come sinonimi quando si parla di software, ma che in realtà si trovano agli antipodi...
Robustezza: cercare sempre di mantenere in vita il sistema, a costo di non fornire sempre risultati perfetti.
Correttezza: Mai restituire un risultato errato, a costo della stabilità dell'intero sistema.
Naturalmente in base al tipo di software che si sta realizzando, si sceglierà l'una o l'altra...
Ad esempio in un gioco 3D se una scena viene calcolata male, si va avanti tanto la successiva sarà corretta (si spera), ma in un sistema di elaborazione di immagini ad uso medico, non ci si può permettere la stessa tolleranza nell'elaborazione di un'immagine...
Technorati Tags: Code Complete 2nd Edition