Presentation is loading. Please wait.

Presentation is loading. Please wait.

Can We Trust the Computer? FIRE, Chapter 4. What Can Go Wrong? What are the risks and reasons for computer failures? How much risk must or should we accept?

Similar presentations


Presentation on theme: "Can We Trust the Computer? FIRE, Chapter 4. What Can Go Wrong? What are the risks and reasons for computer failures? How much risk must or should we accept?"— Presentation transcript:

1 Can We Trust the Computer? FIRE, Chapter 4

2 What Can Go Wrong? What are the risks and reasons for computer failures? How much risk must or should we accept? If errors are inescapable in complex computer systems, how can we distinguish between those that are acceptable as trade-offs for benefits received and those that are due to inexcusable carelessness, incompetence, or dishonesty? Are computers ever too risky to use? Are computers special in the errors they produce or the risks they entail? Or are they similar to other complex systems?

3 Computer user. We should understand the limitations of computers and the need for proper training and responsible use. We must recognize that, as in other areas, there are good products and bad products. Computer professional. Studying computer failures can help us become better professionals (e.g., systems designer, programmers, technical support professional, etc.). Even if we are not in these fields, we will benefit from understanding the sources and consequences of failures. Educated member of society. Many personal decisions or social, legal, and political decisions may depend on our understanding of the risks of computer system failures. We could face issues of computing technology on a jury, lobbying for legislation, or deciding whether to use an experimental medical device. What Roles Do We Play?

4 Categories of Computer Errors and Failures Computer problems can be organized in many different ways. FIRE uses the following categories: Problems for individuals System failures that affect large numbers of people Problems in Safety-Critical Applications that could injure or kill people

5 Professional Techniques The field of software engineering has grown up around the principles of developing safe, efficient, and reliable software systems. Software engineers working on safety-critical applications need special training (Leveson--we can learn from engineers’ experience in building safe electromechanical systems). Most software is not safe enough for safety-critical applications. Accidents will not be prevented from technological fixes alone (no complete automated system will work). For safety- critical systems, expert control of development and operation is necessary.

6 Redundancy and Self-Checking Critical applications should be redundant. (The space shuttle used four identical by independent computer systems that were checked against each other.) Most network infrastructures are highly redundant. Complex systems can collect information on their own activity for use in diagnosing and correcting errors. (In software engineering parlance, this is called “instrumenting” the application.) But sometimes the collection systems themselves can fail.

7 Testing Adequate and well-planned testing is essential. Test suites should be developed that exercise a program in all likely ways it will be used (and even unusual ways). However, it follows that an unusual activity (some unforeseen set of circumstances) could cause a failure. This is hard to test against!

8 A Deeper Problem…. There is a deeper problem of “underengineered systems” Such systems are so complex, use such new techniques, or are operating in such new ways that significant risk is inevitable. One such system is the Space Shuttle. These systems are, in a real sense, experimental systems. Although good management and design practices must be followed with these systems, risk cannot be eliminated.

9 Law and Regulation Criminal and civil penalties are always available for computing systems that fail and cause harm. But this is after the fact and often a pretty blunt instrument. Retail sellers of computing hardware usually provide warranties. However, software is usually sold “as-is”. What should the law be? Should companies be required by law to pay for bugs (and in what way?) or should they be protected? Safety-critical applications are a special case. Perhaps they need FDA-like regulation?

10 Professional Licensing Perhaps software development professionals should be licensed (like engineers or architects). Licensing typically involves specific training, passing of competency exams, ethical requirements, and continuing education. But sometimes licensing is used to protect the status-quo rather than to provide better and more ethical service. Economic analysis shows that one effect of licensing is to reduce the number of practitioners in a field and keep prices and income higher than they would otherwise be. Professional licensing would go against the current culture of software development.


Download ppt "Can We Trust the Computer? FIRE, Chapter 4. What Can Go Wrong? What are the risks and reasons for computer failures? How much risk must or should we accept?"

Similar presentations


Ads by Google