第9章 软件维护

第9章 软件维护

ID:20353926

大小:217.00 KB

页数:36页

时间:2018-10-12

第9章 软件维护_第1页
第9章 软件维护_第2页
第9章 软件维护_第3页
第9章 软件维护_第4页
第9章 软件维护_第5页
资源描述:

《第9章 软件维护》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第9章软件维护1软件维护软件维护是软件生命周期的最后一个阶段,它处于系统投入生产性运行以后的时期中,因此不属于系统开发过程。软件维护需要的工作量非常大,虽然在不同应用领域维护成本差别很大,但是,平均说来,大型软件的维护成本高达开发成本的四倍左右。目前国外许多软件开发组织把60%以上的人力用于维护已有的软件,而且随着软件数量增多和使用寿命延长,这个百分比还在持续上升。将来维护工作甚至可能会束缚住软件开发组织的手脚,使他们没有余力开发新的软件。本书前面各章讲述的软件工程方法学的主要目的就是要提高软件的可维护性,减少软件

2、维护所需要的工作量,降低软件系统的总成本。29.1软件维护的定义3软件维护的定义所谓软件维护就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。我们可以通过描述软件交付使用后可能进行的四项活动,具体地定义软件维护。因为软件测试不可能暴露出一个大型软件系统中所有潜藏的错误,所以必然会有第一项维护活动:在任何大型程序的使用期间,用户必然会发现程序错误,并且把他们遇到的问题报告给维护人员。我们把诊断和改正错误的过程称为改正性维护。计算机科学技术领域的各个方面都在迅速进步,大约每过若干个月就有新一代的硬

3、件宣告出现,经常推出新操作系统或旧系统的修改版本,时常增加或修改外部设备和其他系统部件;另一方面,应用软件的使用寿命却很容易超过十年,远远长于最初开发这个软件时的运行环境的寿命。因此,适应性维护,也就是为了和变化了的环境适当地配合而进行的修改软件的活动,是既必要又经常的维护活动。4软件维护的定义当一个软件系统顺利地运行时,常常出现第三项维护活动:在使用软件的过程中用户往往提出增加新功能或修改已有功能的建议,还可能提出一般性的改进意见。为了满足这类要求,需要进行完善性维护。这项维护活动通常占软件维护工作的大部分。当为

4、了改进未来的可维护性或可靠性,或为了给未来的改进奠定更好的基础而修改软件时,出现了第四项维护活动。这项维护活动通常称为预防性维护,目前这项维护活动相对说比较稀少。从上述关于软件维护的定义不难看出,软件维护绝不仅限于纠正使用中发现的错误,事实上在全部维护活动中一半以上是完善性维护。国外的统计数字表明,完善性维护占全部维护活动的50%~66%,改正性维护占17%~21%,适应性维护占18%~25%,其他维护活动只占4%左右。59.2维护的特点69.2.1结构化维护与非结构化维护的对比如果软件配置的唯一成分是程序代码,那

5、么维护活动从艰苦地评价程序代码开始,而且常常由于程序内部文档不足而使评价更困难。诸如软件结构、全程数据结构、系统接口、性能和(或)设计约束等微妙的特点是难于搞清的,而且常常误解了这一类特点。最终对程序代码所做的改动的后果是难于估量的:因为没有测试方面的文档,所以不可能进行回归测试(即为了保证所做的修改没有在以前可以正常使用的软件功能中引入故障而重复过去做过的测试)。可惜,我们正在进行非结构化维护,并且正在为此而付出代价(浪费精力和受挫折),这种维护方式是没有使用良好定义的方法论开发出来的软件的必然结果。79.2.1

6、结构化维护与非结构化维护的对比如果有一个完整的软件配置存在,那么维护工作从评价设计文档开始,确定软件重要的结构特点、性能特点以及接口特点;估量要求的改动将带来的影响,并且计划实施途径。然后首先修改设计并且对所做的修改进行仔细复查。接下来编写相应的源程序代码;使用在测试说明书中包含的信息进行回归测试;最后,把修改后的软件再次交付使用。刚才描述的事件构成结构化维护,它是在软件开发的早期应用软件工程方法论的结果。虽然有了软件的完整配置并不能保证维护中没有问题,但是确实能减少精力的浪费并且能提高维护的总体质量。89.2.2

7、维护的代价在过去的几十年中,软件维护的费用稳步上升。1970年用于维护已有软件的费用只占软件总预算的35%~40%,1980年上升为40%~60%,1990年上升为70%~80%。维护费用只不过是软件维护的最明显的代价,其他一些现在还不明显的代价将来可能更为人们所关注。因为可用的资源必须供维护任务使用,以致耽误甚至丧失了开发的良机,这是软件维护的一个无形的代价。其他无形的代价还有:①当看来合理的有关改错或修改的要求不能及时满足时将引起用户不满;②由于维护时的改动,在软件中引入了潜伏的故障,从而降低了软件的质量;③当

8、必须把软件工程师调去从事维护工作时,将在开发过程中造成混乱。99.2.2维护的代价软件维护的最后一个代价是生产率的大幅度下降,这种情况在维护旧程序时常常遇到。例如,据Gausler在1976年的报道,美国空军的飞行控制软件每条指令的开发成本是75美元,然而维护成本大约是每条指令4000美元,也就是说,生产率下降了50倍以上。用于维护工作的劳动可以分成生产性活

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。