软件维护的概念课件

上传人:无*** 文档编号:240586991 上传时间:2024-04-23 格式:PPTX 页数:66 大小:302.01KB
返回 下载 相关 举报
软件维护的概念课件_第1页
第1页 / 共66页
软件维护的概念课件_第2页
第2页 / 共66页
软件维护的概念课件_第3页
第3页 / 共66页
点击查看更多>>
资源描述
第九章第九章 软件维护软件维护 软件维护的概念软件维护的概念 软件维护活动软件维护活动 程序修改的步骤及修改的程序修改的步骤及修改的副作用副作用 软件可维护性软件可维护性 提高可维护性的方法提高可维护性的方法 1谢谢阅读2020-5-30软件维护的概念软件维护的概念软件维护的定义软件维护的定义影响维护工作量的因素影响维护工作量的因素软件维护的策略软件维护的策略维护成本维护成本2谢谢阅读2020-5-30软件维护的定义软件维护的定义在软件运行维护阶段在软件运行维护阶段对软件产对软件产品进行的修改品进行的修改就是所谓的维护。就是所谓的维护。维护的类型有四种:维护的类型有四种:改正性维护改正性维护 适应性维护适应性维护 完善性维护完善性维护预防性维护预防性维护3谢谢阅读2020-5-30改正性维护改正性维护在软件交付使用后,因开发时测在软件交付使用后,因开发时测试的试的不彻底不彻底、不完全不完全,必然会有,必然会有部分隐藏的错误遗留到运行阶段。部分隐藏的错误遗留到运行阶段。这些隐藏下来的错误这些隐藏下来的错误在某些特定在某些特定的使用环境下就会暴露出来的使用环境下就会暴露出来。为了为了识别和纠正软件错误识别和纠正软件错误、改正改正软件性能上的缺陷软件性能上的缺陷、排除实施中排除实施中的误使用的误使用,应当进行的诊断和改,应当进行的诊断和改正错误的过程就叫做改正性维护。正错误的过程就叫做改正性维护。4谢谢阅读2020-5-30适应性维护适应性维护在使用过程中,在使用过程中,外部环境外部环境(新的硬、软件配置新的硬、软件配置)数据环境数据环境(数据库、数据格式、数数据库、数据格式、数据输入据输入/输出方式、数据存储介质输出方式、数据存储介质)可能发生变化。可能发生变化。为使软件适应这种变化,而去修改为使软件适应这种变化,而去修改软件的过程就叫做适应性维护。软件的过程就叫做适应性维护。5谢谢阅读2020-5-30完善性维护完善性维护在软件的使用过程中,用户往往会在软件的使用过程中,用户往往会对软件提出新的对软件提出新的功能功能与与性能性能要求。要求。为了满足这些要求,需要修改或再为了满足这些要求,需要修改或再开发软件,以开发软件,以扩充软件功能扩充软件功能、增强增强软件性能软件性能、改进加工效率改进加工效率、提高软提高软件的可维护性件的可维护性。这种情况下进行的维护活动叫做完这种情况下进行的维护活动叫做完善性维护。善性维护。6谢谢阅读2020-5-30实践表明,在几种维护活动中,完实践表明,在几种维护活动中,完善性维护所占的比重最大。善性维护所占的比重最大。即大部即大部分维护工作是改变和加强软件,而分维护工作是改变和加强软件,而不是纠错不是纠错。完善性维护不一定是救火式的紧急完善性维护不一定是救火式的紧急维修,而可以维修,而可以是有计划、有预谋的是有计划、有预谋的一种再开发活动一种再开发活动。事实证明,来自用户要求扩充、加事实证明,来自用户要求扩充、加强软件功能、性能的维护活动约占强软件功能、性能的维护活动约占整个维护工作的整个维护工作的5050。7谢谢阅读2020-5-30预防性维护预防性维护预防性维护是为了预防性维护是为了提高软件的提高软件的可维护性可维护性、可靠性等可靠性等,为以后,为以后进一步改进软件打下良好基础。进一步改进软件打下良好基础。预防性维护定义为:预防性维护定义为:采用先进采用先进的软件工程方法对需要维护的的软件工程方法对需要维护的软件或软件中的某一部分(重软件或软件中的某一部分(重新)进行设计、编制和测试。新)进行设计、编制和测试。8谢谢阅读2020-5-30在整个软件维护阶段所花费的全部在整个软件维护阶段所花费的全部工作量中,工作量中,完善性维护占了几乎一完善性维护占了几乎一半的工作量。半的工作量。软件维护活动所花费的工作占整个软件维护活动所花费的工作占整个生存期工作量的生存期工作量的70%以上以上,这是由,这是由于在漫长的软件运行过程中需要不于在漫长的软件运行过程中需要不断对软件进行修改,以断对软件进行修改,以改正新发现改正新发现的错误的错误、适应新的环境和用户新的、适应新的环境和用户新的要求,这些修改需要花费很多精力要求,这些修改需要花费很多精力和时间,而且有时会引入新的错误。和时间,而且有时会引入新的错误。9谢谢阅读2020-5-30 三类维护占三类维护占 维护在软件生存期维护在软件生存期 总维护比例总维护比例 所占比例所占比例10谢谢阅读2020-5-30影响维护工作量的因素影响维护工作量的因素在软件的维护过程中,需要花在软件的维护过程中,需要花费大量的工作量,从而直费大量的工作量,从而直接影接影响了软件维护的成本响了软件维护的成本。应当考虑应当考虑有哪些因素影响软件有哪些因素影响软件维护的工作量维护的工作量,相应,相应应该采取应该采取什么维护策略什么维护策略,才能,才能有效地维有效地维护软件护软件并并控制维护的成本控制维护的成本。11谢谢阅读2020-5-30系统大小系统大小:系统越大,理解掌握起:系统越大,理解掌握起来越困难。系统越大,所执行功能来越困难。系统越大,所执行功能越复杂。因而需要更多的维护工作越复杂。因而需要更多的维护工作量。量。程序设计语言程序设计语言:使用强功能的程序:使用强功能的程序设计语言可以控制程序的规模。语设计语言可以控制程序的规模。语言的功能越强,生成程序的模块化言的功能越强,生成程序的模块化和结构化程度越高,所需的指令数和结构化程度越高,所需的指令数就越少,程序的可读性越好。就越少,程序的可读性越好。12谢谢阅读2020-5-30系统年龄:系统年龄:老系统随着不断的修改,结构老系统随着不断的修改,结构越来越乱;越来越乱;维护人员经常更换,程序又变维护人员经常更换,程序又变得越来越难于理解。得越来越难于理解。许多老系统在当初并未按照软许多老系统在当初并未按照软件工程的要求进行开发,因而没件工程的要求进行开发,因而没有文档,或文档太少。有文档,或文档太少。在长期的维护过程中文档在许在长期的维护过程中文档在许多地方与程序实现变得不一致,多地方与程序实现变得不一致,在维护时就会遇到很大困难。在维护时就会遇到很大困难。13谢谢阅读2020-5-30数据库技术的应用数据库技术的应用:使用数据库,:使用数据库,可以简单而有效地管理和存储用户可以简单而有效地管理和存储用户程序中的数据,还可以减少生成用程序中的数据,还可以减少生成用户报表应用软件的维护工作量。户报表应用软件的维护工作量。先进的软件开发技术先进的软件开发技术:在软件开发:在软件开发时,若使用能使软件结构比较稳定时,若使用能使软件结构比较稳定的分析与设计技术,及程序设计技的分析与设计技术,及程序设计技术,如面向对象技术、复用技术等,术,如面向对象技术、复用技术等,可减少大量的工作量。可减少大量的工作量。14谢谢阅读2020-5-30其它:其它:应用的类型应用的类型 数学模型数学模型 任务的难度任务的难度 开关与标记、开关与标记、IFIF嵌套深度、索引或嵌套深度、索引或下标数等下标数等对维护工作量都有影响。对维护工作量都有影响。许多软件在开发时并未考虑将来的许多软件在开发时并未考虑将来的修改,为软件的维护带来许多问题。修改,为软件的维护带来许多问题。15谢谢阅读2020-5-30软件维护的策略改正性维护改正性维护通常要生成通常要生成100可靠的软件并不可靠的软件并不一定合算,成本太高一定合算,成本太高。但通过使但通过使用新技术,可大大减少进行改正用新技术,可大大减少进行改正性维护的需要性维护的需要。这些技术包括:这些技术包括:数据库管理系统数据库管理系统、软件开发环境软件开发环境、程序自动生成系程序自动生成系统统、较高级较高级(第四代第四代)的语言的语言。以以及及新的开发方法新的开发方法、软件复用软件复用、防防错程序设计错程序设计及及周期性维护审查周期性维护审查等等。16谢谢阅读2020-5-30适应性维护适应性维护这一类维护不可避免,可以控制。这一类维护不可避免,可以控制。(1)(1)在配置管理时,把硬件、操在配置管理时,把硬件、操作系统和其它相关环境因素的可作系统和其它相关环境因素的可能变化考虑在内能变化考虑在内。(2)(2)把与硬件、操作系统,以及把与硬件、操作系统,以及其它外围设备有关的程序归到特其它外围设备有关的程序归到特定的程序模块中。定的程序模块中。(3)(3)使用内部程序列表、外部文使用内部程序列表、外部文件,以及处理的例行程序包,可件,以及处理的例行程序包,可为维护时修改程序提供方便。为维护时修改程序提供方便。17谢谢阅读2020-5-30完善性维护完善性维护利用前两类维护中列举的方法,利用前两类维护中列举的方法,也可以减少这一类维护。特别是也可以减少这一类维护。特别是数据库管理系统数据库管理系统、程序生成器程序生成器、应用软件包应用软件包,可减少维护工作量。可减少维护工作量。此外,建立软件系统的原型,把此外,建立软件系统的原型,把它在实际系统开发之前提供给用它在实际系统开发之前提供给用户。用户通过研究原型,进一步户。用户通过研究原型,进一步完善他们的功能要求,就可以减完善他们的功能要求,就可以减少以后完善性维护的需要。少以后完善性维护的需要。18谢谢阅读2020-5-30维护成本维护成本有形的软件维护成本有形的软件维护成本是花费了多少是花费了多少钱,钱,无形的维护成本无形的维护成本有更大的影响。有更大的影响。一些一些合理的修复或修改请求不合理的修复或修改请求不能及时安排能及时安排,使得客户不满意;,使得客户不满意;变更的结果变更的结果引入新的故障引入新的故障,使,使得软件整体质量下降;得软件整体质量下降;把软件人员抽调到维护工作中,把软件人员抽调到维护工作中,干扰了软件开发工作。干扰了软件开发工作。19谢谢阅读2020-5-30软件维护的软件维护的代价代价是是降低了生产率降低了生产率,在做老程序的维护时非常明显。在做老程序的维护时非常明显。例如,例如,开发每一行源代码耗资开发每一行源代码耗资25美美元元,维护每一行源代码需要耗资维护每一行源代码需要耗资1000美元美元。维护工作量包括维护工作量包括生产性活动生产性活动(如分(如分析和评价、设计修改和实现)和析和评价、设计修改和实现)和“轮转轮转”活动活动(如力图理解代码在做(如力图理解代码在做什么、试图判明数据结构、接口特什么、试图判明数据结构、接口特性、性能界限等)。性、性能界限等)。20谢谢阅读2020-5-30维护工作量的模型维护工作量的模型M是维护中消耗的总工作量是维护中消耗的总工作量p是上面描述的生产性工作量是上面描述的生产性工作量K是一个经验常数是一个经验常数c是因缺乏好的设计和文档而是因缺乏好的设计和文档而导致复杂性的度量导致复杂性的度量d是对软件熟悉程度的度量。是对软件熟悉程度的度量。21谢谢阅读2020-5-30模型指明,如果使用了不好的软模型指明,如果使用了不好的软件开发方法(未按软件工程要求件开发方法(未按软件工程要求做),原来参加开发的人员或小做),原来参加开发的人员或小组不能参加维护,则工作量(及组不能参加维护,则工作量(及成本)将按指数级增加。成本)将按指数级增加。22谢谢阅读2020-5-30软件维护活动软件维护活动为了有效地进行软件维护,应事先为了有效地进行软件维护,应事先就开始做组织工作。就开始做组织工作。首先首先建立维护的机构建立维护的机构 申明申明提出维护申请报告的过程提出维护申请报告的过程及及评评价的过程价的过程 为每一个维护申请规定为每一个维护申请规定标准的处理标准的处理步骤步骤 建立建立维护活动的登记制度维护活动的登记制度以及规定以及规定评价和评审的标准评价和评审的标准。23谢谢阅读2020-5-30维护机构维护机构除了较大的软件开发公司外,除了较大的软件开发公司外,通常在软件维护工作方面,并通常在软件维护工作方面,并不保持一个正式的组织机构。不保持一个正式的组织机构。虽然不要求建立一个正式的维虽然不要求建立一个正式的维护机构,但是在开发部门确立护机构,但是在开发部门确立一个非正式的维护机构则是非一个非正式的维护机构则是非常必要的。常必要的。24谢谢阅读2020-5-30软件维护的机构软件维护的机构25谢谢阅读2020-5-30维护申请维护申请提交给提交给维护管理员维护管理员,他,他把申请交给某个把申请交给某个系统监督员系统监督员去去评评价价。一旦做出评价,由一旦做出评价,由修改负责人修改负责人确确定定如何进行修改如何进行修改。在修改程序的过程中,由在修改程序的过程中,由配置管配置管理员理员严格把关,严格把关,控制修改的范围控制修改的范围,对软件配置进行审计对软件配置进行审计。在维护之前,就把责任明确下来,在维护之前,就把责任明确下来,可以减少维护过程中的混乱。可以减少维护过程中的混乱。26谢谢阅读2020-5-30软件维护申请报告软件维护申请报告维护申请报告或称维护申请报告或称软件问题报告软件问题报告,由由申请维护的用户申请维护的用户填写填写。用户必须用户必须完整地说明产生错误的完整地说明产生错误的情况情况,包括,包括输入数据输入数据、错误清单错误清单以及以及其它有关材料其它有关材料。如果申请的是适应性维护或完善如果申请的是适应性维护或完善性维护,用户必须提出一份修改性维护,用户必须提出一份修改说明书,列出所有希望的修改。说明书,列出所有希望的修改。27谢谢阅读2020-5-30维护申请报告将由维护申请报告将由维护管理员维护管理员和和系统监督员系统监督员来研究处理。来研究处理。他们应相应地做出他们应相应地做出软件修改报告软件修改报告,指明:指明:所需修改变动的性质;所需修改变动的性质;申请修改的优先级;申请修改的优先级;为满足某个维护申请报告,所需为满足某个维护申请报告,所需的工作量;的工作量;预计修改后的状况预计修改后的状况.28谢谢阅读2020-5-30软件修改报告应提交修改负软件修改报告应提交修改负责人,经批准后才能开始进责人,经批准后才能开始进一步安排维护工作。一步安排维护工作。29谢谢阅读2020-5-30软件维护软件维护工作流程工作流程30谢谢阅读2020-5-30尽管维护申请的类型不同,但都要尽管维护申请的类型不同,但都要进行同样的技术工作。进行同样的技术工作。修改软件需求说明修改软件需求说明 修改软件设计修改软件设计 设计评审设计评审 对源程序做必要的修改对源程序做必要的修改 单元测试单元测试 集成测试集成测试(回归测试回归测试)确认测试确认测试 软件配置评审等软件配置评审等。31谢谢阅读2020-5-30 在每次软件维护任务完成后进行情在每次软件维护任务完成后进行情况评审,对以下问题做一总结:况评审,对以下问题做一总结:(1)(1)在目前情况下,设计、编码、在目前情况下,设计、编码、测试中的哪一方面可以改进测试中的哪一方面可以改进?(2)(2)哪些维护资源应该有但没有哪些维护资源应该有但没有?(3)(3)工作中主要的或次要的障碍是工作中主要的或次要的障碍是什么什么?(4)(4)从维护申请的类型来看是否应从维护申请的类型来看是否应当有预防性维护当有预防性维护?情况评审对将来的维护工作如何进情况评审对将来的维护工作如何进行会产生重要的影响。行会产生重要的影响。32谢谢阅读2020-5-30维护档案记录维护档案记录程序名称程序名称源程序语句条数源程序语句条数机器代码指令条数机器代码指令条数所用的程序设计语言所用的程序设计语言程序安装的日期程序安装的日期程序安装后的运行次数程序安装后的运行次数与程序安装后运行次数有关的处与程序安装后运行次数有关的处理故障次数理故障次数33谢谢阅读2020-5-30程序改变的层次及名称程序改变的层次及名称修改程序增加的源程序语句条数修改程序增加的源程序语句条数修改程序减少的源程序语句条数修改程序减少的源程序语句条数每次修改所付出的每次修改所付出的“人时人时”数数修改程序的日期修改程序的日期软件维护人员的姓名软件维护人员的姓名维护申请报告的名称、维护类型维护申请报告的名称、维护类型维护开始时间和维护结束时间、维护开始时间和维护结束时间、花费在维护上的累计花费在维护上的累计“人时人时”数数维护工作的净收益等。维护工作的净收益等。34谢谢阅读2020-5-30维护评价维护评价评价维护活动比较困难评价维护活动比较困难,因为缺,因为缺乏可靠的数据。乏可靠的数据。如果维护的档案记录做得比较好,如果维护的档案记录做得比较好,可以得出一些维护可以得出一些维护“性能性能”方面方面的度量值。的度量值。每次程序运行时的平均出错次数;每次程序运行时的平均出错次数;花费在每类维护上的总花费在每类维护上的总“人时人时”数;数;35谢谢阅读2020-5-30 每个程序、每种语言、每种维护类每个程序、每种语言、每种维护类型的程序平均修改次数;型的程序平均修改次数;因为维护,增加或删除每个源程序因为维护,增加或删除每个源程序语句所花费的平均语句所花费的平均“人时人时”数;数;用于每种语言的平均用于每种语言的平均“人时人时”数;数;维护申请报告的平均处理时间;维护申请报告的平均处理时间;各类维护申请的百分比。各类维护申请的百分比。据此可对开发技术、语言选择、维据此可对开发技术、语言选择、维护工作计划、资源分配、以及其它护工作计划、资源分配、以及其它许多方面做出判定。许多方面做出判定。36谢谢阅读2020-5-30程序修改的步骤及修改的副作用程序修改的步骤及修改的副作用 分析和理解程序分析和理解程序 修改程序修改程序 重新验证程序重新验证程序37谢谢阅读2020-5-30分析和理解程序分析和理解程序理解程序的功能和目标;理解程序的功能和目标;掌握程序的结构信息,即从程序中细掌握程序的结构信息,即从程序中细分出若干结构成分。如程序系统结构、分出若干结构成分。如程序系统结构、控制结构、数据结构和输入输出结控制结构、数据结构和输入输出结构等;构等;了解数据流信息,即涉及到的数据来了解数据流信息,即涉及到的数据来源何处,在哪里被使用源何处,在哪里被使用了解控制流信息,即执行每条路径的了解控制流信息,即执行每条路径的结果;结果;理解程序的操作理解程序的操作(使用使用)要求;要求;38谢谢阅读2020-5-30修改程序修改程序1.设计程序的修改计划设计程序的修改计划程序的修改计划要考虑人员和资源的安排。程序的修改计划要考虑人员和资源的安排。小的修改可以不需要详细的计划,而对于小的修改可以不需要详细的计划,而对于需要耗时数月的修改,就需要计划立案。需要耗时数月的修改,就需要计划立案。2.修改代码,以适应变化修改代码,以适应变化3.修改程序的副作用修改程序的副作用所谓副作用是指因修改软件而造成的错误所谓副作用是指因修改软件而造成的错误或其它不希望发生的情况。副作用有三种:或其它不希望发生的情况。副作用有三种:修改代码的副作用修改代码的副作用、修改数据的副作用修改数据的副作用、文档的副作用文档的副作用。39谢谢阅读2020-5-30重新验证程序重新验证程序在将修改后的程序提交用户之前,在将修改后的程序提交用户之前,需要进行需要进行充分的确认和测试充分的确认和测试,以,以保证整个修改后程序的正确性。保证整个修改后程序的正确性。静态确认静态确认修改软件,伴随着引起新的错误修改软件,伴随着引起新的错误的危险的危险。为了能够做出正确的判。为了能够做出正确的判断,验证修改后的程序至少需要断,验证修改后的程序至少需要两个人参加。要检查:两个人参加。要检查:40谢谢阅读2020-5-30计算机确认计算机确认在进行了以上确认的基础上,用计在进行了以上确认的基础上,用计算机对修改程序进行确认测试:算机对修改程序进行确认测试:(1)确认测试顺序确认测试顺序:先对修改部分:先对修改部分进行测试,然后隔离修改部分,测进行测试,然后隔离修改部分,测试程序的未修改部分,最后再把它试程序的未修改部分,最后再把它们集成起来进行测试。这种测试称们集成起来进行测试。这种测试称为回归测试。为回归测试。(2)准备标准的测试用例准备标准的测试用例。(3)充分利用软件工具帮助重新验充分利用软件工具帮助重新验证过程证过程。41谢谢阅读2020-5-30(4)在重新确认过程中,需邀请用在重新确认过程中,需邀请用户参加。户参加。维护后的验收维护后的验收在交付新软件之在交付新软件之前,维护主管部门要检验:前,维护主管部门要检验:(1)全部文档是否完备,并已更新;全部文档是否完备,并已更新;(2)所有测试用例和测试结果已经所有测试用例和测试结果已经正确记载;正确记载;(3)记录软件配置所有副本的工作记录软件配置所有副本的工作已经完成;已经完成;(4)维护工序和责任已经确定。维护工序和责任已经确定。42谢谢阅读2020-5-30软软件件可可维维护护性性的的定定义义软件可维护性软件可维护性是指是指纠正软件系统纠正软件系统出现的错误和缺陷,以及为满足出现的错误和缺陷,以及为满足新的要求进行修改、扩充或压缩新的要求进行修改、扩充或压缩的容易程度的容易程度。可维护性可维护性、可使用性可使用性、可靠性可靠性是是衡量软件质量的主要质量特性。衡量软件质量的主要质量特性。软件的软件的可维护性可维护性是是软件开发阶段软件开发阶段各个时期的关键目标各个时期的关键目标。软件可维护性软件可维护性43谢谢阅读2020-5-30目前广泛使用的是用如下的七目前广泛使用的是用如下的七个特性来衡量程序的可维护性。个特性来衡量程序的可维护性。可理解性可理解性可使用性可使用性可测试性可测试性可移植性可移植性可修改性可修改性效率效率可靠性可靠性而且对于不同类型的维护,这而且对于不同类型的维护,这七种特性的侧重点也不相同七种特性的侧重点也不相同。44谢谢阅读2020-5-30在各类维护中的侧重点在各类维护中的侧重点 45谢谢阅读2020-5-30可维护性的度量可维护性的度量人们一直期望人们一直期望对软件的可维护对软件的可维护性做出定量度量性做出定量度量,但要做到这,但要做到这一点并不容易。一点并不容易。常用的度量一个可维护的程序常用的度量一个可维护的程序的七种特性的方法。就是的七种特性的方法。就是 质量检查表质量检查表 质量测试质量测试 质量标准质量标准46谢谢阅读2020-5-30质量检查表质量检查表是用于测试程序中某些是用于测试程序中某些质量特性是否存在的一个问题清单。质量特性是否存在的一个问题清单。评价者针对检查表上的每一个问题,评价者针对检查表上的每一个问题,依据自己的定性判断,回答依据自己的定性判断,回答“Yes”Yes”或者或者“No”No”。质量测试质量测试与与质量标准质量标准则用于定量分则用于定量分析和评价程序的质量。析和评价程序的质量。由于许多质量特性是相互抵触的,由于许多质量特性是相互抵触的,要要考虑几种不同的度量标准考虑几种不同的度量标准,相应,相应地去度量不同的质量特性。地去度量不同的质量特性。47谢谢阅读2020-5-301.可理解性可理解性可理解性表明人们通过阅读源代码可理解性表明人们通过阅读源代码和相关文档,了解程序功能及其如和相关文档,了解程序功能及其如何运行的容易程度。何运行的容易程度。一个可理解的程序应具备以下一些一个可理解的程序应具备以下一些特性:特性:模块化模块化,风格一致性风格一致性,不使不使用令人捉摸不定或含糊不清的代码用令人捉摸不定或含糊不清的代码,使用有意义的数据名和过程名使用有意义的数据名和过程名,结结构化构化,完整性完整性等。等。48谢谢阅读2020-5-302.可靠性可靠性可靠性表明一个程序按照用户的要可靠性表明一个程序按照用户的要求和设计目标,在给定的一段时间求和设计目标,在给定的一段时间内正确执行的概率。内正确执行的概率。关于可靠性,度量的标准主要有:关于可靠性,度量的标准主要有:平均失效间隔时间平均失效间隔时间MTTF 平均修复时间平均修复时间MTTR 有效性有效性A=MTBD/(MTBD+MDT)49谢谢阅读2020-5-30度量可靠性的方法度量可靠性的方法 根据程序错误统计数字,进行可靠性预根据程序错误统计数字,进行可靠性预测测。常用方法是利用一些常用方法是利用一些可靠性模型可靠性模型,根据程序测试时发现并排除的错误数预根据程序测试时发现并排除的错误数预测平均失效间隔时间测平均失效间隔时间MTTF。根据程序复杂性,预测软件可靠性根据程序复杂性,预测软件可靠性。用程序复杂性预测可靠性,用程序复杂性预测可靠性,前提条件是前提条件是可靠性与复杂性有关可靠性与复杂性有关。因此可用复杂性。因此可用复杂性预测出错率。程序复杂性度量标准可用预测出错率。程序复杂性度量标准可用于于预测哪些模块最可能发生错误预测哪些模块最可能发生错误,以及,以及可能出现的错误类型可能出现的错误类型。50谢谢阅读2020-5-303.可测试性可测试性可测试性表明论证程序正确性的容易可测试性表明论证程序正确性的容易程度程度。程序越简单,证明其正确性就。程序越简单,证明其正确性就越容易。而且设计合用的测试用例,越容易。而且设计合用的测试用例,取决于对程序的全面理解。取决于对程序的全面理解。一个可测试的程序应当是一个可测试的程序应当是可理解的可理解的,可靠的可靠的,简单的简单的。用于可测试性度量的检查项目如下:用于可测试性度量的检查项目如下:程序是否模块化程序是否模块化?结构是否良好结构是否良好?51谢谢阅读2020-5-30 程序是否可理解程序是否可理解?程序是否可靠程序是否可靠?程序是否能显示任意中间结果程序是否能显示任意中间结果?程序是否能以清楚的方式描述它的输程序是否能以清楚的方式描述它的输出出?程序是否能及时地按照要求显示所有程序是否能及时地按照要求显示所有的输入的输入?程序是否有跟踪及显示逻辑控制流程程序是否有跟踪及显示逻辑控制流程的能力的能力?程序是否能从检查点再启动程序是否能从检查点再启动?程序是否能显示带说明的错误信息程序是否能显示带说明的错误信息?52谢谢阅读2020-5-304.可修改性可修改性可修改性表明程序容易修改的程度可修改性表明程序容易修改的程度。一个可修改的程序应当是一个可修改的程序应当是可理解的可理解的、通用的通用的、灵活的灵活的、简单的简单的。通用性是指程序适用于各种功能变通用性是指程序适用于各种功能变化而无需修改。化而无需修改。灵活性是指能够容易地对程序进行灵活性是指能够容易地对程序进行修改。修改。53谢谢阅读2020-5-30测试可修改性的一种定量方法是测试可修改性的一种定量方法是修改练习修改练习。其基本思想是。其基本思想是通过做通过做几个简单的修改几个简单的修改,来评价修改的来评价修改的难度难度。设设C是程序中各个模块的平均复杂是程序中各个模块的平均复杂性,性,n是必须修改的模块数,是必须修改的模块数,A 是是要修改的模块的平均复杂性。要修改的模块的平均复杂性。则则修改的难度修改的难度D由下式计算:由下式计算:D=A/C54谢谢阅读2020-5-305.可移植性可移植性可移植性表明程序转移到一个新的可移植性表明程序转移到一个新的计算环境的可能性的大小计算环境的可能性的大小。或者它。或者它表明程序可以容易地、有效地在各表明程序可以容易地、有效地在各种各样的计算环境中运行的容易程种各样的计算环境中运行的容易程度。度。一个可移植的程序应具有一个可移植的程序应具有结构良好结构良好、灵活灵活、不依赖于某一具体计算机或不依赖于某一具体计算机或操作系统的性能操作系统的性能。用于可移植性度量的检查项目如下:用于可移植性度量的检查项目如下:55谢谢阅读2020-5-30 是否是用高级的独立于机器的语是否是用高级的独立于机器的语言来编写程序言来编写程序?是否使用广泛使用的标准化的程是否使用广泛使用的标准化的程序设计语言来编写程序序设计语言来编写程序?是否仅使是否仅使用了这种语言的标准版本和特性用了这种语言的标准版本和特性?程序中是否使用了标准的普遍使程序中是否使用了标准的普遍使用的库功能和子程序用的库功能和子程序?程序中是否极少使用或根本不使程序中是否极少使用或根本不使用操作系统的功能用操作系统的功能?56谢谢阅读2020-5-30程序在执行之前是否初始化内存程序在执行之前是否初始化内存?程序在执行之前是否测定当前的输入程序在执行之前是否测定当前的输入输出设备输出设备?程序是否把与机器相关的语句分离了程序是否把与机器相关的语句分离了出来,集中放在了一些单独的程序模出来,集中放在了一些单独的程序模块中,并有说明文件块中,并有说明文件?程序是否结构化程序是否结构化?并允许在小一些的并允许在小一些的计算机上分段计算机上分段(覆盖覆盖)运行运行?程序中是否避免了依赖于字母数字或程序中是否避免了依赖于字母数字或特殊字符的内部位表示特殊字符的内部位表示?57谢谢阅读2020-5-306.效率效率效率表明一个程序能执行预定功能效率表明一个程序能执行预定功能而又不浪费机器资源的程度而又不浪费机器资源的程度。这些机器资源包括这些机器资源包括内存容量内存容量、外存外存容量容量、通道容量通道容量和和执行时间执行时间。用于效率度量的检查项目如下用于效率度量的检查项目如下:程序是否模块化程序是否模块化?结构是否良好结构是否良好?是否消除了无用的标号与表达式,以是否消除了无用的标号与表达式,以充分发挥编译器优化作用充分发挥编译器优化作用?58谢谢阅读2020-5-30 程序的编译器是否有优化功能程序的编译器是否有优化功能?是否把特殊子程序和错误处理子是否把特殊子程序和错误处理子程序都归入了单独的模块中程序都归入了单独的模块中?是否以快速的数学运算代替了较是否以快速的数学运算代替了较慢的数学运算慢的数学运算?是否尽可能地使用了整数运算,是否尽可能地使用了整数运算,而不是实数运算而不是实数运算?是否在表达式中避免了混合数据是否在表达式中避免了混合数据类型的使用,消除了不必要的类型类型的使用,消除了不必要的类型转换转换?59谢谢阅读2020-5-30 程序是否避免了非标准的函数程序是否避免了非标准的函数或子程序的调用或子程序的调用?在几条分支结构中,是否最有在几条分支结构中,是否最有可能为可能为“真真”的分支首先得到测的分支首先得到测试试?在复杂的逻辑条件中,是否最在复杂的逻辑条件中,是否最有可能为有可能为“真真“的表达式首先得的表达式首先得到测试到测试?60谢谢阅读2020-5-307.可使用性可使用性从用户观点出发,从用户观点出发,可使用性定义为可使用性定义为程序方便、实用、及易于使用的程程序方便、实用、及易于使用的程度度。一个可使用的程序应是。一个可使用的程序应是易于使易于使用的用的、能允许用户出错和改变能允许用户出错和改变,并,并尽可能不使用户陷入混乱状态的尽可能不使用户陷入混乱状态的程程序。序。用于可使用性度量的检查项目如下:用于可使用性度量的检查项目如下:程序是否具有自描述性程序是否具有自描述性?61谢谢阅读2020-5-30 程序是否能始终如一地按照用户的程序是否能始终如一地按照用户的要求运行要求运行?程序是否让用户对数据处理有一程序是否让用户对数据处理有一个满意的和适当的控制个满意的和适当的控制?程序是否容易学会使用程序是否容易学会使用?程序是否使用数据管理系统来自程序是否使用数据管理系统来自动地处理事务性工作和管理格式化、动地处理事务性工作和管理格式化、地址分配及存储器组织。地址分配及存储器组织。程序是否具有容错性程序是否具有容错性?程序是否灵活程序是否灵活?62谢谢阅读2020-5-30其它间接定量度量可维护性的方法其它间接定量度量可维护性的方法问题识别的时间;问题识别的时间;因管理活动拖延的时间;因管理活动拖延的时间;收集维护工具的时间;收集维护工具的时间;分析、诊断问题的时间;分析、诊断问题的时间;修改规格说明的时间;修改规格说明的时间;具体的改错或修改的时间;具体的改错或修改的时间;局部测试的时间;局部测试的时间;集成或回归测试的时间;集成或回归测试的时间;维护的评审时间;维护的评审时间;63谢谢阅读2020-5-30这些数据反映了维护全过程中这些数据反映了维护全过程中检错纠错验证检错纠错验证的周期,即的周期,即从检测出软件存在的问题开始从检测出软件存在的问题开始至修正它们并经回归测试验证至修正它们并经回归测试验证这段时间这段时间。可以粗略地认为,可以粗略地认为,这个周期越这个周期越短,维护越容易短,维护越容易。64谢谢阅读2020-5-30提高可维护性的方法建立明确的软件质量目标建立明确的软件质量目标和优先级和优先级使用提高软件质量的技术使用提高软件质量的技术和工具和工具进行明确的质量保证审查进行明确的质量保证审查选择可维护的程序设计语选择可维护的程序设计语言言改进程序的文档改进程序的文档65谢谢阅读2020-5-3066谢谢阅读2020-5-30
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!