HOME UP PREV

SLIDE IMAGE

So, now that we're oriented to embedded affordable dependability, here are some ways to provide it.

The first way is to make things reliable. Reliability is the probability that a system will keep functioning over a given period of time. So, if you build things that never break, you're all set. Of course, you also have to make sure there aren't any bugs in the design either. And, you have to help people avoid making "pilot errors" as well by avoiding bugs in the human interface design.

But we all know that even the best designed systems will break. So the second approach is to improve availability, which is the percent of the time that the system is available for use. You can do that by predicting failures and arranging for quick and efficient repair and maintenance.

Those two areas have significant research efforts underway. Unfortunately, the plain fact is that inexpensive systems will always break, and just-in-time repairs will never be perfectly executed. So, there is a third approach that is my research focus: graceful degradation. By this I mean finding ways to make the system provide some level of service even though it is broken, and preferably do it without adding the cost of brute-force redundancy.

A key element of graceful degradation is making sure that your components fail quickly and cleanly. Another element is making sure that the system keeps working when it is outside its tested operating envelope.


koopman@cmu.edu