欢迎来到天天文库
浏览记录
ID:59451631
大小:402.00 KB
页数:43页
时间:2020-09-18
《第八章软件维护ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、软件工程第八章软件维护第八章软件维护8.1软件维护的定义一、软件维护的定义和分类软件维护是指在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。可分为:改正性维护(改错)适应性维护(移植)完善性维护(升级,增加功能)28.1软件维护的定义1、改正性维护在软件交付使用后,由于开发时测试得不彻底或不完全,在运行阶段会暴露一些开发时未能测试出来的错误。为了识别和纠正软件错误,改正软件性能上的缺陷,避免实施中的错误使用,应当进行的诊断和改正错误的过程,这就是改正性维护。38.1软件维护的定义2.适应
2、性维护在使用过程中,外部环境、数据环境可能发生变化。外部环境(新的硬、软件配置)数据环境(数据库、数据格式、数据输入/输出方式、数据存储介质)适应性维护:为使软件适应这种变化,而去修改软件的过程。48.1软件维护的定义3.完善性维护在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。为了满足上述要求,需要修改或再开发软件而进行的完善性的维护活动。以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。完善性维护不一定是救火式的紧急维修,可以是有计划、有预谋的一种再开发活动。58.1软件维护的
3、定义4.预防性维护为了提高软件的可维护性、可靠性等,为以后进一步改进软件打下良好基础而修改软件的维护活动。预防性维护的定义:采用先进的软件工程方法对需要维护的软件或软件中的某一部分(重新)进行设计、编制和测试的过程。6在整个软件维护阶段所花费的全部工作量中,完善性维护占了几乎一半的工作量。软件维护活动所花费的工作占整个生存期工作量的70%以上,这是由于在漫长的软件运行过程中需要不断对软件进行修改,以改正新发现的错误、适应新的环境和用户新的要求,这些修改需要花费很多精力和时间,而且有时会引入新的错误。7不同维
4、护占总的维护比例维护在软件生存期所占比例88.2软件维护的特点影响维护工作量的因素1)系统大小2)程序设计语言3)系统年龄老系统随着不断的修改,结构越来越乱;维护人员经常更换,程序又变得越来越难于理解。许多老系统在当初并未按照软件工程的要求进行开发,因而没有文档,或文档太少。在长期的维护过程中文档在许多地方与程序实现变得不一致,在维护时就会遇到很大困难。98.2软件维护的特点4)数据库技术的应用5)先进的软件开发技术6)其他。例如,应用的类型、数学模型、任务的难度、开关与标记、IF嵌套深度、索引或下标数等。
5、对维护工作量都有影响。许多软件在开发时并未考虑将来的修改,为软件的维护带来许多问题。10软件维护的策略1、改正性维护通常要生成100%可靠的软件并不一定合算,成本太高。但通过使用新技术,可大大减少进行改正性维护的需要。这些技术包括:数据库管理系统、软件开发环境、程序自动生成系统、较高级的语言。以及新的开发方法、软件复用、防错程序设计及周期性维护审查等。112、适应性维护这一类维护不可避免,可以控制。(1)在配置管理时,把硬件、操作系统和其它相关环境因素的可能变化考虑在内。(2)把与硬件、操作系统,以及其它外
6、围设备有关的程序归到特定的程序模块中。(3)使用内部程序列表、外部文件,以及处理的例行程序包,可为维护时修改程序提供方便。软件维护的策略123、完善性维护利用前两类维护中列举的方法,也可以减少这一类维护。特别是数据库管理系统、程序生成器、应用软件包,可减少维护工作量。此外,建立软件系统的原型,把它在实际系统开发之前提供给用户。用户通过研究原型,进一步完善他们的功能要求,就可以减少以后完善性维护的需要。软件维护的策略138.2.1结构化与非结构化维护差别巨大非结构化维护的代价很高,这种维护方式是没有使用软件
7、工程方法学开发出来的软件的必然结果。以完整的软件配置为基础的结构化维护,是在软件开发中应用软件工程方法学的结果。虽然有了软件的完整配置并不能保证维护时没有问题,但是确实能减少精力的浪费并且可以提高维护的总体质量。148.2.2维护的代价高昂维护成本:有形的软件维护成本是花费了多少钱,无形的维护成本有更大的影响。一些合理的修复或修改请求不能及时安排,使得客户不满意;变更的结果引入新的故障,使得软件整体质量下降;把软件人员抽调到维护工作中,干扰了软件开发工作。158.2.2维护的代价高昂软件维护的代价是降低了生
8、产率,在做老程序的维护时非常明显。例如,开发每一行源代码耗资25美元,维护每一行源代码需要耗资1000美元。维护工作量包括生产性活动(如分析和评价、设计修改和实现)和“轮转”活动(如力图理解代码在做什么、试图判明数据结构、接口特性、性能界限等)。168.2.2维护的代价高昂维护活动分为生产性活动和非生产性活动。生产性活动:分析评价、修改设计和编写程序代码等;非生产性活动:理解程序代码功能、数据结构、接口特点和设计
此文档下载收益归作者所有