繁体
首页

第87章 错误、故障和风险(8)(1 / 2)

本章练习

复习题

8.1 列出本章中讲过的两个案例,其中造成程序错误或系统故障的因素之一是测试不足。

8.2 列出本章中讲过的两个案例,其中系统提供者在通知客户关于系统漏洞的时候做得不够。

8.3 丹佛机场完工时间被延误的一个原因是什么?

8.4 举一个因为软件复用造成严重问题的案例。

8.5 给出成功的高可靠性组织的一个特征。

8.6 描述在安全攸关应用中特别重要的一个人机界面设计原则。

练习题

8.7 (a)假设你写了一个计算机程序来把两个整数相加。假设每个整数与它们的和都能放到计算机上使用的整数标准内存单元里。你认为计算出的结果有多大可能是正确的?(如果你使用不同的整数运行该程序一百万次,你认为它有多少次会给出正确的答案?)

(b) 假设一个公用事业公司拥有一百万客户,它运行一个程序来确定任何客户是否有逾期未付的账单。你认为程序结果完全正确的可能性有多大?

(c)你对(a)和(b)给出的答案可能是不同的。为什么在这两个例子中可能的错误数字是不同的?请解释其原因。

8.8 考虑在第8.1.2节描述的案例,其中因为两所学校在他们的计算机记录中使用了不同的惩戒代码,导致其中一所学校假定该男生是一个吸毒者。描述可以帮助防止此类问题的一些政策或做法。

8.9 一个原告律师处理了超过1000例的RSI诉讼,在有人争论对计算机键盘是否导致RSI的原因并没有科学结论时,他回应说:“法律不能等待科学。”给出支持这一说法的(适用于RSI诉讼)一些论据。给出反对其说法的一些论据。你是否认同这一说法?为什么?

8.10 为什么租车公司会把它的一辆出租的汽车错误地列成被偷来的?请给出几个可能的原因。其中哪些问题可以通过更好的软件或更好的政策来避免?哪些类型的错误是很难或不可能避免的?

8.11 给出数据库设计特性的一些建议,使之可以鼓励更新信息,或者可以帮助减少由于信息过时而导致的问题。

8.12 考虑在8.1.3节中所描述的关于标准化测试成绩报告错误的案例。假设测试公司向学校报告的成绩不是比正确成绩更低,而是比正确成绩要高很多。你觉得会有人发现错误吗?如果是的话,会怎样发现?给出几种情形的例子,你认为在这些情形下,人们会选择不去报告计算机的错误。对于每个例子,给你出的理由(例如,乐观、无知、轻信、不诚实等)。

8.13 在两名“9.11”劫机犯把飞机撞到世贸中心的半年后,美国移民和归化局(INS)还向他们发送了签证批准通知。没有人更新移民局的数据库,取消他们的签证(他们的签证是在 9月11日之前批准的)。这一事件被公开宣传之后,使INS非常尴尬。什么样的政策或过程可能避免这个错误?期望移民局应该能够阻止它是否合理?

8.14 许多大学生在最终毕业之前,可能会上过几所大学的课程。如果他们可以从在第2.4.1节中讨论的联邦学生数据库中获得一份完整的成绩单(例如,用于找工作),那么这对学生来说将会非常方便[8]。为什么从该数据库中获得成绩单可能会比从各自的大学获取成绩拥有更多风险?请给出一些原因。

8.15 假设你任职的一个咨询团队正在为你所在的州设计一个投票系统,人们可以通过登录网站(从计算机、智能手机或其他连接互联网的设备)投票。需要考虑哪些重要的设计因素?讨论这样一个系统的一些优点和缺点。总体而言,你认为这是一个好主意吗?

8.16 在Therac-25的案例中,违反了《软件工程职业道德规范和实践要求》(附录A.1)中的哪些规定?

8.17 在讨论高可靠性组织机构时,我们说,其中一个重要的做法是对可能表明出现错误的线索保持警觉。在Therac-25的案例中,生产厂商遗漏或忽略了哪些线索?一些用户又遗漏或忽略了哪些线索?

8.18 找出在所有这三个案例中都违反了哪个相同的伦理要求:库存管理系统(第8.1.3节),标准化测试成绩报告错误(第8.1.3节),以及Therac-25。

8.19 在世界范围内广泛使用的一种医用输液泵的几种型号拥有一个缺陷,被称为“按键反弹。”当用户在键盘上键入药剂用量时,按键可能发生反弹,从而导致该数字被记录两次。因此,2个单位的剂量可能会变成22个单位。该输液泵可能因此给病人过量用药。在该公司被警告该输液泵可能存在问题五年后,美国食品药监局(FDA)发布了召回通知。 试找出在这个案例中不同人做错(或可能做错)的一些事情。