欢迎来到天天文库
浏览记录
ID:57036162
大小:1.27 MB
页数:17页
时间:2020-07-27
《软件工程课件Chapter6维护.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、6.1软件维护的定义6.2软件维护的特点6.3软件维护过程6.4软件的可维护性6.5预防性维护6.6软件再工程过程第6章维护1软件工程的目的:提高软件的可维护性;减少软件维护所需要的工作量;降低软件系统的总成本。软件维护定义:指软件系统交付使用以后,为了改正错误或满足新的需求而修改软件的过程。大型软件维护成本达软件开发成本的4倍左右;60%以上的人力用于维护已有的软件。6.1软件维护的定义2完善性维护(PerfectiveMaintenance)扩充原有系统的功能,提高原有系统的性能,满足用户的实际需要。纠错性维护(CorrectiveMa
2、intenance)对在测试阶段未能发现的,在软件投入使用后才逐渐暴露出来的错误的测试、诊断、定位、纠错以及验证、修改的回归测试过程。适应性维护(AdaptiveMaintenance)要使运行的软件能适应运行环境的变动而修改软件的过程。预防性维护(PreventiveMaintenance)为了进一步改善软件的可靠性和易维护性,或者为将来的维护奠定更好的基础而对软件进行修改。四类软件维护3纠错性维护17%-21%适应性维护18%-25%完善性维护50%-66%预防性维护4%4类软件维护的比例4一、结构化维护与非结构化维护差别巨大结构化维护
3、指软件开发过程是按照软件工程方法,软件的维护过程,有一整套完整的方案、技术、审定过程。非结构化维护缺乏必要的文档说明,难于确定数据结构、系统接口等特性。维护工作令人生畏,事倍功半。6.2软件维护的特点5二、维护代价高昂维护费用高达开发费用的55%-70%,而且逐年上涨。维护中还可能引入新的潜在错误。Belady和Lehman提出软件维护工作模型:M=P+K*exp(c-d)其中:M—维护总工作量P—生产性活动K—经验常数c—程序复杂度(由非结构化维护引起的)d—对维护软件熟悉程度的度量模型表明:如果使用了不好的软件开发方法(未按软件工程要求
4、做),原来参加开发的人员或小组不能参加维护,则工作量(及成本)将按指数级增加。6影响维护代价的技术和非技术因素非技术因素:应用域的复杂性:较好地理解应用需求开发人员的稳定性。软件的生命期:控制生命周期商业操作模式变化对软件的影响:如财务软件随制度技术因素:软件对运行环境的依赖性。编程语言。编程风格。测试与改错工作。文档的质量。76.3软件维护过程维护组织维护报告维护事件流保存维护记录评价维护活动8软件维护的机构9维护组织10维护事件流11哪些数据是值得记录的?程序标识;源语句数;机器指令条数;使用的程序设计语言;程序安装的日期;自从安装以来
5、程序运行的次数;自从安装以来程序失效的次数;程序变动的层次和标识;因程序变动而增加的源语句数;因程序变动而删除的源语句数;每个改动耗费的人时数;程序改动的日期;软件工程师的名字;维护要求表的标识;维护类型;维护开始和完成的日期;累计用于维护的人时数;与完成的维护相联系的纯效益。保存维护记录12用户文档(1)功能描述;(2)安装文档;(3)使用手册;(4)参考手册;(5)操作员指南。系统文档从问题定义、需求说明到验收测试计划一系列和系统实现有关的文档。6.4软件的可维护性13在软件工程过程的每一个阶段都应该考虑并努力提高软件的可维护性;在每个
6、阶段结束前的技术审查和管理复审中,应该着重对可维护性进行复审;维护应该针对整个软件配置。可维护性复审14“把今天的方法学应用到昨天的系统上,以支持明天的需求。”——Miller对预防性维护的定义反复多次地修改程序的尝试;通过仔细分析程序尽可能多掌握程序的内部工作细节,以便更有效地修改它;在深入理解原有设计的基础上,用软件工程方法重新设计、重新编码和测试那些需要变更的软件部分;——局部再工程以软件工程方法学为指导,对程序全部重新设计、重新编码和测试,可以使用CASE工具来帮助理解原有的设计。——软件再工程6.5预防性维护156.6软件再工程过
7、程图6.3软件再工程过程模型16本章小结什么是软件维护?有哪几种常见的软件维护?什么是软件的可维护性?决定软件可维护性的因素有哪些?软件的维护过程:了解17
此文档下载收益归作者所有