欢迎来到天天文库
浏览记录
ID:52398323
大小:1.14 MB
页数:43页
时间:2020-04-05
《软件工程课件-6第六章软件维护.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、软件工程任课教师:程丽计算机与信息学院第六章软件维护6.1软件维护的内容6.2软件维护的特点6.3软件维护的实施6.4软件可维护性第六章软件维护课程的任务、目的和基本要求熟悉软件维护的内容、特点、实施了解如何提高软件的可维护性1.什么是软件维护?软件维护是指软件系统交付使用以后,为了改正错误或满足新的需求而修改软件的过程。第六章软件维护2.软件维护的原因在运行中发现了在测试阶段未能发现的软件错误和设计缺陷;需要改进设计,以增强软件的功能,提高软件的性能;要求已运行的软件能适应特定的硬件、软件、外部设备和通信设备等的工作环境,或是要求适应已变动的数据或文件;为使投入运行的软件与其它相关的
2、程序有良好的接口,以利于协同工作;为使运行软件的应用范围得到必要的扩充。第六章软件维护3.软件维护的意义软件维护处于软件生命期的最后阶段,也是最长的一个阶段,提高软件的可维护性,可减少维护的工作量和费用纠正软件开发过程未发现的错误,增强、改进和完善软件的功能和性能,适应软件的发展,延长软件的寿命,发挥其效益第六章软件维护第六章软件维护6.1软件维护的内容1.软件维护的类型按照不同的维护原因,维护工作可分成四类。校正性维护适应性维护完善性维护预防性维护2.什么是校正性维护对在测试阶段未能发现,而在软件投入使用后才逐渐暴露出来的错误的测试、诊断、定位、纠错以及验证、修改的回归测试过程,称为
3、校正性维护。第六章软件维护6.1软件维护的内容3.适应性维护计算机的软件环境、硬件环境、数据环境在不断的变化,使运行的软件能适应运行环境或者数据的变动而修改软件的过程称为适应性维护。第六章软件维护6.1软件维护的内容4.完善性维护扩充原有系统的功能,提高系统的性能,提高软件运行的效率,满足用户的实际需要而进行的维护活动称为完善性维护。第六章软件维护6.1软件维护的内容5.预防性维护为了进一步改善软件的可靠性和可维护性,或者为可预见的将来的软件的运行和维护打下更好的基础,而对软件进行的维护活动称为预防性维护。第六章软件维护6.1软件维护的内容6.各种维护所占的比例第六章软件维护6.1软件
4、维护的内容第六章软件维护6.2软件维护的特点6.2.1非结构化维护和结构化维护6.2.2维护的困难性6.2.3软件维护的费用非结构化维护—缺乏必要的文档说明,或者文档说明不一致,难于确定数据结构、系统接口等特性。结构化维护—按照软件工程方法开发软件,各阶段文档齐全,易于理解和掌握软件功能、性能、软件结构、数据结构、系统接口和设计约束。第六章软件维护6.2.1非结构化维护和结构化维护1、读懂别人的程序带来的困难2、文档不一致带来的困难3、软件开发与维护人员不一致带来的困难4、软件开发与维护时间上的差异带来的困难第六章软件维护6.2.2维护的困难性软件维护费用一般要占到整个开发费用的60%
5、~70%,而且逐年上涨。只有减少软件维护的工作量才能有效降低维护成本,而减少维护工作量就要分析影响软件维护的各种因素。第六章软件维护6.2.3软件维护的费用1.影响软件维护的因素系统的大小:系统越大,功能越复杂,维护工作量就越大。程序设计语言:语言的功能越强,生成程序所需要的指令(程序)越少,而且程序的可读性也越好,维护工作量也就越小。系统年龄:系统越老,修改维护的次数就越多,结构也就越乱,维护工作量也就越大。软件开发新技术的应用:使用先进的分析和设计技术,以及程序设计技术,如:面向对象技术、构件技术、可视化程序设计技术等,可减少维护工作量。第六章软件维护6.2.3软件维护的费用2.软
6、件维护的工作量模型维护活动分为生产性活动和非生产性活动生产性活动包括分析评价、修改设计和编写程序代码等。非生产性活动包括理解程序代码、解释数据结构、接口特点和设计约束等。第六章软件维护6.2.3软件维护的费用Belady和Lehman提出软件维护工作模型:M=P+K*exp(C-D)其中:M—维护工作的总工作量P—生产性活动的工作量K—经验常数C—程序复杂度D—对维护软件熟悉程度的度量显然,若C越大,D越小,则维护工作量成指数增长,为此,必须防止出现非结构化维护并尽可能由熟悉软件的原开发人员参加维护。第六章软件维护6.2.3软件维护的费用第六章软件维护6.3软件维护的实施6.3.1维护
7、的组织6.3.2维护的流程临时维护小组维护机构长期维护小组第六章软件维护6.3.1维护的组织1.临时维护小组非正式机构,执行特殊或临时的维护任务,如:对程序排错的检查、检查完善性维护的设计、进行质量控制的复审。采用“同事复审”、“同行复审”的方法。第六章软件维护6.3.1维护的组织2.长期维护小组组长:有经验的系统分析员,向上级汇报维护工作副组长:协调部门、小组、用户之间长期维护小组的关系维护负责人:负责维护小组人事管理工作维护程序员:分析程序
此文档下载收益归作者所有