软件工程ppt-08软件维护课件

上传人:F****n 文档编号:88195947 上传时间:2019-04-20 格式:PPT 页数:87 大小:184KB
返回 下载 相关 举报
软件工程ppt-08软件维护课件_第1页
第1页 / 共87页
软件工程ppt-08软件维护课件_第2页
第2页 / 共87页
软件工程ppt-08软件维护课件_第3页
第3页 / 共87页
软件工程ppt-08软件维护课件_第4页
第4页 / 共87页
软件工程ppt-08软件维护课件_第5页
第5页 / 共87页
点击查看更多>>
资源描述

《软件工程ppt-08软件维护课件》由会员分享,可在线阅读,更多相关《软件工程ppt-08软件维护课件(87页珍藏版)》请在金锄头文库上搜索。

1、授课教师:梁丽,软件工程,西华大学计算机与数理学院,第八章 软件维护,内容要点: 本章主要介绍软件维护内容、特点、实施及提高软件可维护性的方法。 教学重点: 校正性维护、适应性维护、完善性维护、预防性维护 可维护性及其量度 提高可维护性方法,软件维护的概念 软件维护活动 可维护性 提高可维护性的方法,软件维护,软件维护的概念,软件维护的定义 影响维护工作量的因素 软件维护的策略 维护成本,软件维护的定义,在软件运行维护阶段对软件产品进行的修改就是所谓的维护。 维护的类型有四种: 改正性维护 适应性维护 完善性维护 预防性维护,改正性维护,在软件交付使用后,因开发时测试的不彻底、不完全,必然会有

2、部分隐藏的错误遗留到运行阶段。 这些隐藏下来的错误在某些特定的使用环境下就会暴露出来。 为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程就叫做改正性维护。,适应性维护,在使用过程中, 外部环境(新的硬、软件配置) 数据环境(数据库、数据格式、数据输入/输出方式、数据存储介质) 可能发生变化。 为使软件适应这种变化,而去修改软件的过程就叫做适应性维护。,完善性维护,在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。 为了满足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。 这种情况下进行的维

3、护活动叫做完善性维护。,实践表明,在几种维护活动中,完善性维护所占的比重最大。即大部分维护工作是改变和加强软件,而不是纠错。 完善性维护不一定是救火式的紧急维修,而可以是有计划、有预谋的一种再开发活动。 事实证明,来自用户要求扩充、加强软件功能、性能的维护活动约占整个维护工作的50。,预防性维护,预防性维护是为了提高软件的可维护性、可靠性等,为以后进一步改进软件打下良好基础。 预防性维护定义为:采用先进的软件工程方法对需要维护的软件或软件中的某一部分(重新)进行设计、编制和测试。,在整个软件维护阶段所花费的全部工作量中,完善性维护占了几乎一半的工作量。 软件维护活动所花费的工作占整个生存期工作

4、量的70%以上,这是由于在漫长的软件运行过程中需要不断对软件进行修改,以改正新发现的错误、适应新的环境和用户新的要求,这些修改需要花费很多精力和时间,而且有时会引入新的错误。,三类维护占 维护在软件生存期 总维护比例 所占比例,影响维护工作量的因素,在软件的维护过程中,需要花费大量的工作量,从而直接影响了软件维护的成本。 应当考虑有哪些因素影响软件维护的工作量,相应应该采取什么维护策略,才能有效地维护软件并控制维护的成本。,系统大小:系统越大,理解掌握起来越困难。系统越大,所执行功能越复杂。因而需要更多的维护工作量。 程序设计语言:使用强功能的程序设计语言可以控制程序的规模。语言的功能越强,生

5、成程序的模块化和结构化程度越高,所需的指令数就越少,程序的可读性越好。,系统年龄: 老系统随着不断的修改,结构越来越乱; 维护人员经常更换,程序又变得越来越难于理解。 许多老系统在当初并未按照软件工程的要求进行开发,因而没有文档,或文档太少。 在长期的维护过程中文档在许多地方与程序实现变得不一致,在维护时就会遇到很大困难。,数据库技术的应用:使用数据库,可以简单而有效地管理和存储用户程序中的数据,还可以减少生成用户报表应用软件的维护工作量。 先进的软件开发技术:在软件开发时,若使用能使软件结构比较稳定的分析与设计技术,及程序设计技术,如面向对象技术、复用技术等,可减少大量的工作量。,其它: 应

6、用的类型 数学模型 任务的难度 开关与标记、IF嵌套深度、索引或下标数等 对维护工作量都有影响。 许多软件在开发时并未考虑将来的修改,为软件的维护带来许多问题。,软件维护的策略,改正性维护 通常要生成100可靠的软件并不一定合算,成本太高。但通过使用新技术,可大大减少进行改正性维护的需要。 这些技术包括:数据库管理系统、软件开发环境、程序自动生成系统、较高级(第四代)的语言。以及新的开发方法、软件复用、防错程序设计及周期性维护审查等。,适应性维护 这一类维护不可避免,可以控制。 (1) 在配置管理时,把硬件、操作系统和其它相关环境因素的可能变化考虑在内。 (2) 把与硬件、操作系统,以及其它外

7、围设备有关的程序归到特定的程序模块中。 (3) 使用内部程序列表、外部文件,以及处理的例行程序包,可为维护时修改程序提供方便。,完善性维护 利用前两类维护中列举的方法,也可以减少这一类维护。特别是数据库管理系统、程序生成器、应用软件包,可减少维护工作量。 此外,建立软件系统的原型,把它在实际系统开发之前提供给用户。用户通过研究原型,进一步完善他们的功能要求,就可以减少以后完善性维护的需要。,维护成本,有形的软件维护成本是花费了多少钱,无形的维护成本有更大的影响。 一些合理的修复或修改请求不能及时安排,使得客户不满意; 变更的结果引入新的故障,使得软件整体质量下降; 把软件人员抽调到维护工作中,

8、干扰了软件开发工作。,软件维护的代价是降低了生产率,在做老程序的维护时非常明显。 例如,开发每一行源代码耗资25美元,维护每一行源代码需要耗资1000美元。 维护工作量包括生产性活动(如分析和评价、设计修改和实现)和“轮转”活动(如力图理解代码在做什么、试图判明数据结构、接口特性、性能界限等)。,维护工作量的模型,M是维护中消耗的总工作量 p是上面描述的生产性工作量 K是一个经验常数 c是因缺乏好的设计和文档而导致复杂性的度量 d是对软件熟悉程度的度量。,模型指明,如果使用了不好的软件开发方法(未按软件工程要求做),原来参加开发的人员或小组不能参加维护,则工作量(及成本)将按指数级增加。,软件

9、维护活动,为了有效地进行软件维护,应事先就开始做组织工作。 首先建立维护的机构 申明提出维护申请报告的过程及评价的过程 为每一个维护申请规定标准的处理步骤 建立维护活动的登记制度以及规定评价和评审的标准。,维护机构,除了较大的软件开发公司外,通常在软件维护工作方面,并不保持一个正式的组织机构。 虽然不要求建立一个正式的维护机构,但是在开发部门确立一个非正式的维护机构则是非常必要的。,软件维护的机构,维护申请提交给维护管理员,他把申请交给某个系统监督员去评价。 一旦做出评价,由修改负责人确定如何进行修改。 在修改程序的过程中,由配置管理员严格把关,控制修改的范围,对软件配置进行审计。 在维护之前

10、,就把责任明确下来,可以减少维护过程中的混乱。,软件维护申请报告,维护申请报告或称软件问题报告,由申请维护的用户填写。 用户必须完整地说明产生错误的情况,包括输入数据、错误清单以及其它有关材料。 如果申请的是适应性维护或完善性维护,用户必须提出一份修改说明书,列出所有希望的修改。,维护申请报告将由维护管理员和系统监督员来研究处理。 他们应相应地做出软件修改报告,指明: 所需修改变动的性质; 申请修改的优先级; 为满足某个维护申请报告,所需的工作量; 预计修改后的状况.,软件修改报告应提交修改负责人,经批准后才能开始进一步安排维护工作。,软件维护工作流程,尽管维护申请的类型不同,但都要进行同样的

11、技术工作。 修改软件需求说明 修改软件设计 设计评审 对源程序做必要的修改 单元测试 集成测试( 回归测试) 确认测试 软件配置评审等。,在每次软件维护任务完成后进行情况评审,对以下问题做一总结: (1) 在目前情况下,设计、编码、测试中的哪一方面可以改进? (2) 哪些维护资源应该有但没有? (3) 工作中主要的或次要的障碍是什么? (4) 从维护申请的类型来看是否应当有预防性维护? 情况评审对将来的维护工作如何进行会产生重要的影响。,维护档案记录,程序名称 源程序语句条数 机器代码指令条数 所用的程序设计语言 程序安装的日期 程序安装后的运行次数 与程序安装后运行次数有关的处理故障次数 程

12、序改变的层次及名称,修改程序增加的源程序语句条数 修改程序减少的源程序语句条数 每次修改所付出的“人时”数 修改程序的日期 软件维护人员的姓名 维护申请报告的名称、维护类型 维护开始时间和维护结束时间、 花费在维护上的累计“人时”数 维护工作的净收益等。,维护评价,评价维护活动比较困难,因为缺乏可靠的数据。 如果维护的档案记录做得比较好,可以得出一些维护“性能”方面的度量值。 每次程序运行时的平均出错次数; 花费在每类维护上的总“人时”数; 每个程序、每种语言、每种维护类型的程序平均修改次数;,因为维护,增加或删除每个源程序语句所花费的平均“人时”数; 用于每种语言的平均“人时”数; 维护申请

13、报告的平均处理时间; 各类维护申请的百分比。,软件可维护性,许多软件的维护十分困难,原因在于这些软件的文档不全、质量差、开发过程不注意采用好的方法,忽视程序设计风格等。 许多维护要求并不是因为程序中出错而提出的,而是为适应环境变化或需求变化而提出的。 为了使得软件能够易于维护,必须考虑使软件具有可维护性。,软件可维护性的定义,软件可维护性是指纠正软件系统出现的错误和缺陷,以及为满足新的要求进行修改、扩充或压缩的容易程度。 可维护性、可使用性、可靠性是衡量软件质量的主要质量特性,也是用户十分关心的几个方面。 软件的可维护性是软件开发阶段各个时期的关键目标。,目前广泛使用的是用如下的七个特性来衡量

14、程序的可维护性。 可理解性 可使用性 可测试性 可移植性 可修改性 效率 可靠性 而且对于不同类型的维护,这七种特性的侧重点也不相同。,在各类维护中的侧重点,这些质量特性通常体现在软件产品的许多方面; 为使每一个质量特性都达到预定的要求,需要在软件开发的各个阶段采取相应的措施加以保证。 这些质量要求要渗透到而各开发阶段的各个步骤当中。因此,软件的可维护性是产品投入运行以前各阶段面向上述各质量特性要求进行开发的最终结果。,可维护性的度量,人们一直期望对软件的可维护性做出定量度量,但要做到这一点并不容易。 常用的度量一个可维护的程序的七种特性的方法。就是 质量检查表 质量测试 质量标准,质量检查表

15、是用于测试程序中某些质量特性是否存在的一个问题清单。 评价者针对检查表上的每一个问题,依据自己的定性判断,回答“Yes”或者“No”。 质量测试与质量标准则用于定量分析和评价程序的质量。 由于许多质量特性是相互抵触的,要考虑几种不同的度量标准,相应地去度量不同的质量特性。,1. 可理解性,可理解性表明人们通过阅读源代码和相关文档,了解程序功能及其如何运行的容易程度。 一个可理解的程序应具备以下一些特性:模块化,风格一致性,不使用令人捉摸不定或含糊不清的代码,使用有意义的数据名和过程名,结构化,完整性等。,2. 可靠性,可靠性表明一个程序按照用户的要求和设计目标,在给定的一段时间内正确执行的概率

16、。,度量可靠性的方法,根据程序错误统计数字,进行可靠性预测。常用方法是利用一些可靠性模型,根据程序测试时发现并排除的错误数预测平均失效间隔时间。 根据程序复杂性,预测软件可靠性。 用程序复杂性预测可靠性,前提条件是可靠性与复杂性有关。因此可用复杂性预测出错率。程序复杂性度量标准可用于预测哪些模块最可能发生错误,以及可能出现的错误类型。,3. 可测试性,可测试性表明论证程序正确性的容易程度。程序越简单,证明其正确性就越容易。而且设计合用的测试用例,取决于对程序的全面理解。 一个可测试的程序应当是可理解的,可靠的,简单的。 用于可测试性度量的检查项目如下: 程序是否模块化? 结构是否良好?,程序是否可理解? 程序是否可靠? 程序是否能显示任意中间结果? 程序是否能以清楚的方式描述它的输出? 程序是否能及时地按照要求显示所有的输入? 程序是否有跟踪及显示逻辑控制流程的能力? 程序是否能从检查点再启动? 程序是否能显示带说明的错误信息?,4. 可修改性,可修改性表明程序容易修改的程度。 一个可修改的程序应当是可理解的、通用的、灵活的、简单的

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号