|go ahead... be a heretic|
Re: Software Design Resourcesby johndageek (Hermit)
|on Aug 22, 2003 at 19:58 UTC||Need Help??|
Good questions right up to "where any failure is simply not acceptable?"
This moves us from the difficult to the excruciatingly improbable (or impossible if I can use the word loosely).
No fluff intended at this point.
list all possible uses.
Test the list above.
Now a few guarantees need to be in place.
All uses of said software will be run on the exact same hardware, OS, and supporting environment it has been tested on. (please note the Hardware, OS and environment will never fail in any way. No guarantee needed since it will not fail)
Let us leave the ridiculous, and splash our face with a bit of reality. What say we make the specification attainable and personal. What procedure would you put in place to test software that, if it fails you (or if you are a parent - your child) will die a slow, horrible death (other than old age).
Neat, tidy question, with definite consequences that are high enough to put most people on their toes. Now, where do we start?
Define the requirements, environment of use, who the users will be, budget, time constraints, who else can be brought in to test, how long can we put the software in the field with real users before the test period is said to end. Will death due to failure be enforced if the flaw is not in the software but due to hardware, or environment?
Now let's hash some of this around.
Hardware - Make it as redundant as possible.
Power - back up generators and batteries.
software - oh oh, 2 options here.
Your question is not a programming question but a philosophical question, because life is fraught with failures. In what situation would "any failure simply not be acceptable"? People die all the time for stupid reasons, so that will not do. Any life activity has risks, both objective and subjective. To remove all risk of failure from a life , one must remove life. To write a program with all possibilities of failure removed is to not have a program.
I know, this is a bunch of metaphorical fluff that can not be directly applied, but it is a question that is worth some thought because it stretches the bounds of how we could scope a project, and may help us in our attempts at qwality.
Excellence is our realm, perfection is God's