Faults and Their Effects

Fault and the Effects in Hardware vs. Software

Hardware

  • Proximity of fault and failure
  •  
  •        Safety margins insure fault tolerance
     
  • New prroducts use time-tested components
 
 

Software

  • A fault can reside far from the failure it causes
  • Adding manually written software only adds potential for more faults
  • Exhaustive software testing does not exist
 

 

Practical Limits in Real-life Software Engineering

  • "Any non trivial software program is a complex apparatus" (Edsger W. Dijkstra)
  • “If debugging is the process of removing bugs, then programming must be the process of putting them in.”               (Edsger W. Dijkstra) http://en.wikipedia.org/wiki/Edsger_W._Dijkstra

    Software is only correct to the degree to which it was tested.

    Exhaustive testing is not feasible in real life software. We can not test today the input that will come tomorrow.

    Faults that are still present in production stage are even harder to locate and even more expensive to correct.

       "average time to investigate and fix a bug is 17.4 hours"
          study of National Institute of Standards and Technology
           
http://www.nist.gov/director/prog-ofc/report02-3.pdf

 

 
Self Healing

Is this you?

Are you a computer programmer/consultant?

Given today's automated tools, programs are created faster and systems are created larger and more complex. Then we add new code and the complexity grows again.

The more complex the systems become, the more difficult is the task of cognitive understanding of causes and effects within them.

Improvement in the art of software creation only makes the necessity of the Software Understanding Machine® more acute.

Are you a QA Engineer?

Does your job exhaust you to the bone, because some one still believes that exhaustive testing is feasible?

-- Let SUM work for you.

Are you a CTO concerned about the reliability of your software release?

How do you deal with the fact that there is no "Error Free" software and that exhaustive testing is not feasible?

However, having a software machine to understand your application in real time, always know the reasons of failures and often able to prevent those failures, IS feasible. And this machine is SUM.