- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
第八章维护
软件维护是软件生命周期的最后一个阶段,它处于系统投入生产性运行以后的时期,因此不属于系统开发过程。要想充分发挥软件系统的作用,产生良好的经济效益和社会效益,就必须搞好软件的维护。软件维护需要的工作量非常大,虽然在不同应用领域维护成本差别很大,但是,平均说来,大型软件的维护成本高达开发成本的四倍左右。目前国外许多软件开发组织把60%以上的人力用于维护已有的软件,而且随着软件数量增多和使用寿命延长,这个百分比还在持续上升。典型的情况是,软件维护费用与开发费用的比例为2﹕1,一些大型软件的维护费用,甚至达到开发费用的40~50倍。这也是造成软件成本大幅度上升的一个重要原因。
本书前面各章讲述软件工程方法学的主要目的就是要提高软件的可维护性,减少软件维护所需要的工作量,降低软件系统的总成本。
8.1软件维护的概念
软件维护就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。软件维护的最终目的,是为了满足用户对已开发产品的性能与运行环境不断提高的要求,进而延长软件的寿命。要求进行维护的原因多种多样,归结起来有三种类型:
(1)改正在特定的使用条件下暴露出来的一些潜在的程序错误或设计缺陷;
(2)因在软件使用过程中数据环境变化或处理环境变化而需要修改软件以适应变化;
(3)用户和数据处理人员在使用时提出改进现有功能,增加新的功能,以改善总体性能。按照每次进行维护的具体目标的不同,软件维护可以分为以下四类:
(1)完善性维护
无论是应用软件还是系统软件,在使用软件的过程中用户往往都会提出增加新功能或修改已有功能的建议,还可能提出一般性的改进意见。为了满足这类要求,需要进行完善性维护。一般开发后投入使用的是第一版,以后可能会有第二版、第三版……。在整个软件维护工作量中,完善性维护约占50%~60%。
(2)适应性维护
计算机科学技术领域的各个方面都在迅速进步,大约每过36个月就有新一代的硬件宣告出现,经常推出新操作系统或旧系统的修改版本,时常增加或修改外部设备和其他系统部件;另一方面,应用软件的使用寿命很容易超过十年,远远长于最初开发这个软件时的运行环境的寿命。因此,适应性维护,也就是为了和变化了的环境适当地配合而进行的修改软件的话动,是既必要又经常的维护活动。这类维护大约占整个维护工作量的25%左右。
(3)纠错性维护
因为软件测试不可能暴露出一个大型软件系统中所有潜藏的错误,所以在任何大型程序的使用期间,用户必然会发现程序错误,并且把他们遇到的问题报告给维护人员。我们把诊断和改正错误的过程称为纠错性维护,也叫改正性维护。这类维护约占总维护量的20%左右。
(4)预防性维护
当为了改进未来的可维护性或可靠性,或为了给未来的改进奠定更好的基础而修改软件时,出现了通常称为预防性维护的维护活动。目前这项维护活动相对说比较少,主要是对早期开发且仍在使用的软件进行的。这类维护约占维护总量的4%左右。
从上述关于软件维护的定义和分类可以看出,软件维护绝不仅仅是在运行过程中纠正发现的错误,事实上在软件维护活动中—半以上的工作是进行完善性维护。应该注意,上述四类维护活动都必须应用于整个软件配置,维护软件文档和维护软件的可执行代码是同样重要的。
评价代码 重编程序评价设计
评价代码
重编程序
评价设计
8.2软件维护的特点
为了理解软件维护的特点,下面从三个不同的方面进行讨论。
8.2.1结构化维护和非结构化维护
对于软件系统的每一次维护要求,可根据系统的配置情况,进行不同方式的维护工作。工作方式不同,所付出的工作量差别也较大。
图8.1描绘了作为维护要求的可能发生的事件流。
维护要求
—配置
计划途径?
计划途径
修改设计
重编程序
复查复查
复查
交付使用
图8.1结构化维护与非结构化维护的对比
如果软件配置是程序代码,那么维护活动是很艰苦的,必须从评价软件开始。由于缺乏内部文档资料,使得这种评价工作变得相当复杂且难以进行。如软件结构、全程数据结构、系统接口、性能和设计约束等特点不清楚的话,程序代码就很难弄清楚,甚至被曲解。特别是由于没有保存测试纪录,使回归测试无法进行。所以改变程序代码所引起的后果将难以确定,不仅浪费了人力物力,还会使维护人员的积极性受到打击。这就是没有使用软件工程方法开发软件的必然结果。
如果有—个完整的软件配置存在,那么维护工作从评价设计文档开始,根据文档来确定软件重要的结构特点、性能特点以及接口特点,估计改正或修改将带来的影响,并且计划实施途径。然后修改设计,进行评审,编写相应的源程序代码,并使用在测试说明书中包含的信息进行回归测试,最后把修改后的软件再次交付使
文档评论(0)