软件工程 课件 第8章 软件运行维护.pptx

  1. 1、本文档共35页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Software第8章软件运行维护本章内容 :软件正式投入运行期间的维护工作软件维护的定义;维护策略;非结构化和结构化维护的区别;软件维护存在的问题;软件维护的过程;如何提高软件的可维护性;软件逆向工程和再工程技术。engineeringSoftware8.1 软件维护简介?软件的运行维护阶段是软件生命周期的最后一个阶段,其基本任务是保证软件在一个相当长的时期能够正常运行。软件维护工作量很大,大型软件维护成本高达开发成本的4倍左右。软件工程的主要目的之一就是要提高软件的可维护性,减少软件维护所需要的工作量,降低软件系统的总成本。8.1.1 软件维护的定义软件维护就是在软件已经交付使用之后,为了改正错误、提高性能或满足新的需要而修改软件的过程。主要4种维护活动:改正性维护、适应性维护、完善性维护和预防性维护。国外统计数据:完善性维护:50~66%,改正性维护:17~21%,适应性维护:18~25%,其他维护活动:4%左右。engineeringSoftware8.1.1 软件维护的定义4种维护活动不仅要维护软件的可执行代码,还包括软件文档的维护。1. 改正性维护改正性维护是为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应进行的诊断和改正错误的过程。2. 适应性维护为了适应环境的变化而修改软件的活动,是既必要又经常的维护活动。例如,需要对已运行的软件进行改造,以适应网络环境或已升级改版的操作系统要求。engineeringSoftware8.1.1 软件维护的定义3. 完善性维护为了满足用户新的功能与性能要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。例如,修改职工工资程序增加扣除工资功能;修改某程序增加联机在线帮助功能;调整某软件的用户操作界面;缩短某软件的应答时间,等。4. 预防性维护为了改进未来的可维护性或可靠性,为了适应未来的软硬件环境的变化,或为了给未来的改进奠定更好的基础而修改软件。例如将专用报表功能改成通用报表生成功能,以适应将来报表格式的变化。预防性维护占比很小,但不应忽视,条件具备时应主动进行预防性维护,为未来的修改与调整奠定更好的基础。engineeringSoftware8.1.2 软件维护的策略软件维护活动花费的工作量占整个生存期工作量的70%以上(工作量的比例直接反映了成本的比例)。影响维护工作量的因素主要有6种:系统规模的大小;采用的程序设计语言;系统年龄的大小;数据库技术的应用水平;所采用的软件开发技术及软件开发工程化的程度;其他因素:比如应用的类型、数学模型、任务的难度、IF嵌套层数、索引或下标数等等。James Martin等提出了一些策略,以控制维护成本:对于改正性维护,应用一些诸如数据库管理系统、软件开发环境、程序自动生成系统和高级(第四代)语言等新技术,可以大大提高软件的可靠性,并减少进行改正性维护的需要。engineeringSoftware8.1.2 软件维护的策略适应性维护不可避免,可以采用以下策略加以控制:(1)配置管理时,把硬件、操作系统和其他相关环境因素的可能变化考虑在内。(2)把与硬件、操作系统以及其他外围设备有关的程序归到特定的程序模块中。(3)使用内部程序列表、外部文件以及处理的例行程序包,可为维护时修改程序提供方便。(4)使用面向对象技术,增强软件系统的稳定性,易于修改和移植。利用以上列举两类的方法,也可以减少完善性维护的工作量。此外,建立软件系统的原型,在实际系统开发之前提供给用户。用户通过研究原型,进一步完善他们的功能要求,可以减少以后完善性维护的需要。engineeringSoftware8.1.3 非结构化和结构化维护的区别1. 非结构化维护(软件配置的唯一成分是程序代码)维护活动从艰苦地评价程序代码开始,常常由于程序内部文档不足而使评价更困难,对于软件结构、全程数据结构、系统接口、性能和(或)设计约束等经常会产生误解,而且对程序代码所做的改动的后果也是难于估量的。非结构化维护需要付出很大代价,这种维护方式是没有使用良好定义的方法学开发出来的软件的必然结果。engineeringSoftware8.1.3 非结构化和结构化维护的区别2. 结构化维护?(存在完整的软件配置)(1)评价设计文档,确定软件重要的结构、性能以及接口等特点(2)估量要求的改动将带来的影响,并且计划实施途径(3)修改设计并且对所做的修改进行仔细复查(4)编写相应的源程序代码(5)使用测试说明书中包含的信息进行回归测试(6)修改后的软件再次交付使用engineeringSoftware8.1.4 软件维护存在的问题定义和开发阶段如果无严格、科学地管理和规划,软件维护阶段必会出现问题:(1)理解别人写的程序通常非常困难。(仅有程序代码

您可能关注的文档

文档评论(0)

xiaobao + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档