1 / 21
文档名称:

软件工程课件.ppt

格式:ppt   大小:259KB   页数:21页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

软件工程课件.ppt

上传人:sbuufeh058 2018/5/5 文件大小:259 KB

下载得到文件列表

软件工程课件.ppt

相关文档

文档介绍

文档介绍:第8章维护
软件维护的定义
软件维护的特点
软件维护过程
软件的可维护性
预防性维护
软件再工程过程
小结
在软件产品被开发出来并交付用户使用之后,就进入了软件的运行维护阶段。这个阶段是软件生命周期的最后一个阶段,其基本任务是保证软件在一个相当长的时期能够正常运行。
软件维护需要的工作量很大,平均说来,大型软件的维护成本高达开发成本的4倍左右。目前国外许多软件开发组织把60%以上的人力用于维护已有的软件,而且随着软件数量增多和使用寿命延长,这个百分比还在持续上升。将来维护工作甚至可能会束缚住软件开发组织的手脚,使他们没有余力开发新的软件。
软件工程的目的是要提高软件的可维护性,减少软件维护所需要的工作量,降低软件系统的总成本
软件维护的定义
所谓软件维护就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。可以通过描述软件交付使用后可能进行的4项活动,具体地定义软件维护。
因为软件测试不可能暴露出一个大型软件系统中所有潜藏的错误,所以必然会有第一项维护活动:在任何大型程序的使用期间,用户必然会发现程序错误,并且把他们遇到的问题报告给维护人员。把诊断和改正错误的过程称为改正性维护。
适应性维护,也就是为了和变化了的环境适当地配合而进行的修改软件的活动,是既必要又经常的维护活动。
当一个软件系统顺利地运行时,常常出现第三项维护活动:在使用软件的过程中用户往往提出增加新功能或修改已有功能的建议,还可能提出一般性的改进意见。为了满足这类要求,需要进行完善性维护。这项维护活动通常占软件维护工作的大部分
当为了改进未来的可维护性或可靠性,或为了给未来的改进奠定更好的基础而修改软件时,出现了第四项维护活动。这项维护活动通常称为预防性维护,目前这项维护活动相对比较少。
应该注意,上述4类维护活动都必须应用于整个软件配置,维护软件文档和维护软件的可执行代码是同样重要的。
软件维护的特点
结构化维护与非结构化维护差别巨大
维护的代价巨大
维护的问题很多
结构化维护与非结构化维护差别巨大

如果软件配置的惟一成分是程序代码,那么维护活动从艰苦地评价程序代码开始,而且常常由于程序内部文档不足而使评价更困难。非结构化维护需要付出很大代价(浪费精力并且遭受挫折的打击),这种维护方式是没有使用良好定义的方法学开发出来的软件的必然结果。

如果有完整的软件配置存在,那么维护从评价设计文档开始,确定软件重要结构特点、性能特点以及接口特点;估量要求的改动将带来的影响,并计划实施途径。然后首先修改设计并且对所做的修改进行仔细复查。接下来编写源程序代码;使用测试说明书中包含的信息进行回归测试;最后,把修改后的软件再次交付使用
维护的代价高昂
在过去的几十年中,软件维护的费用稳步上升。1970年用于维护已有软件的费用只占软件总预算的35%~40%,1980年上升为40%~60%,1990年上升为70%~80%。
用于维护工作的劳动可以分成生产性活动(如编写程序代码等)和非生产性活动(如理解程序等)。下述表达式给出维护工作量的一个模型:M=P+K×exp(c-d)
其中:M是维护用的总工作量,P是生产性工作量,K是经验常数,c是复杂程度(非结构化设计和缺少文档都会增加软件的复杂程度),d是维护人员对软件的熟悉程度。
上面的模型表明,如果软件的开发途径不好(即,没有使用软件工程方法学),而且原来的开发人员不能参加维护工作,那么维护工作量和费用将指数地增加。
维护问题多
与软件维护有关的绝大多数问题,都可归因于软件定义和软件开发的方法有缺点。在软件生命周期的头两个时期没有严格而又科学的管理和规划,几乎必然会导致在最后阶段出现问题。下面列出和软件维护有关的部分问题:
1)理解别人写的程序通常非常困难,而且困难程度随着软件配置成分的减少而迅速增加。
2)需维护的软件没有合格的文档或者文档不足。
3)不能指望由开发人员给我们仔细说明软件。
4)绝大多数软件在设计时没有考虑将来的修改
5)软件维护不是一项吸引人的工作。
软件维护过程
维护过程本质上是修改和压缩了的软件定义和开发过程。首先必须建立一个维护组织,随后必须确定报告和评价的过程,而且必须为每个维护要求规定一个标准化的事件序列。此外,还应建立一个适用于维护活动的记录保管过程,并且规定复审标准

通常并不需要建立正式的维护组织,但即使一个小的软件开发团体非正式地委托责任也是绝对必要的。每个维护要求都通过维护管理员转交给相应的系统管理员去评价。系统管理员是被指定去熟悉一部分产品程序的技术人员