Class+Notes+6

Computer Reliability 1. Here are three ways a computer may produce faulty output: (a) There is a bug in the program. (b) Incorrect data are input into the system. (c) A query for information is entered incorrectly. 2. A data-entry error is an error resulting from incorrect data being entered into a computer system. A data-retrieval error is an error resulting from the output of a computer system being misunderstood. 3. A lot of the information entered into the NCIC comes from other law enforcement and intelligence agencies. It is not practical for the FBI to check all of this information. Sometimes the veracity of information is questionable. Agents should be able to use their discretion is to determine which information may be useful in criminal investigations. If all data had to be double-checked before being entered into the NCIC, there would be far fewer records in the NCIC, reducing its usefulness. 4. An embedded system is a computer used as a component of a larger system. A real-time system is a computer that processes data from sensors as events occur. 5. A linear accelerator is a device that is used to treat cancer patients with radiation. 6. In the Therac-20 the PDP 11 minicomputer was an optional add-on. Hardware interlocks to prevent accidental overdoses remained in place. In contrast, the PDP 11 front end computer was fully integrated into the Therac-25. Some hardware interlocks on the Therac-20 were replaced with software controls on the Therac-25. 7. The Therac-25 was in operation two years before the first documented accident. It took another 20 months for the Therac-25 to be declared defective by the FDA. 8. A race condition in software is a situation in which two or more concurrent tasks share a variable, and the order in which they read or write the value of the variable can affect the behavior of a program. Race conditions are difficult to debug, because in order for a failure to occur, the timing of events must be exactly right. Often the probability that an error will occur is very low. 9. (a) Patriot missile: I, III (b) Ariane 5: III (c) AT&T long distance network: IV (d) Mars Climate Orbiter: III (e) Mars Polar Lander: VII (f) Denver International Airport baggage system: V (g) Therac-25: VI, V, II (h) Direct recording electronic voting machines: III, VII 10. The advantage of allowing software users to identify and report bugs is that there are usually many more users outside the company than software testers inside the company. When many more people are exercising the software, there is a greater chance that errors can be uncovered. One disadvantage of allowing software users to identify bugs is that if a lot of bugs are discovered, the reputation of a company can suffer. Most users probably do not think it is their job to find and report errors (unless we’re talking about people who have agreed to test a beta release of the software). Also, most software users are not trying to break the software, so even if a lot of people are using a program, that is no guarantee that every bug will be found in a reasonable amount of time. 11. Computer simulations are playing an increasingly important role in science and engineering because physical experiments are often too expensive and/or impossible to perform. 12. Five uses of computer simulation are weather prediction, searching for oil, designing consumer products such as disposable diapers, simulating galactic evolution, and predicting global population growth. 13. A model is a representation of an actual system. There are different kinds of models, including physical models and mathematical models. A computer simulation is a program that implements a mathematical model. 14. Verification is the process of determining if the computer program correctly implements the model. Validation is the process of determining if the model is an accurate representation of the real system. 15. You can validate a computer simulation by compare its predicted result with the actual result found by doing the experiment in the real world. For example, you can use a computer simulation to predict what happens when you drive a Ford Explorer into a wall at 35 miles per hour. Then you can drive a real Ford Explorer into a wall at 35 miles per hour and compare the predicted results with the actual results. Another way to validate a computer simulation is to take its prediction to an expert and ask the expert if the prediction is accurate. 16. Article 2 of the Uniform Commercial Code governs the sale of products in the United States. It helps protect the rights of consumers. 17. One purpose of the Magnuson-MossWarranty Act was to prevent manufacturers from putting unfair warranties on products costing more than $25. Another purpose was making it feasible for consumers to bring warranty suits by allowing courts to award attorney’s fees. 18. Some people argue that shrink wrap software should be exempt from the Magnuson-Moss Warranty Act and Article 2 of the Uniform Commercial Code, because there is no such thing as error-free software. A program is much more complicated than a pocket knife. If software manufacturers can be held liable for all sorts of damages caused by a bug in a program, less software will be available, and the software that is available will be more expensive. 19. The significance of the court’s ruling in Step-Saver Data Systems v. Wyse Technology and The Software Link was that the purchase order, the invoice, and the oral statements constituted the contract, not the software license agreement. 20. The significance of the court’s ruling in ProCD v. Zeidenberg is that shrink wrap licenses are enforceable unless their terms are unconscionable, even though the licenses are not visible before the box is opened. 21. The significance of the court’s ruling in Mortenson v. Timberline Software was that the licensing agreement limited the consequential damages that Mortenson could recover from Timberline, even though Timberline knew there was a bug in the program and had not told Mortenson.