- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
高级软件工程 谌云莉 北京工业大学软件学院 本课程将涉及的内容 软件工程生命周期 软件需求分析 软件系统设计 软件实现与测试 软件维护 软件项目管理 软件建模与UML 本节内容 什么是软件? 软件危机的产生及消除 软件工程学的诞生 软件生命周期 软件过程 计算机软件已经成为一种驱动力 进行商业活动的引擎 现代科学研究和工程问题解决的基础 区分现代产品的关键因素 现代社会中不可缺少的 什么是软件 软件(software)是计算机系统中与硬件(hardware)相互依存的另一部分,它包括程序(program)、相关数据(data)及其说明文档(document)。 软件的发展 硬件的故障率曲线(浴缸曲线) 软件的故障率曲线(理想情况下) 软件的故障率曲线(实际情况下) 软件危机 个体化软件环境 软件作坊 急剧膨胀 软件危机(Cont.) 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题; 不能正确估计软件开发的成本和进度; 对“已完成的”软件系统,用户经常不满意; 软件质量靠不住; 软件常常不能维护; 没有建立适当的文档资料记录软件开发过程中的信息及其变化; 软件费用占计算机系统总费用的比例逐年上升等等。 软件危机介绍 软件危机包含两方面问题: 如何开发软件,以满足不断增长,日趋复杂的需求; 如何维护数量不断膨胀的软件产品。 软件危机的表现 对软件开发成本和进度的估计常常不准确。开发成本超出预算,实际进度比预定计划一再拖延的现象并不罕见。 用户对“已完成”系统不满意的现象经常发生。 软件产品的质量往往靠不住。Bug一大堆,Patch一个接一个。 软件的可维护程度非常之低。 软件通常没有适当的文档资料。 软件的成本不断提高。 软件开发生产率的提高赶不上硬件的发展和人们需求的增长。 软件危机的原因 一方面是与软件本身的特点有关 另一方面是由软件开发和维护的方法不正确有关 引入同一变化付出的代价随时间变化的趋势 消除软件危机的途径 对计算机软件有一个正确的认识 (软件≠程序) 必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。 推广使用在实践中总结出来的开发软件的成功技术和方法。 开发和使用更好的软件工具。 No Silver Bullet? “No Silver Bullet” Refired 工程 软件工程 围棋与软件工程的感想 软件工程 — 范围 当前的软件实践 软件直到测试前仅仅是忽略质量的现代技术。典型地说,软件工程师 没有计划他们的工作 匆匆地走过需求和设计 在编码时再进行设计 这些实践引入了大量的缺陷 有经验的工程师每7-10行代码就引入一个缺陷 平均中等规模的系统存在着上千个缺陷 这些缺陷的大多必须靠测试发现 通常要花去一般以上的开发时间 目前大多数的工作方式还象30年前一样 美国软件工程实践的现状 软件开发仍然很难预测,只有10%的项目能在预定的费用和进度下交付 管理规范是软件项目成功或失败的主要因素 开发过程的返工是软件过程不成熟的标志 软件工程 — 经典定义 “The establishment and use of sound engineering principles in order to obtain economically software that is reliable and works on real machines.” [Fritz Bauer] 软件工程就是为了经济地获得可靠的且能在实际机器上高效运行的软件而建立和使用的完善的工程原理。 软件工程 — 经典定义(Cont.) “The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software” [IEEE 1990] 软件工程是将系统的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中,并研究上述提到的途径。 软件工程框架 软件工程目标 目标:生产具有正确性、可用性以及开销适宜的软件产品。 正确性:软件产品达到预期功能的程度。 可用性:软件基本结构、实现及文档为用户 可用的程度。 开销适宜:软件开发、运行的整个开销满足 用户要求的程度。 从而决定了:软件过程、过程模型和工程方法的选择。 软件工程活动 活动:生产一个最终满足需求且达到工程目标的软件产品所需要的步骤。
文档评论(0)