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