欢迎来到天天文库
浏览记录
ID:48151051
大小:291.50 KB
页数:31页
时间:2020-01-16
《软件工程第五讲.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、软件维护软件维护是软件生命周期的最后一个阶段,软件从部署完毕到退役的整个时间内对软件的改动所做的工作都是维护的内容。在项目的各个阶段对项目的可维护性进行充分考虑、对可维护性的严格评审以及在维护阶段有效地组织和管理维护活动,则是保证软件可维护性和降低维护费用的关键。本章重点内容:维护的主要内容、维护的流程、如何在软件的生产过程各个阶段保证软件的可维护性目标。软件维护的基本内容软件维护的主要目标是使已部署的软件按照需求规格说明书的要求(或用户的新需求)运行,这要求软件不仅要满足用户所需要的各项功能需求,同时还要满足
2、用户对软件的非功能需求。软件维护的基本内容则包含了实现这些目标所做的全部工作。软件维护的分类按照维护的起因分类:纠错性维护适应性维护改善性维护预防性维护四类。1.纠错性维护——为改正软件系统中潜藏的错误而进行的活动。用户在使用软件过程中发现软件的错误是激发该种维护的起因。四类软件维护的分类2.适应性维护——为适应软件运行环境的变化而修改软件的活动。软件的运行环境包括两个方面,硬件和软件,软件则大体上包括操作系统、中间件、虚拟机等等。软件维护的分类3.改善性维护——根据用户在软件使用过程中提出的建设性意见而进行的
3、维护活动。主要是针对用户提出的新的软件需求或修改原有的软件需求而进行的维护,该种维护通常占所有维护工作量的一半以上。软件在部署之后一段时间内,用户的改善性维护应该是递减的。软件维护的分类4.预防性维护——为了进一步改善软件系统的可维护性和可靠性,并为以后的改进奠定基础。预防性维护可以采取逆向工程(reverseengineering)和重构工程(re-engineering)方式。软件维护的分类严格按照软件工程标准生产的软件产品在维护过程中纠错性维护的工作量很低,不到总维护工作量的1/5。由于改善性维护和适应性
4、维护需要修改需求规格说明书,应按照需求变更来进行管理,相当于螺旋模型中的又一次迭代过程,因此工作量很大。软件维护的特点软件维护是一种繁琐而又不可或缺的工作,由于维护通常要求维护人员在用户现场进行,而且维护任务可能非常紧急,因此对现场维护人员的压力很大。而且没有丝毫的成就感。结构化维护与非结构化维护非结构化维护——软件的配置中只有源代码。由于没有分析和设计文档,无法对程序的功能进行反向追踪,理解别人的代码是很痛苦的事情。由于配置中没有测试文档,所以维护后的代码无法进行回归测试。因而导致程序的结构化被不断的破坏,维
5、护的质量无法得到保证。结构化维护与非结构化维护结构化维护——待维护的软件的配置是完整的。用户提出的维护申请用正向追踪很容易从分析设计文档追踪直至代码中,从而使维护人员很容易定位代码的维护点。所以这种维护不会破坏软件的结构。结构化维护不仅能减少维护的工作量,还能提高维护的质量。非结构化维护和结构化维护维护请求配置理解代码功能理解?修改代码测试复审理解设计方案规划修改设计修改代码测试复审交付使用软件代码维护成本20世纪70年代,软件的维护费用约占软件总预算的35~40%。80年代时,软件维护费用进一步增加,约占软件
6、总预算的60%。近年来,该值已上升到80%左右。随着软件复杂性的不断提高,软件的维护难度越来越大。这不仅导致维护成本不断增高,软件生产率急剧下降,还会带来其他方面的负面影响。维护工作量的估算模型M=P+Ke(c-d)其中:M:维护所用工作量;P:生产性工作量—分析评价、修改设计和代码;Ke(c-d):助动性工作量—理解文档和代码;K:经验常数;c:软件的维护复杂度,由软件本身的复杂度,软件的设计质量以及文档化的程度等因素决定;d:维护人员对软件的熟悉程度;可见维护工作量同软件的维护复杂度成指数关系。维护可能存在
7、的问题1)无法追踪软件的整个创建过程。2)无法追踪软件版本的进化过程。软件交付使用后对软件不断修复和完善的过程,就是软件版本的进化过程,每一次进化都会使软件的主、次版本号增大。3)理解别人的程序非常困难。4)得不到开发人员的帮助。5)软件配置不完整或不正确。6)分析和设计的缺陷。7)维护工作让人没有成就感。软件维护过程维护组织维护组织一般由维护员,维护管理员,系统管理员,修改控制决策机构,配置管理员组成。维护员——真正执行维护的人员;维护管理员——协调维护活动的人员;系统管理员——系统的管理者;修改控制决策机构
8、——决定一次维护的走向。修改控制和决策机构、用户、系统管理员、维护人员之间不能跨越维护管理员进行沟通和采取行动。维护组织信息流图修改控制决策机构系统管理员维护管理员维护员配置管理员维护申请单维护流程用户的维护请求激发了一次维护活动,用户将维护申请提交给维护管理员,维护管理员将该维护请求交给系统管理员对维护活动可能引起的软件修改进行评估,并将评估结果反馈给维护管理员,维护管理员按照维护请
此文档下载收益归作者所有