- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《软件工程》第10章 软件维护
第 10 章 软件维护 邢承杰 北京大学计算中心管理信息中心 E-mail: xingcj@pku.edu.cn 软件维护 软件维护是软件生存周期中最后一个阶段,也是历时最长、人力和资源耗费最多的一个阶段。在前面讨论软件的开发过程中,一直在强调软件的可维护性。这是因为一个软件应用系统在交付使用之后,由于需求和环境的变化以及自身暴露的问题,需要不断对它进行修改、扩充和完善,而维护软件的成本往往远高于开发软件的成本。 本章主要内容 10.1 软件维护的定义,目标与任务 10.2 软件维护的类型 10.3 软件的可维护性 10.1.1 软件维护的定义 软件维护:软件系统已完成开发工作并交付使用以后,为维持软件产品的持续、高效地运行和系统功能的不断升级而需要对软件产品进行后续的修改工作。 维护是软件生命周期中花钱最多,延续时间最长的活动,直至废弃不用为止。 开发时间 1-3年,维护时间可达5年到10年; 开发费用1,维护费用2以上,甚至达到40-50倍。 10.1.2 软件维护的目标 软件维护工作的目标是:不断地、持续地改进、扩充、完善软件系统,以提高系统运行效率,并尽量延长系统的使用寿命,为用户创造更大的价值。 软件的维护与硬件维护不同,它不仅能改正软件中存在的错误或误差,而且还能增强或扩充软件系统的整体功能。 据统计,为增强或扩充软件系统功能所做的维护要占到总维护工作的75%左右,而为改正软件中错误所做的维护仅占25%。 10.1.3 软件维护的任务 一个软件开发机构60%的精力用在维护现有的软件上。随着产品的增加,这个比例还将不断提高。不仅当前的软件版本要维护,仍在使用的旧版本和即将投入使用的新版本也将需要维护。 在软件整个运行周期中,不仅要解决原有问题,还要解决修改过程中产生的新问题。因此软件维护是一个无穷尽的过程。 正确认识软件维护工作 随着软件的频繁使用,某些原来隐藏的问题会逐渐暴露出来,用户还会发现一些使用不便或不能满足需求之处,这就有必要再次投入一定数量的人力和资源,开展软件的维护工作。 如果不能充分认识到维护工作的重要性和迫切性,在技术上、人力上和资金上给予足够的重视,必定使已开发的软件无法发挥应有的效益。 在70年代后期,人们的主要注意力一直集中在开发阶段,着重研究设计方法及其工具,忽视软件的维护。 近年来人们开始认识到维护好软件的重要意义,开始从思想上、方法上重视软件的维护工作。 软件开发和维护成本的比例变化 70年代 80年代 90年代 35%~40% 40%~60% 70%~80% 本章主要内容 10.1 软件维护的定义,目标与任务 10.2 软件维护的类型 10.3 软件的可维护性 10.2 软件维护的类型 软件维护的内容非常广泛,人们一般将软件运行期间对软件进行的修改称之为维护。要求进行软件维护的原因很多,归结起来主要有三个原因: 改正在特定的使用条件下暴露出来的一些潜在程序错误或设计缺陷; 因在软件使用过程中数据环境发生变化(例如一个事务处理代码发生变化)或处理环境发生变化(例如安装了新的硬件或操作系统),需要修改软件以适应这种变化。 用户和数据处理人员在使用时常提出改进现有功能,增加新的功能,以及改善总体性能的要求,为满足这些要求,就需要修改软件把这些要求纳入到软件之中。 10.2 软件维护的类型(续) 根据这三个软件维护的原因,将软件维护分成四种类型: 改正性维护 适应性维护 完善性维护 预防性维护 10.2.1 改正性维护 改正性维护是在软件运行中发生异常或故障时进行的维护。 究其故障产生的原因,可能是开发过程中某个环节上的隐蔽错误造成的。由于开发过程中实施的软件测试工作不彻底、不完全,必然会有一部分隐藏的错误被带到运行阶段来。这种错误或障碍常常是由于遇到了从未用过的输入数据组合的情况或发生在与其他软件的接口、与硬件的接口处出现的问题。 10.2.1 改正性维护(续) 实践表明,软件测试和排错不可能完全暴露并改正一个大型软件系统中的所有错误。 经过统计分析,在典型的市场销售的软件包中,还有缺陷的代码行约占代码总行数的3%。正式投入使用的软件中含有错误是不足为奇的,即使是已运行多年的软件。 改正性维护举例: Windows操作系统经常发布的安全性的各种补丁就是一种改正性维护。 日常工作中的程序举例:数据库字段为null和空字符的判定。 10.2.2 适应性维护 适应性维护是指,为使软件系统适应不断变化的运行环境而进行的修改过程。 随着计算机的飞速发展,外部环境(新的硬、软件配置)或数据环境(数据库、数据格式、数据输入
文档评论(0)