《Ch03 软件质量控制4491.pptx》由会员分享,可在线阅读,更多相关《Ch03 软件质量控制4491.pptx(81页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第3章章 软件质量控制软件质量控制Software Quality Control3/26/202313.1 引言3.1.1 基本概念一、质量控制一、质量控制制造业的质量控制开始于二战期间的军事采购中,是制造业的质量控制开始于二战期间的军事采购中,是一种采用统计技术的工具一种采用统计技术的工具主要活动包括:主要活动包括:建立质量标准:建立质量标准:定义每一质量特性的规约定义每一质量特性的规约制定计划:制定计划:对制造过程、设备、采购、培训作出计划对制造过程、设备、采购、培训作出计划确定预防措施:确定预防措施:分析质量要素,谨慎控制生产过程分析质量要素,谨慎控制生产过程确定质量符合度确定质量符
2、合度3/26/20232确定质量符合度的方法:确定质量符合度的方法:解释质量标准解释质量标准随机抽样检查随机抽样检查抽样审查和度量抽样审查和度量度量与标准的对照度量与标准的对照评价质量符合度评价质量符合度应用统计方法决定是否接受该批次产品应用统计方法决定是否接受该批次产品审查数据、形成文档审查数据、形成文档3/26/20233根据质量控制模型中,工厂把原材料转变为可用根据质量控制模型中,工厂把原材料转变为可用的产品,用以下模型表示:的产品,用以下模型表示:U=F(R)其中,其中,R是一组材料,是一组材料,U是一组产品是一组产品工厂有工厂有2个特征:个特征:有明确定义的原材料(类型、质量特征)有
3、明确定义的原材料(类型、质量特征)有明确定义的产品、产品的缺陷、质量特征有明确定义的产品、产品的缺陷、质量特征3/26/20234质量特征产品概念定义产品质量特征规约销售使用质量审查产品制造设备安装采购与获取产品设计过程工程制造质量环质量控制与制造过程的关系3/26/20235产品质量符合度的测量可采用产品质量符合度的测量可采用统计抽样统计抽样方法,用方法,用总缺陷率估计:总缺陷率估计:=D/N其中,其中,D是存在缺陷的产品数,是存在缺陷的产品数,N是总产品数。如果总是总产品数。如果总缺陷率缺陷率总是低于某个可接受值,即可达到较高的置总是低于某个可接受值,即可达到较高的置信率信率另一种方法是另
4、一种方法是验收抽样验收抽样,即抽取,即抽取K个产品进行审个产品进行审查,若缺陷产品数小于某个可接受值查,若缺陷产品数小于某个可接受值C,即可认为总,即可认为总体可接受体可接受3/26/20236二、软件质量控制二、软件质量控制软件质量控制是一组由开发组织使用的程序和软件质量控制是一组由开发组织使用的程序和方法,用以在规定的资金投入和时间限制条件下,方法,用以在规定的资金投入和时间限制条件下,提供满足用户质量要求的软件产品并持续不断地提供满足用户质量要求的软件产品并持续不断地改善开发过程和开发组织改善开发过程和开发组织特征:特征:p软件质量控制是开发组织执行的一系列过程软件质量控制是开发组织执行
5、的一系列过程p目标是以最低的代价获得客户满意的产品目标是以最低的代价获得客户满意的产品p改进开发过程和组织以改善质量控制改进开发过程和组织以改善质量控制p度量是改善过程和组织的基础度量是改善过程和组织的基础3/26/20237软件质量特征软件概念定义软件质量特征规约销售使用质量审查软件实现设备安装采购与获取软件设计过程工程软件质量环3/26/20238三、软件质量控制与质量管理的区别与联系三、软件质量控制与质量管理的区别与联系软件质量控制对开发过程中的软件产品的质量特软件质量控制对开发过程中的软件产品的质量特性进行连续的收集和反馈,通过质量管理和配置管理性进行连续的收集和反馈,通过质量管理和配
6、置管理机制,使软件开发进程向着既定的质量目标发展机制,使软件开发进程向着既定的质量目标发展质量控制是质量管理的路标和动力,质量管理是质量控制是质量管理的路标和动力,质量管理是质量控制的执行机制质量控制的执行机制3/26/20239质量管理技术开发质量控制配置管理客户变更需求客户变更需求客户需求客户需求管理指令管理指令汇报和报告汇报和报告错误错误/问题报告问题报告需求变更需求变更被拒绝的产品被拒绝的产品标准和程序标准和程序状态状态/进展报告进展报告阶段产品阶段产品质量控制系统的基本结构3/26/2023103.1.2 有关软件质量控制的问题1软件质量控制为什么难?软件质量控制为什么难?软件质量目
7、标难于达到软件质量目标难于达到相对成本和时间,质量问题易被管理者忽略相对成本和时间,质量问题易被管理者忽略客户似乎更关心预算和交付时间客户似乎更关心预算和交付时间软件质量控制需要增加成本软件质量控制需要增加成本软件开发是人的智力活动,有较大易变性软件开发是人的智力活动,有较大易变性2质量控制成本有哪些?质量控制成本有哪些?前期成本:制定计划、执行计划和前期的纠错前期成本:制定计划、执行计划和前期的纠错评估成本:评估产品、过程质量评估成本:评估产品、过程质量内部工作失效:因过程、产品缺陷返工内部工作失效:因过程、产品缺陷返工外部失效成本:维护费用外部失效成本:维护费用3/26/2023113如何
8、理解软件质量控制的重要性?如何理解软件质量控制的重要性?软件质量控制的目标是为了获得更高的开发效率和效软件质量控制的目标是为了获得更高的开发效率和效益,为客户提供高质量的软件产品益,为客户提供高质量的软件产品p某些质量关键的软件产品要求更高的质量特性某些质量关键的软件产品要求更高的质量特性p质量控制是开发者及时发现早期缺陷的主要方法质量控制是开发者及时发现早期缺陷的主要方法p实行实行TQC可避免返工而节省时间和经费可避免返工而节省时间和经费p实施实施TQC可获得较高质量的产品,较少维护费用可获得较高质量的产品,较少维护费用4由谁来进行质量控制?由谁来进行质量控制?客户:客户:间接控制间接控制系
9、统需求、资金分配、开发计划和过程里系统需求、资金分配、开发计划和过程里程碑、选择组织、质量控制手段程碑、选择组织、质量控制手段开发商:开发商:直接控制直接控制确定技术、方法和程序确定技术、方法和程序3/26/2023125什么时候进行质量控制?什么时候进行质量控制?在整个软件生命周期中都该进行在整个软件生命周期中都该进行不同阶段活动不同,应采用不同技术不同阶段活动不同,应采用不同技术预开发预开发开发开发维护维护概念定义概念定义需求分析需求分析修复修复初步制作初步制作设计设计改进改进系统需求系统需求编码、单元测试编码、单元测试适应性修改适应性修改资源资源集成测试和确认测试集成测试和确认测试招标、
10、合同招标、合同验收交付验收交付3/26/2023133.1.3 软件质量控制的一般方法1目标问题度量法目标问题度量法通过确定软件质量目标并连续监视这些目标是否达到来控制通过确定软件质量目标并连续监视这些目标是否达到来控制软件质量软件质量具体方法是:具体方法是:对每一个项目要素(产品、过程和资源)规定明确的具对每一个项目要素(产品、过程和资源)规定明确的具体目标体目标对每一目标建立一系列要回答的问题,问题的答案应能对每一目标建立一系列要回答的问题,问题的答案应能回答目标是否达到,并有助于目标的量化回答目标是否达到,并有助于目标的量化将对问题的回答映射到软件质量等级的度量上,并得出将对问题的回答映
11、射到软件质量等级的度量上,并得出是否达到目标的结论是否达到目标的结论收集并管理数据收集并管理数据3/26/202314目标:改善软件的可维护性目标:改善软件的可维护性问题:问题:可维护性开发过程对于预防缺陷是有效的吗?可维护性开发过程对于预防缺陷是有效的吗?正在发生的缺陷是什么?正在发生的缺陷是什么?产生缺陷的原因是什么?产生缺陷的原因是什么?度量:度量:产品的缺陷密度产品的缺陷密度按缺陷类别划分的缺陷发生频率按缺陷类别划分的缺陷发生频率缺陷产生的频率分布、分阶段发生缺陷的频率分布缺陷产生的频率分布、分阶段发生缺陷的频率分布运行维护可维护性开发开发预开发例:软件的可维护性开发3/26/2023
12、15鱼骨图鱼骨图可维护性缺陷文档代码环境工具评审计划3/26/2023162风险管理法风险管理法识别和控制软件开发过程识别和控制软件开发过程中对软件质量危害最大的中对软件质量危害最大的因素(因素(SEI)主要内容:主要内容:选择风险估计和控制选择风险估计和控制技术技术进行风险估计和控制进行风险估计和控制基本步骤:基本步骤:根据经验根据经验识别识别项目要素的项目要素的有关有关风险风险评估风险评估风险发生的概率和发发生的概率和发生的代价生的代价按发生概率和代价划分风按发生概率和代价划分风险等级并排序险等级并排序在项目限定条件下选择在项目限定条件下选择控控制风险制风险的技术并制定计划的技术并制定计划
13、执行计划并执行计划并监视进程监视进程持续评估持续评估风险状态并采取风险状态并采取正确的措施正确的措施3/26/202317跟踪识别分析计划控制在风险转化为问题前发现对风险的影响、发生概率等进行分析基于分析的决策弱化、转移、控制风险监督风险,检查对策的适应性SEI的风险管理模型3/26/202318项目各阶段的风险阶段阶段可能面临的风险问题可能面临的风险问题计划目标不清范围不清缺少沟通业务不清缺乏可行性分析设计缺乏经验没有变更控制计划项目计划仓促(进度风险)设计疏漏实施缺乏环境设计错误开发能力项目范围变更进度变更人员变更内部沟通不畅备选方案无效测试计划不充分或缺少经验发布质量差客户不满意设备未按
14、时到货资金不能及时回收3/26/202319风险严重性等级影响程度影响程度标准标准等级等级危险危险严重影响项目,可能导致项目取消或直接失败严重影响项目,可能导致项目取消或直接失败109高高影响进度,导致延期,客户抱怨严重影响进度,导致延期,客户抱怨严重87中中影响预算或软件性能差,客户不满意影响预算或软件性能差,客户不满意65低低影响进程但很快解决,客户有些不满影响进程但很快解决,客户有些不满43小小影响较小,客户未察觉或认可影响较小,客户未察觉或认可203/26/202320风险控制方法风险避免风险避免通过变更计划消除风险的触发条件通过变更计划消除风险的触发条件如采用成熟技术、增加资源、减少
15、软件范围如采用成熟技术、增加资源、减少软件范围风险弱化风险弱化降低风险发生的概率降低风险发生的概率如简化流程、更多测试、开发原型系统如简化流程、更多测试、开发原型系统风险承担风险承担制定应急方案,随机应变制定应急方案,随机应变风险转移风险转移将风险发生的结果连同应对权利转移给有承受能力的将风险发生的结果连同应对权利转移给有承受能力的第三方第三方3/26/202321与目标问题度量法相比与目标问题度量法相比p风险管理法中质量控制技术的使用目的更有风险管理法中质量控制技术的使用目的更有针对性,直接针对最具危险的、严重影响质针对性,直接针对最具危险的、严重影响质量的关键因素量的关键因素p正确地选择质
16、量控制技术是风险管理法的重正确地选择质量控制技术是风险管理法的重要部分,而目标问题度量法更多地关注质量要部分,而目标问题度量法更多地关注质量目标及监视它们的改善进程目标及监视它们的改善进程3/26/2023223PDCA质量控制法质量控制法1.PDCA是一个基于统计方法的是一个基于统计方法的迭代过程,由迭代过程,由W.E.Deming提出,提出,已被作为国际标准。已被作为国际标准。Plan(计划)(计划):确定产品的质确定产品的质量、过程和资源计划,明确目标量、过程和资源计划,明确目标和配置标准和配置标准目标是量化的目标是量化的Do(实施):根据已确定的过(实施):根据已确定的过程实施计划活动
17、程实施计划活动实施过程中质量被构造进产品,实施过程中质量被构造进产品,缺陷也同时发生缺陷也同时发生Check(检查):评审和测试(检查):评审和测试产品,确定已达到目标产品,确定已达到目标Action(改进):纠正已知缺(改进):纠正已知缺陷,确认待改进因素陷,确认待改进因素PlanDoCheckActionDeming cycle3/26/202323PDCA的特点:的特点:p持续的采用持续的采用PDCA方法将有助于产品过程的不方法将有助于产品过程的不断改善,从而提高产品质量断改善,从而提高产品质量p通过持续地收集数据和评审不断提高产品的质通过持续地收集数据和评审不断提高产品的质量目标量目标
18、pPDCA更关注过程、资源和质量的度量,并以更关注过程、资源和质量的度量,并以此为基础寻找产生缺陷的原因和发现改善质量此为基础寻找产生缺陷的原因和发现改善质量的机会的机会3/26/2023243.2 全面软件质量控制3.2.1 全面软件质量控制模型TSQC是指导开发者计划和控制软件质量的框架,是指导开发者计划和控制软件质量的框架,TSQC模型用来描述各组成要素间的关系模型用来描述各组成要素间的关系确定质量目标提高质量开发质量评估质量质量控制参数产品、过程、资源定义改善估计度量计划Plan改进Action实施Do检查Check3/26/202325TSQC过程是一个调节和控制那些影响软件质过程是
19、一个调节和控制那些影响软件质量的参数的过程量的参数的过程影响软件质量的参数包括:影响软件质量的参数包括:产品:产品:所有可交付物所有可交付物过程:过程:所有活动的集合所有活动的集合资源:资源:活动的物质基础活动的物质基础(人力、技术、设备、时间、资金等)(人力、技术、设备、时间、资金等)TSQC过程是过程是PDCA四个活动的循环:四个活动的循环:计划计划Plan:确定参数要求:确定参数要求实施实施Do:根据要求开展活动:根据要求开展活动检查检查Check:通过评审、度量、测试,确认满足要求:通过评审、度量、测试,确认满足要求改进改进Action:纠正参数要求,再开发:纠正参数要求,再开发3/2
20、6/2023263.2.2 TSQC控制参数参数不是孤立的,需要综合调节和平衡参数不是孤立的,需要综合调节和平衡1产品产品产品是软件生命其中某个过程的输入和输出,产品是软件生命其中某个过程的输入和输出,或者是对最终产品的需求、最终产品本身或开或者是对最终产品的需求、最终产品本身或开发过程中产生的任何中间产品发过程中产生的任何中间产品这些产品包括计划、报告、编码、数据这些产品包括计划、报告、编码、数据3/26/202327p中间产品是某个阶段的输出,也是后续阶段的输入中间产品是某个阶段的输出,也是后续阶段的输入p作为输入的产品的质量不会比过程的输出更高作为输入的产品的质量不会比过程的输出更高p产
21、品的缺陷在后续阶段不会自动消失,影响会更大产品的缺陷在后续阶段不会自动消失,影响会更大过程1过程2过程n输出1输入2输出2输入n输入1输出n反馈及纠错3/26/2023282过程过程1.过程是为完成开发、维护和为保证软件质量过程是为完成开发、维护和为保证软件质量所进行的管理和技术活动所进行的管理和技术活动1.管理过程:包括计划、监控、资源分配、管理过程:包括计划、监控、资源分配、组织组织2.技术过程:以软件工程方法为特征,包技术过程:以软件工程方法为特征,包括工具括工具2.对于软件质量,过程分两类:对于软件质量,过程分两类:质量设计和构造过程质量设计和构造过程质量检查过程质量检查过程3/26/
22、202329过程对质量的影响:过程对质量的影响:产品质量是通过开发过程设计并构造进产品产品质量是通过开发过程设计并构造进产品的,同时也引入了缺陷的,同时也引入了缺陷产品的质量是通过检查过程检查并确认的产品的质量是通过检查过程检查并确认的每个过程所涉及的组织的数量以及它们之间每个过程所涉及的组织的数量以及它们之间的关系都直接影响引入缺陷的概率和纠正错的关系都直接影响引入缺陷的概率和纠正错误的概率误的概率在软件开发过程中人的心理、社会、组织因在软件开发过程中人的心理、社会、组织因素对产品生产率和质量有强烈影响素对产品生产率和质量有强烈影响3/26/2023303资源资源资源是指为得到要求的产品质量
23、,过程所需的时间、资金、资源是指为得到要求的产品质量,过程所需的时间、资金、人力、设备等人力、设备等资源的数量和质量影响产品质量:资源的数量和质量影响产品质量:人力因素是影响软件质量和生产率的主要因素人力因素是影响软件质量和生产率的主要因素时间、资金不足将削弱软件质量控制活动时间、资金不足将削弱软件质量控制活动不充分、不合适、不可靠的开发环境和测试环境会使不充分、不合适、不可靠的开发环境和测试环境会使缺陷率增加,发现并纠正错误的时间和资金也将增加缺陷率增加,发现并纠正错误的时间和资金也将增加3/26/2023313.2.3 全面软件质量控制的实施过程全面软件质量控制的实施过程软件质量控制过程是
24、在软件生命期的各个阶段,应用TSQC模型对产品、过程、资源的控制过程计划实施检查改进计划实施检查改进计划实施检查改进计划实施检查改进预开发开发维护3/26/202332软件质量管理的软件质量管理的14点准则:点准则:1.制定坚定的改进质量的目标,满足客户需要制定坚定的改进质量的目标,满足客户需要2.管理者必承担责任管理者必承担责任3.停止使用大规模审查(尤其是测试)方法提高质量,太停止使用大规模审查(尤其是测试)方法提高质量,太晚也不可靠晚也不可靠4.不要仅靠价格决定业务,选择客户并作为长期伙伴不要仅靠价格决定业务,选择客户并作为长期伙伴5.持续改进过程以提高质量和生产率,降低成本持续改进过程
25、以提高质量和生产率,降低成本6.进行工作培训进行工作培训7.确立领导地位确立领导地位8.消除恐惧,让员工更有效地工作消除恐惧,让员工更有效地工作9.消除领域障碍,建立团队精神消除领域障碍,建立团队精神10.不以口号要求零缺陷、高效率不以口号要求零缺陷、高效率11.不要使用量化的目标和任务分解不要使用量化的目标和任务分解12.建立工艺尊严,关注质量而不是进度建立工艺尊严,关注质量而不是进度13.为所有人建立教育和自我提高机制为所有人建立教育和自我提高机制14.改革是工作的一部分,每个人都该为改革做贡献改革是工作的一部分,每个人都该为改革做贡献3/26/2023331.影响软件质量的影响软件质量的
26、7个问题:个问题:2.缺少满足客户要求的坚定目标缺少满足客户要求的坚定目标3.关注短期进度关注短期进度4.绩效考核、评审绩效考核、评审5.专业人员、经理的流动性专业人员、经理的流动性6.单纯依赖可见的数字管理单纯依赖可见的数字管理7.过高的人力成本过高的人力成本8.过高的维护成本过高的维护成本3/26/202334软件质量的障碍:软件质量的障碍:1.希望有更高效的解决方案,希望有更高效的解决方案,真正的方案是知识和信心真正的方案是知识和信心+勤奋勤奋2.相信硬件会改进过程。相信硬件会改进过程。质量是人造的质量是人造的3.“我的问题不同我的问题不同”。没有不同寻常的软件质量问题没有不同寻常的软件
27、质量问题4.落后的教育。落后的教育。热衷于技术而忽略质量教育热衷于技术而忽略质量教育5.糟糕的统计方法教育糟糕的统计方法教育6.“已经够好了,没有时间做得更好已经够好了,没有时间做得更好”。但有时间测试、修改错误。但有时间测试、修改错误7.“我们的质量控制人员解决所有问题我们的质量控制人员解决所有问题”。质量是管理者责任质量是管理者责任8.“所有问题都是程序员的错所有问题都是程序员的错”。其实是。其实是管理员雇用、培训、管理程序员管理员雇用、培训、管理程序员9.错误的起点。错误的起点。质量改进是长期的,需要持续关注质量改进是长期的,需要持续关注10.“我们曾建立了质量控制我们曾建立了质量控制”
28、。质量控制是日常工作质量控制是日常工作11.使用神奇的使用神奇的CASE工具而忽略软件工程的知识基础工具而忽略软件工程的知识基础12.相信只有满足规格是必要的。相信只有满足规格是必要的。需要持续改进需要持续改进13.零缺陷错误。零缺陷错误。持续改进的结果不是零缺陷,也不能保证客户满意持续改进的结果不是零缺陷,也不能保证客户满意14.测试原型不足。测试原型不足。测试原型的目的是学习,然后强化系统测试原型的目的是学习,然后强化系统15.“任何要帮助我们的人都必须懂得我们的系统任何要帮助我们的人都必须懂得我们的系统”。只是有必要懂得必须只是有必要懂得必须要知道的要知道的3/26/2023351预开发
29、阶段预开发阶段主要活动包括买主与客户研究建立需求,发布招标请求,选择主要活动包括买主与客户研究建立需求,发布招标请求,选择资源,与开发者签订合同等资源,与开发者签订合同等买主和客户的工作:买主和客户的工作:pP:计划质量控制过程;选择开发标准;选择工具和方法:计划质量控制过程;选择开发标准;选择工具和方法pD:制定招标方案,包括功能和质量需求规格、任务描述、:制定招标方案,包括功能和质量需求规格、任务描述、资源选择标准、招标书评价指导、进度计划数据、交付产资源选择标准、招标书评价指导、进度计划数据、交付产品品pC:检查招标方案质量,研究承包商的反应:检查招标方案质量,研究承包商的反应pA:根据
30、取得的经验和数据,改进质量控制计划:根据取得的经验和数据,改进质量控制计划3/26/202336开发者的工作:开发者的工作:pP:确定要开发的中间产品:确定要开发的中间产品pD:制定开发方案,说明技术和工艺:制定开发方案,说明技术和工艺pC:检查资金、人力资源、开发设施、计划进度的适当性:检查资金、人力资源、开发设施、计划进度的适当性pA:提出改善产品质量的措施:提出改善产品质量的措施3/26/2023372开发阶段开发阶段开发阶段的质量控制活动涵盖从产品开发到移交产品并获得客开发阶段的质量控制活动涵盖从产品开发到移交产品并获得客户的满意度结束的全过程户的满意度结束的全过程代表性工作有:代表性
31、工作有:pP:分析需求和风险,制定详细的开发过程、使用资源、:分析需求和风险,制定详细的开发过程、使用资源、产品的质量控制计划,并取得客户的认可产品的质量控制计划,并取得客户的认可pD:执行质量控制计划:执行质量控制计划pC:与客户一起检查计划与预期结果得以执行:与客户一起检查计划与预期结果得以执行pA:改善计划、过程、资源分配及产品,重新认识风险:改善计划、过程、资源分配及产品,重新认识风险3/26/2023383维护阶段维护阶段维护阶段的活动主要是对产品的更新,其目的是修复缺维护阶段的活动主要是对产品的更新,其目的是修复缺陷、适应需求变更或提高性能陷、适应需求变更或提高性能主要质量控制活动
32、有:主要质量控制活动有:pP:根据客户反馈或审查结果,制定软件更新质量控:根据客户反馈或审查结果,制定软件更新质量控制计划制计划pD:实施软件更新并控制质量:实施软件更新并控制质量pC:检查是否达到质量目标,主要是缺陷修复率等:检查是否达到质量目标,主要是缺陷修复率等pA:收集客户反馈,研究软件产品的性能、可维护性:收集客户反馈,研究软件产品的性能、可维护性等质量要素等质量要素3/26/2023393.3 软件质量控制技术3.3.1 软件质量控制技术的特征p软件生命周期的阶段可用性:不同阶段不同技术软件生命周期的阶段可用性:不同阶段不同技术p综合使用综合使用“预防性预防性”和和“检测性检测性”
33、技术技术预防性技术:用于避免错误,如预防性技术:用于避免错误,如Plan检测性技术:用于查找产品、过程、资源的缺检测性技术:用于查找产品、过程、资源的缺陷,如陷,如Checkp不同技术对不同的质量要素有影响不同技术对不同的质量要素有影响3/26/2023401软软件件质质量量控控制制技技术术的的生生命命周周期期特特征征质量控制技术质量控制技术预开发预开发开发开发维护维护因果分析因果分析配置管理配置管理独立的确认与验证独立的确认与验证IV&V检查检查管理度量管理度量性能工程性能工程初样初样可靠性建模可靠性建模软件审计软件审计SEI能力评估能力评估软件设计度量软件设计度量软件开发能力软件开发能力/
34、资格评审资格评审软件工程环境软件工程环境软件工程实践软件工程实践软件工程初样软件工程初样软件质量保障软件质量保障软件问题报告分析软件问题报告分析标准标准测试测试3/26/2023412软件质量控制技术的控制类型软件质量控制技术的控制类型1.预防性技术:通过为过程、产品和资源设立标准预防性技术:通过为过程、产品和资源设立标准等途径,来避免在产品开发过程中产生缺陷等途径,来避免在产品开发过程中产生缺陷2.检测性技术:用于发现和纠正缺陷,甚至分析产检测性技术:用于发现和纠正缺陷,甚至分析产生缺陷的原因生缺陷的原因3/26/202342质量控制技术质量控制技术预防性特征预防性特征检测性特征检测性特征因
35、果分析因果分析分析原因,提出改进建议,分析原因,提出改进建议,预防出错预防出错配置管理配置管理控制软件配置,防止引入控制软件配置,防止引入新的错误新的错误独立的确认与验证独立的确认与验证IV&V及时发现和纠正需求、及时发现和纠正需求、设计、编码的错误设计、编码的错误检查检查在测试之前检查并纠正设在测试之前检查并纠正设计和编码的缺陷计和编码的缺陷检查和纠正设计、编码检查和纠正设计、编码缺陷缺陷管理度量管理度量检查早期问题并调整质量检查早期问题并调整质量控制参数控制参数性能工程性能工程提供某种方法避免潜在的提供某种方法避免潜在的性能问题性能问题度量实际性能,确认是度量实际性能,确认是否满足需求否满
36、足需求初样初样对早期需求和问题的确认,对早期需求和问题的确认,用户界面设计确认用户界面设计确认可靠性建模可靠性建模度量软件的可靠性,并度量软件的可靠性,并预测附加测试预测附加测试软件审计软件审计识别关键风险并提出规避识别关键风险并提出规避方法方法检测超时、超支和质量检测超时、超支和质量缺陷缺陷SEI软件能力评估软件能力评估评估组织的开发过程,确评估组织的开发过程,确定成熟度等级定成熟度等级3/26/202343质量控制技术质量控制技术预防性特征预防性特征检测性特征检测性特征软件设计度量软件设计度量检查早期的设计问题并修检查早期的设计问题并修改设计改设计检查并纠正设计和编码检查并纠正设计和编码问
37、题问题软件开发能力软件开发能力/资格评审资格评审对比成熟的开发过程,评对比成熟的开发过程,评估开发组织估开发组织软件工程环境软件工程环境借助工具和程序进行一致借助工具和程序进行一致性检查性检查软件工程实践软件工程实践使客户能够评价开发过程使客户能够评价开发过程和开发商和开发商软件工程初样软件工程初样能较早检查出开发过程的能较早检查出开发过程的缺陷,防止对需求说明的缺陷,防止对需求说明的内容、形式的理解错误内容、形式的理解错误软件质量保障软件质量保障基于标准,检查、分析基于标准,检查、分析产品已发现错误产品已发现错误软件问题报告分析软件问题报告分析配合开发过程,跟踪具配合开发过程,跟踪具体问题的
38、解决体问题的解决标准标准建立过程、产品的一致性建立过程、产品的一致性测试测试确认满足要求确认满足要求3/26/2023443软件质量控制参数对质量参数的影响软件质量控制参数对质量参数的影响质量控制技术质量控制技术受影响的质量控制参数受影响的质量控制参数产品产品过程过程资源资源因果分析因果分析需求分析、开发与需求分析、开发与测试测试人力、设备、进度人力、设备、进度配置管理配置管理需求、接口、编码需求、接口、编码及文档及文档配置管理、软件质配置管理、软件质量保障量保障独立的确认与验证独立的确认与验证需求、设计、编码需求、设计、编码及测试文档及测试文档需求分析、开发与需求分析、开发与测试测试设备设备
39、检查检查设计、编码及文档设计、编码及文档管理度量管理度量需求、设计、编码需求、设计、编码需求分析、开发与需求分析、开发与测试、开发工具、测试、开发工具、软件状态软件状态计算机资源、人力、计算机资源、人力、资金、进度资金、进度性能工程性能工程设计、编码、定时设计、编码、定时分配、规模估计分配、规模估计测试测试初样初样需求、客户界面需求、客户界面开发与测试开发与测试设备设备可靠性建模可靠性建模设计、编码设计、编码为测试、评估确定为测试、评估确定进度计划进度计划软件审计软件审计需求、接口、定时需求、接口、定时分配和规模估计分配和规模估计需求分析、开发与需求分析、开发与测试、初样工程、测试、初样工程、
40、配置管理、配置管理、SQA人力、管理、开发人力、管理、开发和测试设备和测试设备3/26/202345质量控制技术质量控制技术受影响的质量控制参数受影响的质量控制参数产品产品过程过程资源资源SEI软件能力评估软件能力评估开发与测试开发与测试软件开发能力软件开发能力/资格评审资格评审开发与测试开发与测试软件工程环境软件工程环境开发与测试开发与测试工具集、设备工具集、设备软件工程实践软件工程实践开发与测试、开发开发与测试、开发工具工具人力、工具集、人力、工具集、设备设备软件工程初样软件工程初样开发与测试、开发开发与测试、开发工具工具人力、工具集、人力、工具集、设备设备软件质量保障软件质量保障需求、设
41、计、编需求、设计、编码、测试文档码、测试文档分析、开发、测试、分析、开发、测试、SQA软件问题报告分析软件问题报告分析软件问题文档软件问题文档开发与测试、开发与测试、SQA、配置管理、配置管理标准标准接口标准接口标准软件开发和测试、软件开发和测试、获取管理获取管理人力、工具集、人力、工具集、设备设备测试测试编码、测试和文编码、测试和文档档测试程序测试程序3/26/2023463.3.2 软件质量控制问题与质量控制技术1最终产品的质量需求是什么?最终产品的质量需求是什么?所需技术:所需技术:p运行概念文档:描述软件的运行环境和方式,是运行概念文档:描述软件的运行环境和方式,是对软件动态特征的描述
42、对软件动态特征的描述p招标建议书的准备和评审:需制定质量标准并确招标建议书的准备和评审:需制定质量标准并确保需求清楚、详尽且可验证保需求清楚、详尽且可验证p初样:系统的有限实现,用于描述复杂的或有争初样:系统的有限实现,用于描述复杂的或有争议的需求议的需求3/26/2023472选择什么样的开发组织?选择什么样的开发组织?选择开发组织使客户的重要工作。所需技术:选择开发组织使客户的重要工作。所需技术:p招标建议书的准备和评审:建议书中包含选招标建议书的准备和评审:建议书中包含选择标准,竟标者须提供足够信息应标择标准,竟标者须提供足够信息应标开发组织的软件工程方法、标准、实践和开发开发组织的软件
43、工程方法、标准、实践和开发环境(工具及设备)环境(工具及设备)是否拥有相应的业务领域知识能力是否拥有相应的业务领域知识能力是否拥有必需的经验,是否熟悉所需要的开发是否拥有必需的经验,是否熟悉所需要的开发过程过程所提出的软件工程方法和过程是否成熟所提出的软件工程方法和过程是否成熟能提供的质量保障和配置管理措施能提供的质量保障和配置管理措施对项目的承诺和对开发管理技术的理解程度对项目的承诺和对开发管理技术的理解程度组织的内部结构及与其他组织的关系,任务分组织的内部结构及与其他组织的关系,任务分配方案配方案技术方案的健全性技术方案的健全性费用、进度计划的可信性费用、进度计划的可信性3/26/2023
44、48pSEI软件能力评估:用于评估开发组织控制和改软件能力评估:用于评估开发组织控制和改进软件开发过程并使用现代软件工程技术的能力进软件开发过程并使用现代软件工程技术的能力SEI的的CMM评估可以在不同开发组织之间、同一组织的评估可以在不同开发组织之间、同一组织的不同时间点上较客观、一致地评估组织的软件开发能力不同时间点上较客观、一致地评估组织的软件开发能力p软件开发能力软件开发能力/资格评审:用于评估开发组织开资格评审:用于评估开发组织开发一个具体项目的能力发一个具体项目的能力p软件工程实践:借助微型开发,客户评估开发商软件工程实践:借助微型开发,客户评估开发商的过程、工具和技术能力,评估领
45、域经验的过程、工具和技术能力,评估领域经验3/26/2023493为预防软件质量缺陷应该做点儿什么?为预防软件质量缺陷应该做点儿什么?客户和开发上都有必要采取措施以预防缺陷的产生,客户可以客户和开发上都有必要采取措施以预防缺陷的产生,客户可以提出要求,开发商更应该主动行动提出要求,开发商更应该主动行动p标准:即活动规范,分三类标准:即活动规范,分三类客户标准:提供管理和维护程序的一致性客户标准:提供管理和维护程序的一致性开发组织标准:目的是使过程可重复、对工具的投资开发组织标准:目的是使过程可重复、对工具的投资与过程相适应、训练开发人员、使开发过程可度量和与过程相适应、训练开发人员、使开发过程
46、可度量和改进,客户需要了解开发组织标准改进,客户需要了解开发组织标准技术标准:用于描述功能部件和接口,包括技术标准:用于描述功能部件和接口,包括良好定义的技术规格说明良好定义的技术规格说明与其他系统的互操作性与其他系统的互操作性设计方法的可维护性设计方法的可维护性接口的通用性接口的通用性产品的可移植性、灵活性和可适应性产品的可移植性、灵活性和可适应性3/26/202350p软件工程初样:是由客户要求的针对原型系统的开发实践,软件工程初样:是由客户要求的针对原型系统的开发实践,目的是要证明开发商的开发能力。初样的技术指标中包含目的是要证明开发商的开发能力。初样的技术指标中包含一组指令,以便客户的
47、评审。一组指令,以便客户的评审。使用初样的目的包括:使用初样的目的包括:便于客户了解开发组织的过程和能力便于客户了解开发组织的过程和能力显示软件的开发环境和开发组织的理解程度显示软件的开发环境和开发组织的理解程度了解开发组织对软件应用环境和工程原理的理解水平了解开发组织对软件应用环境和工程原理的理解水平根据初样的经验和教训改进开发过程根据初样的经验和教训改进开发过程可以将初样作为实际系统的一部分可以将初样作为实际系统的一部分p配置管理:目的是在整个生命期内控制配置的变化,保持配置管理:目的是在整个生命期内控制配置的变化,保持配置的完整性和可追踪性。步骤为:配置的完整性和可追踪性。步骤为:标志配
48、置项的功能部件及特性,建立文档标志配置项的功能部件及特性,建立文档控制配置项特性的变化控制配置项特性的变化记录并存储状态报告记录并存储状态报告3/26/202351p性能工程:是估计、度量和控制软件时效性的活动,由客性能工程:是估计、度量和控制软件时效性的活动,由客户、开发组分别或共同执行。包括以下性能特征:户、开发组分别或共同执行。包括以下性能特征:执行时间:即执行一个特定任务的时间执行时间:即执行一个特定任务的时间反应时间:即系统对输入做出反应的时间反应时间:即系统对输入做出反应的时间吞吐量:即系统完成一特定任务或处理一特定加载的吞吐量:即系统完成一特定任务或处理一特定加载的速率速率储备:
49、即未使用单可用的处理时间、输入储备:即未使用单可用的处理时间、输入/输出容量及输出容量及对需求变更的适应性对需求变更的适应性性能工程技术包括分析建模、仿真、软硬件选择等性能工程技术包括分析建模、仿真、软硬件选择等3/26/202352p软件工程环境:由一组集成的自动化工具组成,用于制成开发软件工程环境:由一组集成的自动化工具组成,用于制成开发组织的开发过程。对质量的影响包括:组织的开发过程。对质量的影响包括:对软件及相关文档的产生、修改和管理提供帮助对软件及相关文档的产生、修改和管理提供帮助对各种文档及相关设计的一致性检查对各种文档及相关设计的一致性检查使配置管理自动化使配置管理自动化检查相对
50、编码标准的偏差检查相对编码标准的偏差度量测试覆盖度量测试覆盖从其他形式的文档产生代码,如图、表、字典等从其他形式的文档产生代码,如图、表、字典等p重用:即利用已开发的软件或部件,目的是提高开发效率和质重用:即利用已开发的软件或部件,目的是提高开发效率和质量。可重用的软件包括:量。可重用的软件包括:已经开发并取得充分经验的软件已经开发并取得充分经验的软件已经广泛使用并具有完整文档,可靠且支持好的商业软件已经广泛使用并具有完整文档,可靠且支持好的商业软件客户提供的类似软件客户提供的类似软件对以上软件进行修改并已经确认的软件对以上软件进行修改并已经确认的软件3/26/2023534怎样检查软件质量?