by Jessica Winblad

Robust:
Example: Unix is often said to be robust because it can operate for prolonged periods without crashing or requiring rebooting, and if individual programs crash, they usually do so without affecting other programs or the operating system.
Software is often instead:
Tactics to Deliver Robustness:
Design for maintenance - Code that is easy to read (designed for comprehension) and/or written in a common/mainstream programming language will be easier to maintain if the original experts are no longer available. If your lead designer got hit by a bus tomorrow would you be able to figure out how the code works?
Build in Safeguards
Design Goals are not always for Robustness:
| Rapid Application Design | Robust Design |
Good for:
Faster to implement typically (less worrying about the possible "what ifs" of what could go wrong) |
When code needs to:
Requires more thorough testing to verify as many errors as possible are avoided |
"Exception handling code can be difficult to represent in terms of design and documentation, largely because it generally falls outside normal program flow, and can occur at virtually any point in a program."