软件质量概念软件质量保证软件可靠性软件配置管理

上传人:人*** 文档编号:568604751 上传时间:2024-07-25 格式:PPT 页数:142 大小:355KB
返回 下载 相关 举报
软件质量概念软件质量保证软件可靠性软件配置管理_第1页
第1页 / 共142页
软件质量概念软件质量保证软件可靠性软件配置管理_第2页
第2页 / 共142页
软件质量概念软件质量保证软件可靠性软件配置管理_第3页
第3页 / 共142页
软件质量概念软件质量保证软件可靠性软件配置管理_第4页
第4页 / 共142页
软件质量概念软件质量保证软件可靠性软件配置管理_第5页
第5页 / 共142页
点击查看更多>>
资源描述

《软件质量概念软件质量保证软件可靠性软件配置管理》由会员分享,可在线阅读,更多相关《软件质量概念软件质量保证软件可靠性软件配置管理(142页珍藏版)》请在金锄头文库上搜索。

1、n n软件质量概念软件质量概念n n软件质量保证软件质量保证n n软件可靠性软件可靠性n n软件配置管理软件配置管理软件质量概念软件质量概念n n软件质量的定义软件质量的定义n n软件质量特性软件质量特性n n软件质量模型软件质量模型n n软件质量的度量和评价软件质量的度量和评价软件质量的定义软件质量的定义n nANSI/IEEE Std 729-1983定义软件定义软件质量为质量为“与软件产品满足规定的和与软件产品满足规定的和隐含的需求的能力有关的特征或特隐含的需求的能力有关的特征或特性的全体性的全体”。n nM.J. Fisher 定义软件质量为定义软件质量为“所有所有描述计算机软件优秀程

2、度的特性的描述计算机软件优秀程度的特性的组合组合”。质质量量特特性性及及其其组组合合,是是软软件件开开发发与维护中的重要考虑因素与维护中的重要考虑因素n n为满足软件的各项精确定义的功能、为满足软件的各项精确定义的功能、性能需求,符合文档化的开发标准,性能需求,符合文档化的开发标准,需要相应地给出或设计一些质量特需要相应地给出或设计一些质量特性及其组合。性及其组合。n n如果这些质量特性及其组合都能在如果这些质量特性及其组合都能在产品中得到满足,则这个软件产品产品中得到满足,则这个软件产品质量就是高的。质量就是高的。n n软件需求是度量软件质量的基础软件需求是度量软件质量的基础。不符合需求的软

3、件就不具备质量。不符合需求的软件就不具备质量。n n标准定义了一组开发准则,用来指标准定义了一组开发准则,用来指导软件人员用工程化的方法来开发导软件人员用工程化的方法来开发软件软件。如果不遵守这些开发准则,。如果不遵守这些开发准则,软件质量就得不到保证。软件质量就得不到保证。n n软件质量是各种特性的复杂组合。软件质量是各种特性的复杂组合。它随着应用的不同而不同,随着用它随着应用的不同而不同,随着用户提出的质量要求不同而不同。户提出的质量要求不同而不同。软件质量特性软件质量特性n n软件质量特性,反映了软件的本质软件质量特性,反映了软件的本质。讨论一个软件的质量,问题最终要讨论一个软件的质量,

4、问题最终要归结到定义软件的质量特性。归结到定义软件的质量特性。n n定义一个软件的质量,就等价于为定义一个软件的质量,就等价于为该软件定义一系列质量特性。该软件定义一系列质量特性。n n人们通常把影响软件质量的特性用人们通常把影响软件质量的特性用软件质量模型来描述软件质量模型来描述。软件质量模型软件质量模型n n软件质量特性定义成软件质量特性定义成分层模型分层模型n n最基本的叫做最基本的叫做基本质量特性基本质量特性,它可,它可以由一些子质量特性定义和度量。以由一些子质量特性定义和度量。n n二次特性二次特性在必要时又可由它的一些在必要时又可由它的一些子质量特性定义和度量。子质量特性定义和度量

5、。n n1976年年 Boehm质量模型质量模型n n1979年年 McCall质量模型质量模型n n1985年年 ISO质量模型质量模型ISO的软件质量评价模型的软件质量评价模型n n按照按照ISO/TC97/SC7/WG3/1985-1-30/N382,软件质量度量模型由三,软件质量度量模型由三层组成层组成n n软件质量需求评价准则软件质量需求评价准则(SQRC)n n软件质量设计评价准则软件质量设计评价准则(SQDC)n n软件质量度量评价准则软件质量度量评价准则(SQMC)n n高层和中层建立国际标准,低层可高层和中层建立国际标准,低层可由各使用单位视实际情况制定由各使用单位视实际情况

6、制定Boehm质量模型质量模型1991年年 ISO质质量量特特性性国国际际标标准准 (ISO/IEC9126)n n质量特性:质量特性:功能性功能性、可靠性可靠性、可维可维护性护性、效率效率、可使用性可使用性、可移植性可移植性n n推荐推荐21个子特性:适合性个子特性:适合性 准确性准确性 互用性互用性 依从性依从性 安全性安全性 成熟性成熟性 容错性容错性 可恢复性可恢复性 可理解性可理解性 易学习性易学习性 操作性操作性 时间特性时间特性 资源特性资源特性 可分析性可分析性 稳定性稳定性 可可变更性变更性 可测试性可测试性 可安装性可安装性 可替可替换性换性 适应性适应性 一致性一致性 软

7、件质量的度量和评价软件质量的度量和评价n n软件质量特性度量有两类:软件质量特性度量有两类:预测型预测型和和验收型验收型。n n预测度量预测度量是利用定量或定性的方法,是利用定量或定性的方法,估算软件质量的评价值,以得到软估算软件质量的评价值,以得到软件质量的比较精确的估算值。件质量的比较精确的估算值。n n验收度量验收度量是在软件开发各阶段的检是在软件开发各阶段的检查点,对软件的要求质量进行确认查点,对软件的要求质量进行确认性检查的具体评价值,它是对开发性检查的具体评价值,它是对开发过程中的预测进行评价。过程中的预测进行评价。n n预测度量预测度量有两种。有两种。n n第一种叫做第一种叫做尺

8、度度量尺度度量,这是一种,这是一种定定量度量量度量。它适用于一些能够直接度。它适用于一些能够直接度量的特性,量的特性,例如,出错率定义为:例如,出错率定义为:错误数错误数KLOC单位时间单位时间。n n第二种叫做第二种叫做二元度量二元度量,这是一种,这是一种定定性度量性度量。它适用于一些只能间接度。它适用于一些只能间接度量的特性,量的特性,例如,可使用性、灵活例如,可使用性、灵活性等等性等等。尺度度量检查表尺度度量检查表二元度量检查表二元度量检查表n n通过对照检查项目,确定一种质量通过对照检查项目,确定一种质量特性的有无。特性的有无。n n例如,在设计和编码阶段的复杂性例如,在设计和编码阶段

9、的复杂性度量,利用度量,利用尺度度量方法尺度度量方法来做。对来做。对模块复杂性的度量采用模块复杂性的度量采用McCabe 环环路度量。路度量。n n对于对于二元度量二元度量,可针对检查表中每,可针对检查表中每一项都应给以记分,指定信息存在一项都应给以记分,指定信息存在时记时记 “1”,否则记,否则记 “0”。表中所。表中所有各项的分数相加,即得度量结果。有各项的分数相加,即得度量结果。软件的质量保证软件的质量保证n n质量保证的概念质量保证的概念n n软件质量保证的主要任务软件质量保证的主要任务n n质量保证与检验质量保证与检验n n软件质量保证体系软件质量保证体系n n质量保证的实施质量保证

10、的实施n n软件的质量设计软件的质量设计质量保证的概念质量保证的概念n n什么是质量保证,它是什么是质量保证,它是为保证产品为保证产品和服务充分满足消费者要求的质量和服务充分满足消费者要求的质量而进行的有计划、有组织的活动而进行的有计划、有组织的活动。n n质量保证是质量保证是面向消费者的活动面向消费者的活动,是,是为了使产品实现用户要求的功能,为了使产品实现用户要求的功能,站在用户立场上来掌握产品质量的。站在用户立场上来掌握产品质量的。n n软件的质量保证就是向用户及社会软件的质量保证就是向用户及社会提供满意的高质量的产品。提供满意的高质量的产品。n n软件的质量保证活动也和一般的质软件的质

11、量保证活动也和一般的质量保证活动一样,是量保证活动一样,是确保软件产品确保软件产品从诞生到消亡为止的所有阶段的质从诞生到消亡为止的所有阶段的质量的活动量的活动。即。即为了确定、达到和维为了确定、达到和维护需要的软件质量而进行的所有有护需要的软件质量而进行的所有有计划、有系统的管理活动计划、有系统的管理活动。软件质量保证的主要任务软件质量保证的主要任务n n为了提高软件的质量和软件的生为了提高软件的质量和软件的生产率,软件质量保证的主要任务产率,软件质量保证的主要任务大致可归结为大致可归结为8点。点。1.用户要求定义用户要求定义n n熟练掌握熟练掌握正确定义用户要求的技正确定义用户要求的技术术n

12、 n熟练使用和指导他人使用熟练使用和指导他人使用定义软定义软件需求的支持工具件需求的支持工具n n重视重视领导全体开发人员收集和积领导全体开发人员收集和积累有关用户业务领域的各种业务累有关用户业务领域的各种业务的资料和技术的资料和技术技能技能。2. 力争不重复劳动力争不重复劳动n n考虑哪些考虑哪些既有软件可以复用既有软件可以复用n n在开发过程中,随时在开发过程中,随时考虑所生产考虑所生产软件的复用性软件的复用性。3. 掌握开发新软件的方法掌握开发新软件的方法n n在开发新软件的过程中大力使用和在开发新软件的过程中大力使用和推行软件工程学中所介绍的开发方推行软件工程学中所介绍的开发方法和工具

13、。法和工具。uu 使用先进的开发技术:如使用先进的开发技术:如结构化结构化技术技术、面向对象技术面向对象技术uu 使用数据库技术或网络化技术使用数据库技术或网络化技术uu 应用开发工具或环境应用开发工具或环境uu 改进开发过程改进开发过程4. 组织外部力量协作的方法组织外部力量协作的方法n n一个软件自始至终由同一个软件开一个软件自始至终由同一个软件开发单位来开发,也许是最理想的。发单位来开发,也许是最理想的。但在现实中常常难以做到。但在现实中常常难以做到。n n改善对外部协作部门的开发管理。改善对外部协作部门的开发管理。必须必须明确规定明确规定进度管理进度管理、质量管理质量管理、交接检查交接

14、检查、维护体制维护体制等各方面的要等各方面的要求求,建立建立跟踪检查跟踪检查的体制的体制。5. 排除无效劳动排除无效劳动n n最大的无效劳动就是最大的无效劳动就是因需求规格说因需求规格说明有误明有误、设计有误设计有误而造成的而造成的返工返工。定量记录返工工作量定量记录返工工作量,收集和分析收集和分析返工劳动花费数据返工劳动花费数据n n较大的无效劳动是较大的无效劳动是重复劳动重复劳动,即相,即相似的软件在几个地方同时开发似的软件在几个地方同时开发n n建立互相交流、信息往来通畅、具建立互相交流、信息往来通畅、具横向交流特征的信息流通网横向交流特征的信息流通网6. 发挥每个开发者的能力发挥每个开

15、发者的能力n n软件生产是人的智能生产活动,它软件生产是人的智能生产活动,它依赖于人的能力依赖于人的能力和和开发组织团队的开发组织团队的能力能力。n n开发者开发者必须有必须有学习各专业业务知识学习各专业业务知识、生产技术生产技术和和管理技术管理技术的能动性。的能动性。n n管理者管理者或或产品服务者产品服务者要要制定技术培制定技术培训计划训计划、技术水平标准技术水平标准,以及,以及适用适用于将来需要的中长期技术培训计划于将来需要的中长期技术培训计划。7. 提高软件开发的工程能力提高软件开发的工程能力n n要想生产出高质量的软件产品必要想生产出高质量的软件产品必须有高水平的须有高水平的软件工程

16、能力软件工程能力。n n在软件开发环境或软件工具箱的在软件开发环境或软件工具箱的支持下支持下,运用先进的开发技术运用先进的开发技术、工具和管理方法开发软件的能力工具和管理方法开发软件的能力。8. 提高计划和管理质量能力提高计划和管理质量能力n n项目开发初期项目开发初期计划阶段的项目计划计划阶段的项目计划评价评价n n计划执行过程中及计划完成报告的计划执行过程中及计划完成报告的评价评价n n将评价、评审工作在工程实施之前将评价、评审工作在工程实施之前就列入整个开发工程的工程计划中就列入整个开发工程的工程计划中n n提高软件开发项目管理的精确度提高软件开发项目管理的精确度质量保证与检验质量保证与

17、检验n n其一是其一是切实搞好开发阶段的管理切实搞好开发阶段的管理,检查各开发阶段的质量保证活动开检查各开发阶段的质量保证活动开展得如何;展得如何;n n其二是其二是预先防止软件差错给用户造预先防止软件差错给用户造成损失成损失。n n为了为了确保每个开发过程的质量确保每个开发过程的质量,防,防止把软件差错传递到下一个过程,止把软件差错传递到下一个过程,必须进行质量检验。必须进行质量检验。质量检验的原则质量检验的原则n n用户要求的是产品所具有的功能,用户要求的是产品所具有的功能,这是这是“真质量真质量”。靠质量检验,一靠质量检验,一般检查的是般检查的是“真质量真质量”的质量特性的质量特性。n

18、n能靠质量检验的质量特性,能靠质量检验的质量特性,即使全即使全数检验,也只是代表产品的部分质数检验,也只是代表产品的部分质量特性量特性。n n必须必须在各开发阶段对影响产品质量在各开发阶段对影响产品质量的因素进行切实的管理的因素进行切实的管理,认真检查,认真检查实施落实情况。实施落实情况。n n当开发阶段出现异常时,当开发阶段出现异常时,要从质量要从质量特性方面进行检验,看是否会给后特性方面进行检验,看是否会给后续阶段带来影响续阶段带来影响。n n虽然各开发阶段进展稳定,但由于虽然各开发阶段进展稳定,但由于工程能力不足,软件产品不能满足工程能力不足,软件产品不能满足用户要求的质量。这时用户要求

19、的质量。这时可通过检验可通过检验对该产品做出评价,判断是否能向对该产品做出评价,判断是否能向用户提供该产品用户提供该产品。n n要以一定的标准检验产品,根据产要以一定的标准检验产品,根据产品的质量特性,检查各个过程的管品的质量特性,检查各个过程的管理状态。理状态。软件质量保证体系软件质量保证体系n n软件的质量保证活动,是涉及各个软件的质量保证活动,是涉及各个部门的部门间的活动。部门的部门间的活动。n n例如,如果在用户处发现了软件故例如,如果在用户处发现了软件故障,障,产品服务部门产品服务部门就应听取用户的就应听取用户的意见,再由意见,再由检查部门检查部门调查该产品的调查该产品的检验结果,进

20、而还要调查软件实现检验结果,进而还要调查软件实现过程的状况,并根据情况检查设计过程的状况,并根据情况检查设计是否有误,不当之处加以改进,防是否有误,不当之处加以改进,防止再次发生问题。止再次发生问题。n n为了顺利开展以上活动,为了顺利开展以上活动,事先明确事先明确部门间的质量保证业务部门间的质量保证业务,确立部门确立部门间的联合与协作的机构间的联合与协作的机构十分重要,十分重要,这个机构就是质量保证体系这个机构就是质量保证体系。uu 必须必须明确反馈途径明确反馈途径。uu 必须必须明确各部门的职责明确各部门的职责。uu 必须必须确定保证系统运行的方法确定保证系统运行的方法、工具工具、有关文档

21、资料有关文档资料,以及,以及系统系统管理的规程和标准管理的规程和标准。uu 必须必须明确决定是否可向下一阶段明确决定是否可向下一阶段进展的评价项目和评价准则进展的评价项目和评价准则。uu 必须必须不断地总结系统管理的经验不断地总结系统管理的经验教训教训,能够修改系统能够修改系统。uu 制定质量保证计划制定质量保证计划,在计划中,在计划中FF 确定确定质量目标质量目标FF 确定确定在每个阶段为达到总目标在每个阶段为达到总目标所应达到的要求所应达到的要求FF 确定确定进度安排进度安排FF 确定确定所需人力、资源和成本等所需人力、资源和成本等。软件质量保证规程和技术准则软件质量保证规程和技术准则n

22、n规定规定在项目的哪个阶段进行评审及在项目的哪个阶段进行评审及如何评审如何评审;n n规定规定在项目的哪个阶段应当产生哪在项目的哪个阶段应当产生哪些报告和计划些报告和计划;n n规定规定产品各方面测试应达到的水平产品各方面测试应达到的水平。 n n在在每次评审和测试中发现的错误如每次评审和测试中发现的错误如何修正何修正;n n描述描述希望得到的质量度量希望得到的质量度量;n n说明说明各种软件人员的职责各种软件人员的职责,规定为,规定为了达到质量目标他们必须进行哪些了达到质量目标他们必须进行哪些活动。活动。n n建立建立uu 在各阶段中执行质量评价的在各阶段中执行质量评价的质质量评价和质量检查

23、系统量评价和质量检查系统uu 有效运用质量信息的有效运用质量信息的质量信息质量信息系统系统,并使其运行。,并使其运行。质量保证的实施质量保证的实施n n软件质量保证的实施需要从纵向软件质量保证的实施需要从纵向和横向两个方面展开。和横向两个方面展开。uu 要求所有与软件生存期有关的要求所有与软件生存期有关的人员都要参加人员都要参加uu 要求对产品形成的全过程进行要求对产品形成的全过程进行质量管理质量管理n n这要求整个软件部门齐心协力,这要求整个软件部门齐心协力,不断完善软件的开发环境。此外不断完善软件的开发环境。此外还需要与用户共同合作。还需要与用户共同合作。质量目标与度量质量目标与度量n n

24、为了开发高质量的软件,需要为了开发高质量的软件,需要明确明确软件的功能软件的功能,明确软件应达到什么明确软件应达到什么样的质量标准样的质量标准,即,即质量目标质量目标。n n为了达到这个目标,为了达到这个目标,在开发过程中在开发过程中的各个阶段进行检查和评价的各个阶段进行检查和评价。n n在做质量评价时,在做质量评价时,需要有对质量进需要有对质量进行度量的准则和方法行度量的准则和方法。n n需要有在软件生存期中如何使用这需要有在软件生存期中如何使用这些准则和方法的些准则和方法的质量保证步骤质量保证步骤,以,以及提高该项作业效率的及提高该项作业效率的工具工具软件质量度量和保证的条件软件质量度量和

25、保证的条件n n适应性:适应性:适应各种用户、软件类型适应各种用户、软件类型n n易学性:易学性:不需要特殊技术,易掌握不需要特殊技术,易掌握n n可靠性:可靠性:同个软件的评价结果一致同个软件的评价结果一致n n针对性:针对性:设计阶段就确立质量目标,设计阶段就确立质量目标,在各个阶段实施落实。在各个阶段实施落实。n n客观性:客观性:n n经济性:经济性:质量保证活动的实施步骤:质量保证活动的实施步骤:n nTarget:以用户要求和开发方针为:以用户要求和开发方针为依据,对质量需求准则、质量设计依据,对质量需求准则、质量设计准则的各质量特性设定质量目标。准则的各质量特性设定质量目标。n

26、nPlan:设定适合于被开发软件的评:设定适合于被开发软件的评测检查项目测检查项目(质量评价准则质量评价准则)。研讨。研讨实现质量目标的方法或手段。实现质量目标的方法或手段。n nDo:制作高质量的规格说明和程序。:制作高质量的规格说明和程序。在接受质量检查前先做自我检查在接受质量检查前先做自我检查。n nCheck:以以Plan阶段设定的质量评阶段设定的质量评价准则进行评价。价准则进行评价。计算结果用质量计算结果用质量图的形式表示图的形式表示出来。比较评价结果出来。比较评价结果的质量得分和质量目标,看其是否的质量得分和质量目标,看其是否合格。合格。n nAction:对对评价发现的问题进行改

27、评价发现的问题进行改进活动进活动,如果实现并达到了质量目,如果实现并达到了质量目标就转入下一个工程阶段。标就转入下一个工程阶段。这样重这样重复复“Plan”到到“Action”的过程的过程,直到整个开发项目完成。直到整个开发项目完成。软件的质量设计软件的质量设计n n质量特性转换为软件的内部结构质量特性转换为软件的内部结构n n在在软件定义阶段软件定义阶段,必须定义对软件必须定义对软件的质量需求的质量需求。即确定软件的质量特。即确定软件的质量特性及必需的评价准则,并定量地设性及必需的评价准则,并定量地设定其必须达到的质量水平定其必须达到的质量水平n n在以后软件开发的每一阶段结束时,在以后软件

28、开发的每一阶段结束时,要算出评价的分数要算出评价的分数,然后与,然后与目标值目标值加以对照加以对照,以评估在这一阶段开发,以评估在这一阶段开发的软件质量是否达到要求。的软件质量是否达到要求。n n为了实现规定的质量特性,就需要为了实现规定的质量特性,就需要把这些把这些质量特性转换为软件的内部质量特性转换为软件的内部结构的特性结构的特性。n n例如,软件质量需求中的例如,软件质量需求中的“性能性能”,可以转换成软件内部结构中的构,可以转换成软件内部结构中的构成元素,即成元素,即每一个程序模块和物理每一个程序模块和物理数据各自应具有的性能特性数据各自应具有的性能特性。这些这些性能特性的累积就形成外

29、部规格中性能特性的累积就形成外部规格中的性能特性的性能特性。软件的结构特性与评价标准软件的结构特性与评价标准n n结构特性结构特性 逻辑数据层次逻辑数据层次n n评价标准评价标准 uu 全部数据元素定义完毕全部数据元素定义完毕uu 所有层次的操作符定义完毕所有层次的操作符定义完毕n n结构特性结构特性 功能层次功能层次n n评价标准评价标准uu 全部功能元素定义完毕全部功能元素定义完毕uu 所有层次的操作符定义完毕所有层次的操作符定义完毕n n结构特性结构特性 逻辑数据与功能的对应逻辑数据与功能的对应关系关系n n评价准则评价准则uu 所有数据都与功能对应所有数据都与功能对应uu 所有功能元素

30、都与数据对应所有功能元素都与数据对应uu 逻辑数据与功能的相互关系个数逻辑数据与功能的相互关系个数(局部)(局部) n n结构特性结构特性 物理数据层次物理数据层次n n评价准则评价准则uu 全部数据元素定义完毕全部数据元素定义完毕uu 物理数据之间的所有指针定义完物理数据之间的所有指针定义完毕毕uu 上述指针都具有层次性上述指针都具有层次性n n结构特性结构特性 模块层次模块层次n n评价准则评价准则uu 所有模块定义完毕所有模块定义完毕uu 模块之间所有控制关系定义完毕模块之间所有控制关系定义完毕uu 上述关系都是标准过程调用形式上述关系都是标准过程调用形式uu 各层次上的模块大小适当各层

31、次上的模块大小适当n n结构特性结构特性 物理数据与模块的对应关系物理数据与模块的对应关系n n评价准则评价准则 uu 所有物理数据都与模块对应所有物理数据都与模块对应uu 所有模块都与物理数据对应所有模块都与物理数据对应uu 对应于一个物理数据的模块数对应于一个物理数据的模块数(以一对一为好)(以一对一为好)n n结构特性结构特性 逻辑数据与物理数据的对应关系逻辑数据与物理数据的对应关系n n评价准则评价准则uu 所有逻辑数据都与物理数据对应所有逻辑数据都与物理数据对应uu 对应于一个物理数据的逻辑数据对应于一个物理数据的逻辑数据数(以一对一为好)数(以一对一为好)n n结构特性结构特性 功

32、能与模块的对应关系功能与模块的对应关系n n评价准则评价准则uu 所有功能都与模块对应所有功能都与模块对应uu 对应模块的功能个数(以一对对应模块的功能个数(以一对一为好)一为好)软件可靠性软件可靠性n n软件生存期与软件寿命的关系软件生存期与软件寿命的关系n n在软件工程中常用的定义在软件工程中常用的定义n n软件可靠性定义软件可靠性定义n n测试中的可靠性分析测试中的可靠性分析n n测试精确度和测试覆盖度的评价测试精确度和测试覆盖度的评价软件生存期与软件寿命的关系软件生存期与软件寿命的关系n n一切有生命的东西都有一个一切有生命的东西都有一个“寿命寿命”n n这个概念也可以延伸到对非生命产

33、这个概念也可以延伸到对非生命产品的质量评价上来。例如一个电子品的质量评价上来。例如一个电子产品的寿命就是指该产品从出厂直产品的寿命就是指该产品从出厂直到丧失使用价值的持续时间。到丧失使用价值的持续时间。n n从软件工程的角度来说,从软件工程的角度来说,软件产品软件产品的寿命是指软件的整个生存期的寿命是指软件的整个生存期。n n从软件用户的角度来看,更关心的从软件用户的角度来看,更关心的是是软件在交付使用后的情况如何软件在交付使用后的情况如何。n n希望用一个指标希望用一个指标平均失效间隔时间平均失效间隔时间 MTBF(MeanTime Between Failure) 来表明,在规定的要求和条

34、件下,来表明,在规定的要求和条件下,能在多大的程度上依赖这个软件来能在多大的程度上依赖这个软件来完成任务。完成任务。n n我们把我们把在使用期间软件能够正常工在使用期间软件能够正常工作的持续时间叫做软件的使用寿命作的持续时间叫做软件的使用寿命。n n软件的软件的使用寿命与输入环境有关使用寿命与输入环境有关。n n例如,有一个存在缺陷的编译程序,例如,有一个存在缺陷的编译程序,当用于学生做简单练习时,当用于学生做简单练习时,MTBF可能很长。而做一个大的课题时,可能很长。而做一个大的课题时,由于程序连续出错,由于程序连续出错,MTBF就会变就会变得很短。得很短。n nMTBF可以看做是对软件可靠

35、性做可以看做是对软件可靠性做估计的样本数据,但不能看做是依估计的样本数据,但不能看做是依据。据。n n“错误错误”这一术语。在没有特别加这一术语。在没有特别加以说明的情况下,这是一个泛用的、以说明的情况下,这是一个泛用的、模糊的概念。模糊的概念。n n它指的可能是它指的可能是bug(设计中的差错设计中的差错)、 fault(故障故障)、error(错误错误)、failure(失效失效)、crash(重大事故重大事故)、problem(疑问疑问)等。等。n n在汉译中,这些术语的使用更加混在汉译中,这些术语的使用更加混乱。乱。在软件工程中常用的定义在软件工程中常用的定义n n故障故障(fault

36、):软件的内在缺陷软件的内在缺陷。这。这些缺陷可在生存期各个阶段被引入。些缺陷可在生存期各个阶段被引入。n n错误错误(error):故障在一定的环境条故障在一定的环境条件下的暴露件下的暴露,导致系统在运行中出,导致系统在运行中出现了不正常、不正确、不按规范执现了不正常、不正确、不按规范执行的状态,称为软件出错。行的状态,称为软件出错。n n失效失效(failure):对错误不做任何修对错误不做任何修正和恢复,正和恢复, 导致系统的输出不满足导致系统的输出不满足用户要求用户要求,称为软件的一次失效。,称为软件的一次失效。n n以上定义的故障、错误和失效,分以上定义的故障、错误和失效,分别代表了

37、别代表了广义的广义的“错误错误”在不同的在不同的条件下条件下所对应的术语。所对应的术语。n n它们可以理解为:设计者的失误它们可以理解为:设计者的失误导致系统中留有错误的设计导致系统中留有错误的设计缺缺陷或陷或“故障故障”(fault),这些,这些故障故障导致系统的错误执行导致系统的错误执行错误错误(error),由于,由于错误错误导致系统的错导致系统的错误输出误输出失效失效(failure)。n n故障是物理地或静态地存在的故障是物理地或静态地存在的n n失误、错误和失效都是系统的一种失误、错误和失效都是系统的一种动态的转瞬即逝的现象动态的转瞬即逝的现象n n软件发生失效标志着软件一次使用软

38、件发生失效标志着软件一次使用寿命的结束寿命的结束n n发生过失效的软件通常仍然是可用发生过失效的软件通常仍然是可用的。只有当软件频繁失效,或者公的。只有当软件频繁失效,或者公认已经认已经“过时过时”了的时侯,软件才了的时侯,软件才被废弃,被废弃,意味着当前这一版本软件意味着当前这一版本软件使用寿命的终结。使用寿命的终结。软件故障产生原因软件故障产生原因n n支持软件工作的基本条件支持软件工作的基本条件(除硬件除硬件外的操作系统、数据库管理系统、外的操作系统、数据库管理系统、编译程序、微代码等编译程序、微代码等)的缺陷的缺陷n n软件设计不当软件设计不当n n加入了允许范围之外的输入加入了允许范

39、围之外的输入软件可靠性的定义软件可靠性的定义n n软件可靠性是软件在软件可靠性是软件在给定的时间间给定的时间间隔隔及及给定的环境条件给定的环境条件下,下,按设计要按设计要求求,成功地运行程序成功地运行程序的概率。的概率。n n环境条件环境条件指的是指的是软件的使用环境软件的使用环境。无论是什么软件,如果不对它的使无论是什么软件,如果不对它的使用环境加以限制,都是会失效的。用环境加以限制,都是会失效的。这种失效的数据,不能用来度量软这种失效的数据,不能用来度量软件的可靠性。件的可靠性。n n规定的时间规定的时间在定义中,一般采用在定义中,一般采用“运行时间运行时间” t 作为时间的尺度。作为时间

40、的尺度。因因 n n具体要处理的问题是多种多样的具体要处理的问题是多种多样的 n n其对应的输入环境是随机其对应的输入环境是随机 n n程序中相应程序路径的选取也是随程序中相应程序路径的选取也是随机的机的 n n软件的失效也是随机的软件的失效也是随机的n n应当把运行时间应当把运行时间t当作随机变量来考当作随机变量来考虑。虑。n n规定的功能规定的功能在考虑软件可靠性时,在考虑软件可靠性时,首先应当明确首先应当明确软件的功能是什么软件的功能是什么,哪些功能是主要的哪些功能是主要的,哪些功能是次哪些功能是次要的要的。一般从软件需求分析说明书。一般从软件需求分析说明书和设计说明书中可以了解这些情况

41、。和设计说明书中可以了解这些情况。uu 由于功能不同,失效带来的损失由于功能不同,失效带来的损失就不一样。因此,还要明确就不一样。因此,还要明确哪些失哪些失效是致命的效是致命的,哪些失效是非致命的哪些失效是非致命的,哪些又是容易修复的哪些又是容易修复的。此外,还要。此外,还要明确,明确,怎样才算是完成了一个规定怎样才算是完成了一个规定的功能的功能。n n成功地运行程序成功地运行程序是指不仅程序能是指不仅程序能正确地运行,满足用户对它的功能正确地运行,满足用户对它的功能要求,要求, 而且当程序一旦受到意外而且当程序一旦受到意外的伤害,或系统故障时,能尽快恢的伤害,或系统故障时,能尽快恢复,仍能正

42、常地运行。复,仍能正常地运行。测试中的可靠性分析测试中的可靠性分析n n在软件开发的过程中,在软件开发的过程中,利用测试的利用测试的统计数据,估算软件的可靠性统计数据,估算软件的可靠性,以,以控制软件的质量是至关重要的。控制软件的质量是至关重要的。n n推测错误的产生频度,即推测错误推测错误的产生频度,即推测错误产生的时间间隔产生的时间间隔n n推测残留在程序中的错误数推测残留在程序中的错误数n n评价测试的精确度和覆盖率评价测试的精确度和覆盖率推测错误的产生频度推测错误的产生频度n n估算错误产生频度的一种方法是估算错误产生频度的一种方法是估算平均失效等待时间估算平均失效等待时间MTTF (

43、Mean Time To Failure)n nMTTF估算公式估算公式(Shooman模型模型)故障累积指数曲线模型故障累积指数曲线模型估算软件中故障总数估算软件中故障总数ET 的方法的方法利用利用Shooman模型模型估算程序中原估算程序中原来错误总量来错误总量ET 瞬间估算瞬间估算解此方程组解此方程组利用最小二乘法进行程序原有错利用最小二乘法进行程序原有错误数误数ET及及K的估算的估算n n由失效率由失效率 n n整理得整理得 n n若对程序进行若干次不同的功能测试,若对程序进行若干次不同的功能测试,可得到一系列实验数据可得到一系列实验数据 Ec ( ti ), ( ti ), i =

44、1, 2, , nn n令令 n n有有n n用最小二乘法解此方程组,可解出用最小二乘法解此方程组,可解出a、b的估计值的估计值n n最后得到最后得到 K, ET 的估计值的估计值利利用用植植入入故故障障法法估估算算程程序序中中原原有有故故障总数障总数ET 捕获再捕获抽样法捕获再捕获抽样法n n设设Ns 是是在测试前人为地向程序中植在测试前人为地向程序中植入的故障数入的故障数,ns 是是经过一段时间测经过一段时间测试后发现的播种故障数目试后发现的播种故障数目,n 是是在测在测试中又发现的程序原有故障数试中又发现的程序原有故障数。设。设测试用例发现植入故障和原有故障测试用例发现植入故障和原有故障

45、的能力相同的能力相同,则,则程序中原有故障总程序中原有故障总数数 N ( =ET )估算值为估算值为Hyman分别测试法分别测试法n n由两个测试员同时互相独立地测试由两个测试员同时互相独立地测试同一程序的两个副本,用同一程序的两个副本,用 t 表示表示测测试时间试时间,记,记 t0时,时,程序中原有故程序中原有故障总数是障总数是 B0;tt1 时,时,测试员甲测试员甲发现的故障总数是发现的故障总数是 B1;测试员乙发测试员乙发现的故障总数是现的故障总数是 B2;其中两人发现;其中两人发现的的相同故障数目是相同故障数目是 bc;两人发现的;两人发现的不同故障数目是不同故障数目是 bi。n n在

46、大程序测试时,头几个月两个测在大程序测试时,头几个月两个测试员测试的结果应当比较接近,试员测试的结果应当比较接近,bi 不是很大不是很大。这时有。这时有n n如果如果bi比较显著比较显著,应当每隔一段时应当每隔一段时间间,由两个测试员再进行分别测试由两个测试员再进行分别测试,分析测试结果,估算分析测试结果,估算B0。如果。如果bi减减小,或几次估算值的结果相差不多,小,或几次估算值的结果相差不多,则则B0作为原有错误总数的估算值。作为原有错误总数的估算值。测试精确度和测试覆盖度的评价测试精确度和测试覆盖度的评价n n在软件测试过程中累积发现的故障在软件测试过程中累积发现的故障数,数,可用带有平

47、均值函数可用带有平均值函数 m(t) 的非的非齐次泊松过程齐次泊松过程(NHPP)来描述:来描述:n n其中,其中,N是在测试中可能发现的故是在测试中可能发现的故障总数,障总数,b是故障发现率。是故障发现率。n n当当N一定时,一定时,b越大,在短期内发现越大,在短期内发现的故障越多。的故障越多。n nN 可以认为是可以认为是当测试时间无限延长当测试时间无限延长时时估计可能发现的故障总数估计可能发现的故障总数。由于。由于uu 测试的不完全,在某些很难发现测试的不完全,在某些很难发现的故障未发现前就可能结束测试的故障未发现前就可能结束测试uu 若程序中潜在的故障较少,则参若程序中潜在的故障较少,

48、则参数数N的估计误差较大的估计误差较大n n因此,只用测试中累积发现的故障因此,只用测试中累积发现的故障数来评价测试是不够的。需要从测数来评价测试是不够的。需要从测试的试的量的方面量的方面和和质的方面质的方面,全面地,全面地评价测试。评价测试。n nSPQL (Software Product Quality Level) 用如下公式度量:用如下公式度量: SPQL AcCvn n其中,其中,Ac (Test Accuracy) 是是测试测试的精确度的精确度,它反映了测试的质量;,它反映了测试的质量;Cv (Test Coveragy) 是是测试的覆盖测试的覆盖度度,它反映了测试的数量。,它反

49、映了测试的数量。测试结束时软件产品质量水准测试结束时软件产品质量水准n n测试质量的度量可以靠测试质量的度量可以靠测试的故障测试的故障捕捉率和遗漏率捕捉率和遗漏率来衡量。来衡量。n n测试数量的度量指标是测试数量的度量指标是执行的测试执行的测试用例数用例数、确认的程序路径数确认的程序路径数等等;等等;测试精确度测试精确度Acn n表明在测试的过程中以多大的把握表明在测试的过程中以多大的把握捕捉了软件中潜在的故障。捕捉了软件中潜在的故障。n n测定测定Ac,需要预先植入播种故障,需要预先植入播种故障,然后通过测试,根据播种故障的捕然后通过测试,根据播种故障的捕捉率来推测原有故障的捕获率。捉率来推

50、测原有故障的捕获率。n n用用ns 表示表示经过相当长时间测试可能经过相当长时间测试可能发现的播种故障数发现的播种故障数,用,用Ns 表示测试表示测试对象软件内对象软件内预先埋设的播种故障总预先埋设的播种故障总数数,用平均值为用平均值为m(t)的的NHPP模型模型描描述测试时发现播种故障的过程述测试时发现播种故障的过程n nm(t)的收敛值的收敛值 m( )Nn n测试精确度测试精确度Ac的推测值:的推测值:n n若设测试过程中到时刻若设测试过程中到时刻 ti 能发现的能发现的累积播种故障总数为累积播种故障总数为 yi ,则在测试,则在测试期间可得到一连串数据期间可得到一连串数据 (t0, 0

51、), (t1, y1), , (tm, ym)n n可得到一组方程:可得到一组方程:n n应用最小二乘法可得到参数应用最小二乘法可得到参数N 与与 b的估计值,并得到测试精确度的估计值,并得到测试精确度Ac。测试覆盖率测试覆盖率Cvn n表明在整个测试期间发现软件内潜表明在整个测试期间发现软件内潜在故障的可能性有多大。在故障的可能性有多大。n n可通过被测试对象软件内潜在的原可通过被测试对象软件内潜在的原有故障的捕捉率来测定的。有故障的捕捉率来测定的。n n测试过程中测试过程中已发现原有故障总数已发现原有故障总数为为 n0(实测值实测值),经过相当长时间测试,经过相当长时间测试后后可能发现的原

52、有故障总数可能发现的原有故障总数为为N0,n n采用平均值函数采用平均值函数m(t)的的NHPP模型模型描述测试发现原有故障的过程描述测试发现原有故障的过程n nm(t)的收敛值的收敛值m( )Ncn n测试覆盖率测试覆盖率Cv的推测值的推测值: n n测试开始后,由于测试员对程序和测试开始后,由于测试员对程序和测试环境不熟悉,造成拖期。测试环境不熟悉,造成拖期。n n为描述这种情形,对原来为描述这种情形,对原来NHPP的的指数型平均值函数加以改造:指数型平均值函数加以改造:n n它是它是把原来的指数型平均值函数在把原来的指数型平均值函数在时间轴上平移而得到的结果时间轴上平移而得到的结果,是具

53、是具有时间延迟的有时间延迟的NHPP模型模型。n n测试员从发现错误征兆到确认错误,测试员从发现错误征兆到确认错误,需要反复执行程序,以再现错误,需要反复执行程序,以再现错误,造成时间拖延。造成时间拖延。n n因此,在使用测试结果进行软件质因此,在使用测试结果进行软件质量评价时,量评价时,只用指数型的只用指数型的NHPP的的平均值曲线平均值曲线(A)是不够的是不够的。实测结果实测结果多是如多是如(B)所示的所示的S型曲线型曲线。n n实验表明:实验表明:uu 对于一般功能单纯的小规模的对于一般功能单纯的小规模的程序模块,具有时间延迟的程序模块,具有时间延迟的NHPP模型比较合适;模型比较合适;

54、uu 对于功能比较复杂的程序模块,对于功能比较复杂的程序模块,S型型NHPP模型比较合适;模型比较合适;uu 对于对于80000行以上的程序,最基行以上的程序,最基本的指数型本的指数型NHPP模型比较合适。模型比较合适。软件配置管理软件配置管理n n在软件建立时在软件建立时变更是不可避免的变更是不可避免的,因为在进行变更前没有仔细分析,因为在进行变更前没有仔细分析,或没有进行变更控制,或没有进行变更控制,变更加剧了变更加剧了项目中软件人员之间的混乱项目中软件人员之间的混乱。n n协调软件开发使得混乱减到最小的协调软件开发使得混乱减到最小的技术叫做配置管理技术叫做配置管理。n n配置管理是一组标

55、识、组织和控制配置管理是一组标识、组织和控制修改的活动,目的是使错误达到最修改的活动,目的是使错误达到最小并最有效地提高生产率。小并最有效地提高生产率。软件配置管理的概念软件配置管理的概念n n软件配置管理,简称软件配置管理,简称SCM,是一种,是一种“保护伞保护伞”活动,它活动,它应用于整个软应用于整个软件工程过程件工程过程。n nSCM活动的目标是为了活动的目标是为了 (1) 标识变更;标识变更; (2) 控制变更;控制变更; (3) 确保变更正确地实现;确保变更正确地实现; (4) 向其他有关的人报告变更。向其他有关的人报告变更。n n在软件工程过程中产生的所有信息在软件工程过程中产生的

56、所有信息项(文档、报告、程序、表格、数项(文档、报告、程序、表格、数据)据)构成了软件配置构成了软件配置。n n软件配置是软件的具体形态在某一软件配置是软件的具体形态在某一时刻的瞬时影像。时刻的瞬时影像。n n随着软件工程过程的进展,随着软件工程过程的进展,软件配软件配置项置项(SCI)数目快速增加。系统规数目快速增加。系统规格说明可繁衍出软件项目实施计划格说明可繁衍出软件项目实施计划和软件需求规格说明。它们又依次和软件需求规格说明。它们又依次繁衍出建立信息层次的其它文档繁衍出建立信息层次的其它文档。基线基线 (Baseline)n n基线是软件生存期中各开发阶段末基线是软件生存期中各开发阶段

57、末尾的特定点,又称里程碑。尾的特定点,又称里程碑。n n由正式的技术评审而得到的由正式的技术评审而得到的SCI协协议和软件配置的正式文本才能成为议和软件配置的正式文本才能成为基线。基线。n n基线的基线的作用是把各阶段工作的划分作用是把各阶段工作的划分更加明确化更加明确化,以便于检验和肯定阶,以便于检验和肯定阶段成果。段成果。软件开发各阶段的基线软件开发各阶段的基线项目数据库项目数据库n n一旦一旦一个一个SCI成为基线成为基线,就把它存就把它存放到项目数据库中放到项目数据库中。n n当软件组织成员想要当软件组织成员想要对基线对基线SCI进进行修改时行修改时,把它从项目数据库中复把它从项目数据

58、库中复制到该工程师的专用工作区中制到该工程师的专用工作区中。n n例如,把一个例如,把一个名为名为B的的SCI从项目从项目数据库复制到工程师的专用工作区数据库复制到工程师的专用工作区中中。工程师在工程师在B(B的副本)上完的副本)上完成要求的变更成要求的变更,再用再用B来更新来更新B。n n有些系统中把这个基线有些系统中把这个基线SCI锁定。锁定。n n在变更完成、评审和批准之前,不在变更完成、评审和批准之前,不许对它做任何操作。许对它做任何操作。基线基线SCI和项目数据库和项目数据库软件配置项软件配置项 SCIn n软件配置管理的对象就是软件配置管理的对象就是SCI软软件配置项件配置项。uu

59、 系统规格说明系统规格说明uu 软件项目实施计划软件项目实施计划uu 软件需求说明软件需求说明uu 可执行的原型可执行的原型uu 初步的用户手册初步的用户手册uu 设计规格说明设计规格说明uu 源代码清单源代码清单uu 测试计划和过程、测试用例和测试计划和过程、测试用例和测试结果记录测试结果记录uu 操作和安装手册操作和安装手册uu 可执行程序(可执行程序模块、可执行程序(可执行程序模块、连接模块)连接模块)uu 数据库描述(模式和文件结构、数据库描述(模式和文件结构、初始内容)初始内容)uu 正式的用户手册正式的用户手册uu 维护文档(软件问题报告、维维护文档(软件问题报告、维护请求、工程变

60、更次序)护请求、工程变更次序)n n软件工程标准软件工程标准n n项目开发总结项目开发总结n n除以上所列除以上所列SCI以外,许多软件工以外,许多软件工程组织还把程组织还把配置控制之下的软件工配置控制之下的软件工具具列入其中,即列入其中,即编辑程序编辑程序、编译程编译程序序、其它其它CASE工具的特定版本工具的特定版本。因为要使用这些工具来生成文档、因为要使用这些工具来生成文档、程序和数据,如果编译程序的版本程序和数据,如果编译程序的版本不同,可能产生的结果也不同。不同,可能产生的结果也不同。配置对象配置对象n n在实现在实现SCM时,把时,把SCI组织成配置组织成配置对象对象,在项目数据库

61、中用一个,在项目数据库中用一个单一单一的名字来组织它们的名字来组织它们。n n一个配置对象有一个一个配置对象有一个名字名字和一组和一组属属性性,并通过某些联系,并通过某些联系“连接连接”到其到其它对象。它对象。n n每个对象与其它对象的联系用箭头每个对象与其它对象的联系用箭头表示。箭头指明了一种构造关系。表示。箭头指明了一种构造关系。配置对象配置对象n n双向箭头则表明一种相互关系双向箭头则表明一种相互关系。如。如果对果对“源代码源代码”对象作了一个变更,对象作了一个变更,软件工程师就可以根据这种相互关软件工程师就可以根据这种相互关系确定,其它哪些对象(和系确定,其它哪些对象(和SCI)可能受

62、到影响。可能受到影响。软件配置管理的任务软件配置管理的任务n n软件配置管理(软件配置管理(SCM)的任务是:)的任务是:uu 标识单个的标识单个的SCIuu 标识和管理软件各种版本标识和管理软件各种版本uu 控制变更控制变更uu 审查软件配置审查软件配置uu 报告所有加在配置上的变更。报告所有加在配置上的变更。配置标识配置标识n n一方面随着软件生存期的向前推进,一方面随着软件生存期的向前推进,SCI的数量不断增多的数量不断增多。n n整个软件生存期的整个软件生存期的软件配置就象一软件配置就象一部不断演变的电影部不断演变的电影,而某一时刻的,而某一时刻的配置就是这部电影的一个片段。配置就是这

63、部电影的一个片段。n n为了方便为了方便对软件配置的各个片段对软件配置的各个片段(SCI)进行控制和管理进行控制和管理,不致造,不致造成混乱,首先应给它们成混乱,首先应给它们命名命名。对象类型对象类型n n基本对象基本对象:是由软件工程师在分析、是由软件工程师在分析、设计、编码和测试时所建立的设计、编码和测试时所建立的文本文本单元单元。例如,基本对象可能是需求。例如,基本对象可能是需求规格说明中的一节,一个模块的源规格说明中的一节,一个模块的源程序清单、一组用来测试一个等价程序清单、一组用来测试一个等价类的测试用例。类的测试用例。n n复合对象复合对象:是基本对象或其它复合是基本对象或其它复合

64、对象的对象的一个收集一个收集。n n对象标识:对象标识: (名字、描述、资源、实现)(名字、描述、资源、实现)n n对象的对象的名字名字明确地标识对象。明确地标识对象。n n对象对象描述描述包括:包括:SCI类型类型(如文档、(如文档、程序、数据)、程序、数据)、项目标识项目标识、变更变更和和或或版本信息版本信息。n n资源资源包括由对象包括由对象产生的产生的、处理的处理的、引用的引用的或或其它需要其它需要的的一些实体一些实体。n n基本对象的实现基本对象的实现是是指向指向文本单元文本单元的的指针指针,复合对象的实现为,复合对象的实现为null。命名对象之间的联系命名对象之间的联系n n对象的

65、层次关系:对象的层次关系:一个对象可以一个对象可以是一个复合对象的一个组成部分,是一个复合对象的一个组成部分,用联系用联系标识标识。 E-R diagram 1.4 data model; data model Design Specification;n n就可以建立就可以建立SCI的一个层次。的一个层次。n n对象的相互关联关系:对象的相互关联关系:对象跨越对对象跨越对象层次的分支相互关联。这些交叉象层次的分支相互关联。这些交叉的结构联系表达方式如下:的结构联系表达方式如下: data model data flow model; (两个复合对象之间的相互联系两个复合对象之间的相互联系)

66、data model test case class m; (一个复合对象与一个特定的基一个复合对象与一个特定的基本对象之间的相互联系)本对象之间的相互联系)演变图演变图n n整个软件工程过程中所涉及的软件整个软件工程过程中所涉及的软件对象都必须加以标识。对象都必须加以标识。n n在对象成为基线以前可能要做多次在对象成为基线以前可能要做多次变更,在成为基线之后也可能需要变更,在成为基线之后也可能需要频繁地变更。频繁地变更。n n对于每一配置对象都可以建立一个对于每一配置对象都可以建立一个演变图演变图,用演变图记叙对象的,用演变图记叙对象的变更变更历史历史。演变图演变图n n在某些工具中,当前保

67、持的在某些工具中,当前保持的只是最只是最后版本的完全副本后版本的完全副本。n n为了得到较早时期为了得到较早时期(文档或程序文档或程序)的的版本,可以从最后版本中版本,可以从最后版本中“提取提取”出出(由工具编目的由工具编目的)变更变更,使得,使得当前当前配置直接可用配置直接可用,并使得,并使得其它版本也其它版本也可用可用。版本控制版本控制n n版本控制是版本控制是SCM的基础,它管理并的基础,它管理并保护开发者的软件资源。保护开发者的软件资源。n n版本控制管理在软件工程过程中建版本控制管理在软件工程过程中建立起立起配置对象的不同版本配置对象的不同版本。n n版本管理可以把版本管理可以把一些

68、属性结合到各一些属性结合到各个软件版本个软件版本上。上。n n通过通过描述所希望的属性集合描述所希望的属性集合来来确定确定(或(或构造构造)所想要的配置所想要的配置。n n使用使用演变图演变图来表示系统的不同版本。来表示系统的不同版本。n n图中的各个结点都是图中的各个结点都是聚合对象聚合对象,是,是一个一个完全的软件版本完全的软件版本。n n软件的每一版本都是软件的每一版本都是SCI(源代码、(源代码、文档、数据)文档、数据)的一个收集的一个收集,且各个,且各个版本都可能由不同的变种组成。版本都可能由不同的变种组成。n n例如,一个简单的程序版本由例如,一个简单的程序版本由1、2、3、4和和

69、5等部件组成。其中等部件组成。其中部件部件4在在软件软件使用彩色显示器使用彩色显示器时使用,时使用,部件部件5在软件在软件使用单色显示器使用单色显示器时使用。因时使用。因此,可以定义版本的两个变种。此,可以定义版本的两个变种。版本管理的主要任务版本管理的主要任务n n集中管理档案,安全授权机制集中管理档案,安全授权机制:uu 版本管理的操作版本管理的操作将开发组的档将开发组的档案集中地存放在服务器上案集中地存放在服务器上,经系经系统管理员授权给各个用户统管理员授权给各个用户。uu 用户通过登入(用户通过登入(check in)和检)和检出(出(check out)的方式访问服务)的方式访问服务

70、器上的文件,未经授权的用户无器上的文件,未经授权的用户无法访问服务器上的文件。法访问服务器上的文件。n n软件版本升级管理软件版本升级管理:uu 每次登入时,在服务器上都会生每次登入时,在服务器上都会生成新的版本。成新的版本。uu 任何版本都可以随时检出编辑,任何版本都可以随时检出编辑,同一应用的不同版本可以像树枝一同一应用的不同版本可以像树枝一样向上增长。样向上增长。n n加锁功能加锁功能:uu 目的是目的是在文件更新时保护文件在文件更新时保护文件,避免不同用户更改同一文件时发避免不同用户更改同一文件时发生冲突生冲突。uu 某一文件一旦被某一文件一旦被登入登入,锁即被解锁即被解除除,该文件可

71、被其它用户使用。,该文件可被其它用户使用。uu 在在更新一个文件之前锁定它更新一个文件之前锁定它,避,避免变更没有锁定的项目源文件。免变更没有锁定的项目源文件。n n在文件登入和检出时,需要注意登在文件登入和检出时,需要注意登入和检出的使用入和检出的使用:uu 当需要修改某个小缺陷时,应当需要修改某个小缺陷时,应只只检出完成工作必需的最少文件检出完成工作必需的最少文件;uu 需要对文件变更时,应登入它并需要对文件变更时,应登入它并加锁加锁,保留对每个变更的记录保留对每个变更的记录;uu 应避免长时间地锁定文件。如果应避免长时间地锁定文件。如果需要长时间工作于某个文件,最需要长时间工作于某个文件

72、,最好能好能创建一个分支创建一个分支,并在分支上,并在分支上做工作。做工作。uu 如果需要做较大的变更,可有两如果需要做较大的变更,可有两种选择:种选择: a.将需要的所有文件检出并加锁,将需要的所有文件检出并加锁,然后正常处理然后正常处理; b.为需要修改的所有分支创建分为需要修改的所有分支创建分支,把变更与主干支,把变更与主干“脱机脱机”,然后,然后把结果合并回去。把结果合并回去。变更控制变更控制n n软件生存期内全部的软件配置是软软件生存期内全部的软件配置是软件产品的真正代表件产品的真正代表,必须使其保持,必须使其保持精确精确。n n软件工程过程中软件工程过程中某一阶段的变更某一阶段的变

73、更,均要均要引起软件配置的变更引起软件配置的变更,这种变,这种变更必须严格加以更必须严格加以控制控制和和管理管理,保持,保持修改信息。修改信息。n n变更控制包括变更控制包括建立控制点建立控制点和和建立报建立报告与审查制度告与审查制度。变更控制变更控制过程过程软件变更有两类不同情况:软件变更有两类不同情况:n n为改正小错误需要的变更为改正小错误需要的变更。它是必。它是必须进行的,通常不需要从管理角度须进行的,通常不需要从管理角度对这类变更进行审查和批准。但是,对这类变更进行审查和批准。但是,如果发现错误的阶段在造成错误的如果发现错误的阶段在造成错误的阶段的后面,例如在实现阶段发现阶段的后面,

74、例如在实现阶段发现了设计错误,则必须遵照标准的变了设计错误,则必须遵照标准的变更控制过程,把这个变更正式记入更控制过程,把这个变更正式记入文档,把所有受这个变更影响的文文档,把所有受这个变更影响的文档都做相应的修改。档都做相应的修改。n n为了增加或者删掉某些功能、或者为了增加或者删掉某些功能、或者为了改变完成某个功能的方法而需为了改变完成某个功能的方法而需要的变更要的变更。这类变更必须经过某种。这类变更必须经过某种正式的变更评价过程,以估计变更正式的变更评价过程,以估计变更需要的成本和它对软件系统其它部需要的成本和它对软件系统其它部分的影响。分的影响。uu 如果变更的代价比较小且对软件如果变

75、更的代价比较小且对软件系统其它部分没有影响,或影响系统其它部分没有影响,或影响很小,通常应批准这个变更。很小,通常应批准这个变更。 uu 如果变更的代价比较高,或者影如果变更的代价比较高,或者影响比较大,则必须权衡利弊,以响比较大,则必须权衡利弊,以决定是否进行这种变更。决定是否进行这种变更。uu 如果同意这种变更,如果同意这种变更,需要进一步需要进一步确定由谁来支付变更所需要的费确定由谁来支付变更所需要的费用。用。如果是用户要求的变更,则如果是用户要求的变更,则用户应支付这笔费用;否则,必用户应支付这笔费用;否则,必须完成某种成本效益分析,以须完成某种成本效益分析,以确定是否值得做这种变更。

76、确定是否值得做这种变更。n n这种变更报告和审查制度,对变更这种变更报告和审查制度,对变更控制来说起了一个安全保证作用。控制来说起了一个安全保证作用。n n在一个在一个SCI成为基线之前,可以对所成为基线之前,可以对所有合理的项目和技术申请进行非正有合理的项目和技术申请进行非正式的变更;式的变更;n n一旦某个一旦某个SCI经过正式的技术评审并经过正式的技术评审并得到批准,它就成了基线。以后如得到批准,它就成了基线。以后如果需要对它变更,就必须得到项目果需要对它变更,就必须得到项目负责人的批准,或者必须得到变更负责人的批准,或者必须得到变更控制负责人的批准。控制负责人的批准。 配置状态报告配置

77、状态报告n n为了清楚、及时地记载软件配置的为了清楚、及时地记载软件配置的变化,需要变化,需要对开发的过程做出系统对开发的过程做出系统的记录的记录,以反映开发活动的历史情,以反映开发活动的历史情况。这就是配置状态登录的任务。况。这就是配置状态登录的任务。n n登录主要登录主要根据变更控制小组会议的根据变更控制小组会议的记录记录,并产生,并产生配置状态报告配置状态报告。n n对于每一项变更,记录:发生了什对于每一项变更,记录:发生了什么?为什么会发生?谁做的?什么么?为什么会发生?谁做的?什么时侯发生的?会有什么影响?时侯发生的?会有什么影响?配置状态报告信息流配置状态报告信息流n n每次每次新

78、分配一个新分配一个SCI,或,或更新一个更新一个已有已有SCI的标识的标识,或,或一项变更申请一项变更申请被变更控制负责人批准被变更控制负责人批准,并给出了并给出了一个工程变更顺序一个工程变更顺序时时,在配置状态,在配置状态报告中就要增加一条变更记录条目。报告中就要增加一条变更记录条目。n n一旦进行了配置审计,其结果也应一旦进行了配置审计,其结果也应该写入报告之中。该写入报告之中。n n配置状态报告可以放在一个联机数配置状态报告可以放在一个联机数据库中,以便软件开发人员或者软据库中,以便软件开发人员或者软件维护人员可以对它进行查询或修件维护人员可以对它进行查询或修改。此外在软件配置报告中新登

79、录改。此外在软件配置报告中新登录的变更应当及时通知给管理人员和的变更应当及时通知给管理人员和软件工程师。软件工程师。n n配置状态报告对于大型软件开发项配置状态报告对于大型软件开发项目的成功起着至关重要的作用。避目的成功起着至关重要的作用。避免了可能出现的不一致和冲突。免了可能出现的不一致和冲突。配置审计配置审计n n软件的完整性软件的完整性,是指开发后期的,是指开发后期的软软件产品能够正确地反映用户要求件产品能够正确地反映用户要求。n n软件配置审计的目的就是要软件配置审计的目的就是要uu 证实整个软件生存期中各项产品证实整个软件生存期中各项产品在技术上和管理上的完整性。在技术上和管理上的完

80、整性。uu 确保所有文档的内容变动不超出确保所有文档的内容变动不超出当初确定的软件要求范围。使得软当初确定的软件要求范围。使得软件配置具有良好的可跟踪性。件配置具有良好的可跟踪性。n n软件配置审计是软件变更控制人员软件配置审计是软件变更控制人员掌握配置情况掌握配置情况、进行审批的依据进行审批的依据。n n软件的变更控制机制通常只能跟踪软件的变更控制机制通常只能跟踪到工程变更顺序产生为止。为确认到工程变更顺序产生为止。为确认变更是否正确完成变更是否正确完成? 一般可以用以一般可以用以下两种方法去审查:下两种方法去审查:uu 正式技术评审正式技术评审 uu 软件配置审计软件配置审计n n正式的技术评审正式的技术评审着重着重检查已完成修检查已完成修改的软件配置对象的技术正确性改的软件配置对象的技术正确性,n n评审者评审者评价评价SCI,决定它与其它,决定它与其它SCI的一致性,是否有遗漏或可能引起的一致性,是否有遗漏或可能引起的副作用。的副作用。n n正式技术评审应对所有的变更进行,正式技术评审应对所有的变更进行,除了那些最无价值的变更之外。除了那些最无价值的变更之外。n n软件配置审计软件配置审计作为正式技术评审的作为正式技术评审的补充,补充,评价在评审期间通常没有被评价在评审期间通常没有被考虑的考虑的SCI的特性的特性。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

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