正在加载图片...
面向对象软件工程实践指南 当成千上万的球迷离开哈特福德体育场几个小时之后,钢结构的体育场屋顶就被湿雪 压垮了。原因是CAD软件的程序员在设计体育场时错误地假设钢结构屋顶的支撑仅承受纯 压力。但当其中的一个支撑意外地因大雪垮塌后,引发了连锁反应,导致屋顶的其余部分像 多米诺骨牌一样相继倒掉。 3.苏联天然气管道爆炸(1982) 损失:数百万美元,并严重破坏了苏联经济 控制软件出的故障造成跨西伯利亚输气管道压力急剧上升,导致了地球历史上最大的 人为非核爆炸。据说,CA侦探在苏联购买的用于控制输气管道的系统内植入了一个BUG。 4.几乎引发第三次世界大战的导弹误报事件(1983) 损失:将近全人类的毁灭 苏联预警系统误报美国发射了5枚弹道导弹。幸运的是,苏联的执勤官认为如果美国 真的要攻击苏联的话,发射的导弹肯定不止5枚,因此他把这次攻击报告界定为一次误报。 误报的原因是苏联预警系统中有一个BUG,该系统误将阳光反射云顶识别为导弹。 5.医疗器械致死案(1985) 损失:死亡3人,严重受伤3人 加拿大的Therac-.25放射治疗仪发生了故障,令病人受到了致命的辐射。原因是由于软 件中一个称为竞态条件(race condition)的细小BUG,一名技术人员可能在病人尚未进行适 当防护的情况下意外地将Therac--25配置为高能模式。 在http:/www.devtopics..com/20-famous-.software-disasters/上可以找到更多这样的例子。 软件危机的出现,让人们对软件的开发有了更深入的研究和更多的反思,并开始改变对软件 的一些不正确看法。易懂、易用、易修改和易维护等软件工程提倡的理念逐渐被大众所接受。 1.13软件工程的提出 在1968年北大西洋公约组织的计算机科学家的会议上集中讨论了如何应对软件危机”, 在这次会议上,“软件工程”也被第一次正式提出。 软件工程是一门研究系统、规范、合理化软件开发的学科。软件工程运用工程学的原 则和方法重新制定了软件开发的流程和方案。具体来说,软件工程涉及到两大方面主要内容, 首先是软件开发的技术,其次是软件开发的管理。这二者缺一不可。其中软件开发技术主要 包括了软件开发方法、工具、环境等,软件开发管理则包括了软件开发周期管理、开发人员 管理、进度管理等内容。 软件工程发展至今,大致可以分为结构化软件工程(也称为传统软件工程),面向对象 软件工程(也称为现代软件工程)。结构化软件工程围绕功能、数据和数据流展开分析和设 计,以模块为中心,自顶向下、逐步求精完成软件设计,系统是实现模块功能的函数和过程 的集合。而面向对象软件工程则以对象为核心,通过识别系统中的类,定义对象之间的交互, 考虑类的代码实现从而完成系统分析和设计。 然而,软件工程目前依然不够成熟。不同的人对软件开发持有不同的观点,如以CAR面向对象软件工程实践指南 5 当成千上万的球迷离开哈特福德体育场几个小时之后,钢结构的体育场屋顶就被湿雪 压垮了。原因是 CAD 软件的程序员在设计体育场时错误地假设钢结构屋顶的支撑仅承受纯 压力。但当其中的一个支撑意外地因大雪垮塌后,引发了连锁反应,导致屋顶的其余部分像 多米诺骨牌一样相继倒掉。 3. 苏联天然气管道爆炸 (1982) 损失: 数百万美元,并严重破坏了苏联经济 控制软件出的故障造成跨西伯利亚输气管道压力急剧上升,导致了地球历史上最大的 人为非核爆炸。据说,CIA 侦探在苏联购买的用于控制输气管道的系统内植入了一个 BUG。 4. 几乎引发第三次世界大战的导弹误报事件 (1983) 损失: 将近全人类的毁灭 苏联预警系统误报美国发射了 5 枚弹道导弹。幸运的是,苏联的执勤官认为如果美国 真的要攻击苏联的话,发射的导弹肯定不止 5 枚,因此他把这次攻击报告界定为一次误报。 误报的原因是苏联预警系统中有一个 BUG,该系统误将阳光反射云顶识别为导弹。 5. 医疗器械致死案 (1985) 损失: 死亡 3 人,严重受伤 3 人 加拿大的 Therac-25 放射治疗仪发生了故障,令病人受到了致命的辐射。原因是由于软 件中一个称为竞态条件(race condition)的细小 BUG,一名技术人员可能在病人尚未进行适 当防护的情况下意外地将 Therac-25 配置为高能模式。 在 http://www.devtopics.com/20-famous-software-disasters/上可以找到更多这样的例子。 软件危机的出现,让人们对软件的开发有了更深入的研究和更多的反思,并开始改变对软件 的一些不正确看法。易懂、易用、易修改和易维护等软件工程提倡的理念逐渐被大众所接受。 1.13 软件工程的提出 在1968年北大西洋公约组织的计算机科学家的会议上集中讨论了如何应对“软件危机”, 在这次会议上,“软件工程”也被第一次正式提出。 软件工程是一门研究系统、规范、合理化软件开发的学科。软件工程运用工程学的原 则和方法重新制定了软件开发的流程和方案。具体来说,软件工程涉及到两大方面主要内容, 首先是软件开发的技术,其次是软件开发的管理。这二者缺一不可。其中软件开发技术主要 包括了软件开发方法、工具、环境等,软件开发管理则包括了软件开发周期管理、开发人员 管理、进度管理等内容。 软件工程发展至今,大致可以分为结构化软件工程(也称为传统软件工程),面向对象 软件工程(也称为现代软件工程)。结构化软件工程围绕功能、数据和数据流展开分析和设 计,以模块为中心,自顶向下、逐步求精完成软件设计,系统是实现模块功能的函数和过程 的集合。而面向对象软件工程则以对象为核心,通过识别系统中的类,定义对象之间的交互, 考虑类的代码实现从而完成系统分析和设计。 然而,软件工程目前依然不够成熟。不同的人对软件开发持有不同的观点,如以 C.A.R
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有