第13章软件维护.pptxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第13章软件维护

软件工程(第三版) 第十三章 软件维护 齐治昌 谭庆平 宁洪第十三章 软件维护国防科技大学计算机学院13.1 软件维护与进化的概念13.2 软件维护的过程模型13.3 可维护性13.4 维护活动及实施策略13.5 维护的副作用13.6 逆向工程与软件重构软件维护国防科技大学计算机学院我们讨论了构建一个软件系统的全过程,但系统的交付并不意味着其生存周期的结束。系统构建之后通常还会不断地变化,我们面临的挑战是如何维护一个持续演化的系统。演化可能是由于需求和环境发生变化,也可能是软件自身暴露出问题。统计和估测结果表明,信息系统中硬件费用一般占35%,软件费用占65%,而软件后期维护费用有时竟高达软件总费用的80%,所有前期开发费用仅占20%。许多大型软件公司为维护已有软件耗费大量人力、财力。必须建立一套评估、控制和实施软件维护的机制,这就是本章重点讨论的内容。13.1 软件维护与进化的概念国防科技大学计算机学院软件维护是软件交付后,保障软件生产活动,发挥软件社会和经济效益的关键。软件交付并投入运行后,任何针对系统变更所做的工作,都是维护(maintenance)。软件维护究其原因可分为:纠错性维护、适应性维护、完善性维护和预防性维护四类。纠错性维护是为诊断和改正软件系统中潜藏的缺陷而进行的活动。测试不可能排除大型软件系统中所有的缺陷,软件交付后,用户在使用软件的过程中会发现软件潜伏的缺陷,他们会向开发人员报告并要求维护。软件维护与进化的概念国防科技大学计算机学院维护人员找出软件失效的原因,进行改正,并根据需要对需求、设计、代码、测试序列以及文档做出相应变更。最初的修改可能是临时性的,即为保持系统运行所采取的一些应急措施。事后应对维护方案仔细推敲,在软件工具的支持下进行回归测试,自动修改相应的文档。适应性维护是为适应软件运行环境变化,如操作系统变更、硬件更新,而修改软件的活动。应用软件的使用寿命很长,多数超过十年,但运行环境更新通常不会超过十年,CPU基本是一年半一代,操作系统不断地推出新版本,外部设备和其他系统元素也频繁升级和变化,因此适应性维护是十分必要的。软件维护与进化的概念国防科技大学计算机学院完善性维护是根据用户在软件使用过程中提出的一些新需求实施的维护活动。应用软件运行期间,用户可能请求增加新功能、建议修改已有功能或提出某些改进意见。完善性维护通常占所有软件维护工作量的一半以上。预防性维护是优化软件系统结构和可理解性,改善可维护性和可靠性。软件长期维护会使体系结构变坏,难以理解,增加维护费用,降低运行效率。这类维护活动涉及逆向工程(reverse engineering)和软件重构。留待13.6节专门讨论。软件维护与进化的概念国防科技大学计算机学院调查表明:约有65%的维护属完善性维护;18%的维护属适应性维护;17%的维护属纠错性维护。修补系统缺陷并不是费用最高的维护活动,适应新环境的系统进化和实现新需求以及需求变更占用了绝大部分的维护工作量。实践中,几类维护之间没有明确界限。如,在使软件适应新环境的同时,还可能增加新功能,充分利用该环境提供的服务;某个软件失误可能是因为系统用事先未预料到的方式工作,修正这类失误的另一种方法是改变系统的这种工作方式,等等。软件维护与进化的概念国防科技大学计算机学院在前几章讨论系统开发时,主要关注如何生产能够实现需求并能正确运行的代码。维护不仅要理解软件制品,而且要了解用户对系统运行的意见,预测可能出现的问题,考虑业务需求变化带来的软件功能的新变更,以及硬件、软件或接口变更带来的系统变化。维护涉及的范围更广,内容更多。13.2 软件维护的过程模型国防科技大学计算机学院实践证明,有重要应用价值的软件,生存周期一般很长,软件维护不可避免。从软件开发的螺旋模型看,软件维护是软件开发的继续,是软件的进化。多数维护团队已不再是该软件的开发团队,软件维护面临许多困难。本节主要讨论软件维护的主要内容、软件工程的目标原则对这些活动的影响、软件维护的成本、软件维护存在的问题等。13.2.1 结构化与非结构化的维护国防科技大学计算机学院一个维护需求(申请)被接收后,可能发生的事件如图13.1所示。如果软件配置中唯一可用的是源代码,那么维护只能从“苦读”代码开始。由于缺乏内部文档,读代码是一项很枯燥、很困难的工作。软件系统的许多微妙之处(例如软件总体结构、全局数据、系统接口、性能和设计方面的约束等)不是搞不清楚就是常常被误解,以致无法估量对源代码修改所产生的后果。特别是,由于没有保存测试记录,使“回归测试”无法进行。对于没有使用良好开发方法开发的软件,不得不采用非结构化的方式进行维护并为此付出高昂的代价(浪费大量人力,让维护人员有挫折感)。图13.1 非结构化与结构化维护国防科技大学计算机

文档评论(0)

yanpan1 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档