欢迎来到天天文库
浏览记录
ID:21949102
大小:1.54 MB
页数:30页
时间:2018-10-25
《[软件工程]ch08-软件维护》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、软件工程软件工程刘迎春软件工程第八章软件维护可行否?否是终止项目计划时期开发时期(SA,SD,SP)主要内容8.1软件维护的概念8.2软件维护的代价8.3维护过程8.4可维护性8.5维护的副作用运行时期维护8.1软件维护的概念【软件维护】在软件已经交付用户使用之后,为了改正错误或满足新的需求而进行修改软件的过程。【软件维护分类】⑴改正性维护(CorrectiveMaintenance)⑵适应性维护(AdaptiveMaintenance)⑶完善性维护(PerfectiveMaintenance)⑷预防性
2、维护(PreventiveMaintenance)8.1软件维护的概念【软件维护分类】⑴改正性维护(CorrectiveMaintenance)定义:运行时期诊断、改正错误的过程。原因:开发时期测试是不彻底的,会有部分隐藏的错误遗留到运行时期。目的:识别和改正软件错误;改正软件性能和功能上的缺陷8.1软件维护的概念【软件维护分类】⑵适应性维护(AdaptiveMaintenance)定义:为使软件适应变化而修改软件的过程。原因:在软件运行过程中,⑴外部环境——新的硬、软件配置。⑵数据环境数据库数据输入/
3、输出方式数据存储介质可能发生变化。8.1软件维护的概念【软件维护分类】⑶完善性维护(PerfectiveMaintenance)定义:为了满足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、提高软件的可维护性。这种情况下进行的维护活动叫做完善性维护。原因:在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。8.1软件维护的概念【软件维护分类】⑷预防性维护(PreventiveMaintenance)定义:采用先进的软件工程方法对需要维护的软件或软件中的某一部分(重新)进行设计、编码
4、和测试。目的:为了提高软件的可维护性、可靠性等;为以后进一步改进软件打下良好基础。8.1软件维护的概念【软件维护分类】改正性维护(CorrectiveMaintenance)适应性维护(AdaptiveMaintenance)完善性维护(PerfectiveMaintenance)预防性维护(PreventiveMaintenance)50%不一定是救火式的紧急维修,而是有计划、有预谋的一种再开发活动。8.1软件维护的概念软件维护的工作占整个生存期工作量的70%以上软件生命周期问题定义可行性研究需求分析
5、概要设计详细设计编码测试运行与维护70%以上8.2软件维护的代价1.费用代价(有形)1970年35%~40%1980年40%~60%1990年70%~80%2.其它(无形)不能及时满足用户合理的修改要求,引起用户不满;引入了新的潜伏的故障,降低了软件的质量;抽调开发者去从事维护,使得开发造成混乱。8.2软件维护的代价【维护工作量】——用于维护工作的劳动。生产性活动非生产性活动【维护工作量的模型】M:维护用的总工作量P:生产性活动工作量K:维护人员经验系数C:复杂程度(非结构化设计和缺少文档都会增加软件的
6、复杂程度)D:维护人员对软件熟练程度8.2软件维护的代价【影响维护代价的非技术因素】⑴应用域的复杂性需求分析工作比较完善代价低。⑵开发人员的稳定性开发者维护自己的程序代价低;⑶软件的生命周期软件生命周期越长代价越高;⑷商业操作模式变化对软件的影响商业操作模式变化越频繁代价越高;如,财务制度改变财务软件修改8.2软件维护的代价【影响维护代价的技术因素】⑴软件对运行环境的依赖性⑵编程语言⑶编程风格风格好可理解性好代价越高;⑷测试与改错工作⑸文档的质量清晰、正确和完整的文档降低维护的代价美国空
7、军用的XP版本美国空军在劝说微软CEO鲍尔默为他们提供更安全的系统WindowsXP系统配置,此举将使得该部门节省下1亿美元的合约开支,以及大量的维护时间。该系统将加入更多安全特性,包括全新的密码管理机制等,超过600个参数被禁止修改8.3维护过程为了有效地进行软件维护,应事先做好组织工作。⑴建立维护的组织⑵为每一个维护申请规定标准的处理步骤系统管理员变化授权人维护管理员8.3维护过程【维护申请表】软件维护人员通常给用户提供空白的维护申请表(软件问题报告表)。维护申请表由申请维护的用户填写;改正性维护:
8、完整地描述导致出现该错误的环境,包括:输入数据、全部输出数据,以及其他有关的信息适应性维护,完善性维护:仅需提出一个简要的需求说明。维护过程用户区分维护类型评价优先级适应性要求完善性要求⊕评价错误严重性改正的错误维护申请安排维护任务不严重错误维护任务目录问题分析严重错误⊕⊕维护任务复审维护计划改正后的软件问题分析高优先级维护计划⊕低优先级维护任务维护过程修改软件设计设计评审代码修改单元测试集成测试确认测试修改需求说明8.3维护过程为了有效地
此文档下载收益归作者所有