- 1、本文档共63页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第11章--软件工程剖析
第11章 软件工程 重点: 软件危机, 软件工程概念, 软件生命周期, 软件开发步骤。 难点: 软件过程模型, 软件开发步骤。 11.1 软件危机和软件工程 1.软件危机 软件开发过程中遇到了许多问题 软件开发进度难以预测 IBM公司1963至1966开发OS/360系统,共有4000多个模块,约100万条指令,投入5000人/年,耗资数亿美元,结果还是延期交付。在交付使用后的系统中仍发现大量(2000个以上)的错误。 11.1 软件危机和软件工程 1.软件危机 ARIANE 5 火箭(阿丽亚娜火箭) –1996 年6 月,耗资70 亿美元, 发射37 秒后爆炸 软件错误 –程序中试图将64 位浮点数转换成16 位整数时产生溢出 –缺少错误处理程序对数据溢出进行管理 严格地遵守软件确认过程可以避免这种错误。 11.1 软件危机和软件工程 1.软件危机 概念:软件开发和维护过程中遇到的一系列严重问题 。 表现形式: 软件开发成本和开发进度的估计往往很不准确。 用户对“已完成”的软件系统不满意的现象经常发生。 软件产品的质量往往不可靠。 软件没有适当的文档资料,软件通常是不可维护的。 软件成本在计算机系统总成本中所占比例逐年上升。 总之开发成本高,周期长,质量差,满足不了市场需求; 11.1 软件危机和软件工程 2. 软件危机产生的原因 软件本身的特点; 软件的规模越来越大,结构越来越复杂; 软件开发的管理困难; 轻视软件维护的重要性,占总费用的55-70%; 软件开发费用不断增加; 软件开发技术落后; 生产管理方式 生产方式落后,开发工具落后; 仅仅重视程序而忽略软件配置其余成分; 忽略软件定义时期的工作; 11.1 软件危机和软件工程 3. 消除软件危机的途径 充分认识到软件的定义; 认识到:软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目; 必须充分吸取和借鉴各种工程项目所积累的行之有效的原理、概念、技术和方法; 开发和使用更好的软件工具; 总之,从管理和技术(方法和工具)两方面解决软件危机。 11.1 软件危机和软件工程 4. 软件工程 软件工程就是运用系统的、规范的和可度量的方法来开发、运行和维护软件的系统工程,即将工程化应用于软件中; (IEEE ,1993) 是研究大规模程序设计的方法、工具和管理的一门工程科学。 是消除软件危机的途径。 11.1 软件危机和软件工程 5. 软件工程的基本原理 B. W. Boehm总结的7条基本原则 1)用分阶段的生命周期计划进行严格的管理。 50%以上的失败项目是由于计划不周而造成的。六类计划:项目概要计划、里程碑计划、项目控制计划、产品控制计划、验证计划和运行维护计划。 2)坚持进行阶段评审。 始终重视软件质量,及早发现错误。 3)实行严格的产品控制。 不应随意改变需求,严格评审。 4)采用现代程序设计技术。 方法比气力更有效。 11.1 软件危机和软件工程 5. 软件工程的基本原理 5)结果应能清楚地审查 。 规定开发组织的责任和产品标准, 准确审查结果。 6)开发小组的人员应该少而精。 开发人员的素质和数量是影响软件质量和开发效率的重要因素。构建和维持少而精的开发团队甚至标杆团队是软件工程的一条基本原理。 7)承认不断改进软件工程实践的必要性。 积极主动地采纳新的软件技术,而且要注意不断总结经验。 11.2 软件开发过程模型 瀑布模型 原型模型 增量模型 螺旋模型 原型模型 11.2 软件开发过程模型 原型模型 适用范围: 已有类似原型或有原型开发工具; 进行产品移植或升级。 11.2 软件开发过程模型 增量模型 思想: (1) 非整体开发的思想,遵循递增方式来进行软件开发。把软件产品作为系统的增量构件来设计、编码、集成和测试。每开发一部分,向用户展示一部分。 (2)要开发一个大系统,先开发其中的一个核心模块(子系统),然后再开发其他模块或子系统,一个一个增加,像搭积木一样直到整个系统开发完毕为止。 11.2 软件开发过程模型 风险更大的增量模型 此模型不同构件并行构造,可能加快工程进度,但是有构件无法集成到一起的风险。 11.2 软件开发过程模型 螺旋模型 软件开发有各种风险: 产品交付后用户不满意; 到了交付日期软件还没有开发出来; 开发成本超出预算; 产品完成前开发人员跳槽了; 产品投放市场之前,出现了功能相近、价格更低的软件等等。 必须使风险降至最低。 螺旋模型缺点: 需要有丰富的风险评估专家。 如果每次迭代的效率不高,致使迭代次数过多,将会增加成本并推迟提交时间; 螺旋模型适用范围: 主要适用于大规模软件项目。支持需求不明确的大型软件系统的开发,并支持面向
文档评论(0)