1、第第2章章 回顾回顾2.1 软件特点软件特点2.2 软件过程软件过程过程模型,V模型的完整诠释,XP,阶段性开发模型2.3 软件缺陷软件缺陷软件缺陷的产生,分类2.4 软件质量软件质量软件质量需求的背景、内容,软件质量的定义、特性分析2.5软件质量的内容软件质量的内容软件产品、过程和商业环境质量第第 3章章 软件质量软件质量工程体系工程体系 3.1 概述概述 3.2 软件质量因素和指标软件质量因素和指标 3.3 软件质量模型分析软件质量模型分析 3.4 软件质量工作层次软件质量工作层次 3.5 软件质量成本软件质量成本 3.6 软件质量标准和度量软件质量标准和度量3.1 概述概述 3.1.1系
2、统工程学的思想系统工程学的思想 3.1.2 软件质量工程体系的建立软件质量工程体系的建立 3.1.3 软件质量工程体系的构成软件质量工程体系的构成 3.1.4 软件质量工程体系和管理体系的关系软件质量工程体系和管理体系的关系3.1.1系统工程学的思想系统工程学的思想系统工程学是为了研究多个子系统构成的整体系统所具有的多种不同目标的相互协调,以期系统功能的最优化、最大限度地发挥系统组成部分的能力而发展起来的一门科学。3.1.2 软件质量工程体系的建立软件质量工程体系的建立质量管理体系的持续改进质量管理体系的持续改进管理职责资源管理产品实现测量、分析和改进顾客(和其他相关方)要 求顾 客(和 其他
3、 相 关方)满意产品建立和实施质量管理体系的方法建立和实施质量管理体系的方法 p 确定顾客和其他相关方的需求和期望;确定顾客和其他相关方的需求和期望;p 建立组织的质量方针和质量目标;建立组织的质量方针和质量目标;p 确定实现质量目标必需的过程和职责;确定实现质量目标必需的过程和职责;p 确定和提供实现质量目标必需的资源;确定和提供实现质量目标必需的资源;p 规定测量每个过程的有效性和效率的方法;规定测量每个过程的有效性和效率的方法;p 应用这些测量方法确定每个过程的有效性和效率;应用这些测量方法确定每个过程的有效性和效率;p 确定防止不合格并消除产生原因的措施;确定防止不合格并消除产生原因的
4、措施;p 建立和应用持续改进质量管理体系的过程。建立和应用持续改进质量管理体系的过程。从系统工程的角度来描述质量管理体系从系统工程的角度来描述质量管理体系 质量体系质量体系度量质量计划质量控制质量改进质量文化质量组织方法工具库文档库项目计划项目跟踪质量记录配置管理缺陷控制培训流程内审管理评审合同管理客户管理项目评审数据库流程项目执行计划评审3.1.3 软件质量工程体系的构成软件质量工程体系的构成3.1.4 软件质量工程体系和管理体系的关系软件质量工程体系和管理体系的关系p 将软件质量视为一个系统,将软件质量视为一个系统,深入了解软件质量的构深入了解软件质量的构成和结构,建立软件质量的模型成和结
5、构,建立软件质量的模型p 软件质量策划,软件质量策划,如同项目计划,定义软件质量管理要如同项目计划,定义软件质量管理要实现的目标、范围和方法实现的目标、范围和方法p 质量成本的分析,质量成本的分析,如何降低由低质量造成的成本如何降低由低质量造成的成本p 软件质量风险的分析,软件质量风险的分析,如何避免质量风险如何避免质量风险p 软件质量度量,软件质量度量,从而不断改进质量模型和方法手段从而不断改进质量模型和方法手段3.2 软件质量因素和指标软件质量因素和指标 3.2.1 软件质量指标软件质量指标 3.2.2 软件产品的质量因素软件产品的质量因素 3.2.3 软件过程的质量因素软件过程的质量因素
6、3.2.1 软件质量指标软件质量指标p正确性正确性:实现的功能达到设计规范,并满足用户需求的程度p可靠性可靠性:规定的时间和条件下,仍能维持其性能水准的程度p易用性易用性:用户掌握软件操作所要付出的时间及努力程度p效率效率:软件执行某项功能所需电脑资源(含时间)的有效程度p可维护性可维护性:当环境改变或软件发生错误时,执行修改或恢复所做努力的程度p可移植性可移植性:从一个系统/环境移到另一系统/环境的容易程度功能性和可用性功能性和可用性的质量指标 功能性:功能性:p功能的正确性p功能的准确性p软件功能的完整性可用性:可用性:p可操作性 p通用性 p一致性可靠性和性能可靠性和性能的质量指标 可靠
7、性:可靠性:p系统自我恢复能力(Autonomy)p健壮性 p系统的分布性 性能:性能:p有效性(Efficiency)p安全管理/完整性 p易存取性(System Accessibility)可维护性可维护性的质量指标 p模块化(Modularity)p增强能力/灵活性(Augment ability)p可测试性(Testability)p可追溯性(Traceability)p简单性(Simplicity)p自我描述性(Self Descriptiveness)p系统兼容性(System Compatibility)p文档质量(Document Quality)可移植性可移植性的质量指标 p
8、独立性(Independence)p可重用性(reusability)p互操作性(Interoperability)p虚拟性(Virtuality)p一般性(Generality)3.2.2 软件产品的质量因素软件产品的质量因素3.2.3 软件过程的质量因素软件过程的质量因素p 项目计划过程项目计划过程:和客户的沟通能力、软件产品特性定义的方法、项目计划策略、评审的流程、范围、方式和程度、协同工作流程、合同和用户管理流程和方法、文档编写、管理等的规范和流程p 项目设计过程项目设计过程:软件产品指标的定义和解释、设计流程、设计标准、协同工作流程、文档编写、管理等的规范和流程p 项目实施过程项目实
9、施过程:变更控制流程、执行过程跟踪方法、流程和相适应的系统、缺陷处理流程、文档编写、管理等的规范和流程p 软件维护过程软件维护过程:变更控制流程、用户反馈、相应处理机制、回归测试流程p 软件商业环境过程软件商业环境过程:软件改进的策略、产品开发模式、市场定位、产品标准等3.3 软件质量模型分析软件质量模型分析 3.3.1 软件质量模型软件质量模型 3.3.2 模型评价和分析模型评价和分析3.3.1 软件质量模型软件质量模型 McCall 软件质量模型(GE模型,1977)由11个指标构成,分为产品操作,产品修订和产品转移 Boehm 模型(1978)基于很多特性和 19个标准 ISO 9126
10、 包括6个质量目标,每个质量目标有很多属性McCall模型设备独立性设备独立性易更改易更改可靠性可靠性效率效率总体总体 效用效用易用易用性性可维护性可维护性可测试性可测试性人体工程学人体工程学可移植性可移植性易懂性易懂性精确性精确性完整性完整性完全性完全性可说明性可说明性 设备功效设备功效易操作性易操作性沟通良好沟通良好自我操作性自我操作性架构性架构性简明性简明性易懂性易懂性可维护性可维护性模块独立性模块独立性连续性连续性软件质量软件质量FCM模型模型层层 级级名名 称称内内 容容F质量要素:描述和评价软件质量的一组属性功能性、可靠性、易用性、效率性、可维护性、可移植性等质量特性以及将质量特性
11、细化产生的子特性C衡量标准:衡量标准的组合反映某一软件质量要素精确性、稳健性、安全性、通信/处理/设备有效性、可操作性、培训性、完备性、一致性、可追踪性、可见性、硬件/软件系统无关性、可扩充性、公用性、模块性、清晰性、自描述性、简单性、结构性、文件完备性等M量度标准:可由各使用单位自定义根据软件的需求分析、概要设计、详细设计、编码、测试、确认、维护与使用等阶段,针对每一个阶段制定问卷表,以此实现软件开发过程的质量度量ISO简化的软件质量模型简化的软件质量模型 用户自定义软件产品度量标准SQRC SQDC SQMC3.3.2 模型评价和分析模型评价和分析序号序号质量要素质量要素/特性特性McCa
12、llBoehmISO 91261正确性(Correctness)X功能性2可靠性(Reliability)XXX3完整性(Integrity)X可靠性4可用性(Usability)X人体工程学X5效率(Efficiency)XXX6可维护性(Maintainability)XXX7可测试性(Testability)X可维护性可维护性8互操作性(Interoperability)X易用性9灵活性(Flexibility)X10可重用性(Reusability)X可移植性可维护性3.4 软件质量工作层次软件质量工作层次 3.4.1 软件质量方针软件质量方针 3.4.2 软件质量控制(软件质量控制(
13、SQC)3.4.3 软件质量保证(软件质量保证(SQA)3.4.4 软件质量管理(软件质量管理(SQM)就象汽车表盘上的仪器,可以了解行驶中的转速、速度、油量等。汽车中的用户手册。操作的誓学,教你如何驾车软件质量管理的软件质量管理的4个层次个层次p检查检查,初期阶段,通过检验保证产品的质量,符合规格的软件产品为合格品,不符合规格的产品为次品,次品不能出售。这个层次的特点是独立的质量工作,质量是质量部门的事,是检验员的事。检验产品只是判断产品质量,不检验工艺流程、设计、服务等,不能提高产品质量。p保证保证,质量目标通过软件开发部门来实现,开始定义软件质量目标、质量计划,保证软件开发流程合理性、流
14、畅性和稳定性。p预防预防,软件质量以预防为主,以过程管理为重,把质量的保证工作重点放在过程管理上p完美完美,以客户为中心,全员参与,追求卓越。3.4.1 软件质量方针软件质量方针质量方针,是由组织的最高管理者正式发布的、该组织的质量宗旨、目标和质量方向,并形成文件。质量方针是企业经营总方针的组成部分,是企业管理者对质量的指导思想和承诺。建立质量方针和质量目标为组织提供了关注的焦点,在一个质量管理体系中起着关键作用。质量方针应体现软件公司的组织目标、顾客的期望/需求和组织内部质量行为的准则 软件质量策划软件质量策划 3.4.2 软件质量控制软件质量控制质量控制是一个设定标准(根据质量要求)、测量
15、结果,判定是否达到了预期要求,对质量问题采取措施进行补救并防止再发生的过程,质量控制已不再仅仅是检验,而更多地倾向于确保生产出来的产品满足要求的过程控制。统计过程控制的概念与实施方法 控制图,Statistical Process Control SPC 3.4.3 软件质量保证保证质量保证是质量管理的一部分,是为保护产品和服务充分满足消费者要求的质量而进行的有计划有组织的活动,致力于提供对满足质量要求的信任。p 内部质量保证是组织向自己的管理者提供信任;p 外部质量保证是组织向外部客户或其它方提供信任。p 复审(Review):用结束标准对该阶段生产出的软件配置成分进行严格的技术审查等活动;
16、p 内审(Audit):检查组织内部是否遵守已有的模板、规则、流程等。3.4.4 软件质量改进改进质量改进是质量管理的一部分,是不断为改进软件开发过程、产品和服务的持续过程。同时,为确保有效性、效率或可追溯性,组织应注意识别需要改进的项目和关键质量要求,考虑改进所需的过程,以增强组织体系、改进过程和产品并提高满足要求的能力。在质量改进工作中,有许多模型,包括PDCA模型、PEIS模型、6 Sigma模型的DMAIC、CMM模型、SPICE模型等。IDEAL模型用于质量改进模型用于质量改进 3.5 软件质量成本软件质量成本 3.5.1 质量成本概念质量成本概念 3.5.2 引入质量成本的意义引入
17、质量成本的意义 3.5.3 劣质成本劣质成本PONC和和COPQ 3.5.4 软件的劣质成本软件的劣质成本3.5.1质量成本质量成本 田口玄一:“所谓质量,是指产品上市后给社会带来的损失。”费根堡姆主张把质量预防费用和检验费用与产品不合要求所造成的厂内损失和厂外损失一起加以考虑,并形成质量成本报告 ISO84021994:质量成本是为确保和保证满意的质量而发生的费用以及没有达到满意的质量所造成损失的总和,即包括保证费用和损失费用。质量成本的构成质量成本的构成 质量成本质量保证成本损失成本质量成本质量保证成本损失成本 保证成本保证成本:为保证满意的质量而发生的费用 损失成本损失成本:没有达到满意
18、的质量所造成损失质量成本质量预防成本评价成本失效成本质量成本质量预防成本评价成本失效成本保证成本预防成本评价成本保证成本预防成本评价成本 预防成本预防成本:预防产生质量问题(软件缺陷)的费用,是企业的计划性支出,专门用来确保在软件产品交付和服务的各个环节不出现失误。评价成本评价成本:是指在交付和服务环节上,为评定软件产品或服务是否符合质量要求而进行的试验、软件测试和质量评估等所必需的支出。失效成本失效成本:分为内部的和外部的,如果在软件发布之前发现质量问题,而要求重做、修改和问题分析所带来的成本属内部失效成本,包括修正软件缺陷、回归测试等,以及因产品或服务不合要求导致的延误。3.5.2 引入质
19、量成本的意义引入质量成本的意义质量成本将质量与企业经济效益直接联系起来质量成本将质量与企业经济效益直接联系起来,质量得以质量得以货币语言来表达货币语言来表达,质量语言和货币语言形成对话,从一个从一个务虚的概念转换成一个务实的概念务虚的概念转换成一个务实的概念,使企业管理层对质量及其管理的意义和作用,有了新的认识,更容易树立质量至上的理念,进一步加大质量管理力度,使企业立于不败之地。这是质量成本对社会经济发展的重大贡献“矿中黄金矿中黄金”理论理论 产品特征产品特征没有缺陷没有缺陷较高的质量,使公司能较高的质量,使公司做到1提高客户的满意度降低差错率2增强产品可销性减少返工和废料3符合竞争减少现场
20、失职和保证费4提高市场份额减少检验和试验费5提高销售收入减少客户的不满意度6获得优惠价格提高产量和能力7对销售额有很大影响改进交货绩效8较高的质量通常有较高的成本有较高的质量通常有较少的成本3.5.3 劣质成本劣质成本PONC和和COPQ PONCPONC,即,即“不符合要求的代价不符合要求的代价(P Price o of N Nonc conformance)”或称“劣质成本”,是指由于缺乏质量而造成的人力、财力、物力以及时间成本的浪费。PONC是在“零缺陷”质量管理中,为了更有效地衡量质量成本而引入的一个重要概念。COPQCOPQ,即,即“不良成本不良成本(C Cost o of P Po
21、or Q Quality)”或称“劣质成本”的概念。COPQ指所有由过程、产品和服务中的质量缺陷引起的费用。COPQ则是“6西格玛(Six sigma)”质量管理中的一个重要概念,用于有效地衡量质量成本、质量改进过程在经营效益上的表现。劣质成本的分类劣质成本的分类 故障成本故障成本,包括质量成本中的外部故障成本、内部故障成本,需采取返工、返修、纠正等补救措施所花费的成本。过程成本过程成本,包括非增值成本(非增值的预防成本和鉴定成本)、低效率过程成本(如多余的操作、重复的作业等)、机会损失成本(指如果没有缺陷而就不会发生的费用等)。损失成本损失成本,包括顾客损失成本(指给顾客所造成的各种额外的费
22、用及负担)、信誉损失成本。3.5.4 软件的劣质成本软件的劣质成本p 验证缺陷p 回退到原来位置/版本(Roll Back)p 代码完成后功能修改、测试用例修改p 缺陷报告质量低,往返几次,才能再现缺陷p 回归测试和不断的重复测试p 错误的开发环境或测试环境而返工.p 为修正客户发现的问题,紧急发布程序补丁 软件劣质成本竟高达软件劣质成本竟高达46%以上,有时高达以上,有时高达60 质量成本质量成本 冰山冰山Put on holdDelayOvertime work to fix bugsMany duplicate testsRoll-backImpact to moraleLost ord
23、ersMissed business opportunities Lost credits&BrandBilling errorCancelled projectsFailure in runningOnly Top-angle is seen by us?Did you see?3.6 软件质量标准和度量软件质量标准和度量 3.6.1 软件质量标准体系介绍软件质量标准体系介绍 3.6.2 软件质量度量的地位软件质量度量的地位3.6.1 软件质量标准体系介绍软件质量标准体系介绍p从纵向看,分为产品质量管理标准和过程质量管理标准p从横向看,分为通用标准和各个行业的质量标准p从范围看,分为国际标准
24、和国内标准p原理标准,描述各个原理级的关键组织标准p要素标准,原理标准中的各个要素的详细性能要求的标准,必须执行;p指南和补充,为如何把原理或要素标准应用于特定场合而提供指导性的文件标准体系空间标准体系空间标准体系层次标准体系层次软件产品产品质量标准体系产品特性软件产品 产品文档功能规格原理9126-1要素标准TR 9126-2/3/4 1502612119912714143-1/2指南18019TR 14143-3/4/5软件过程过程质量标准体系软件过程软件过程系统系统过程过程原理原理12207/AMD1的过程结果15288要素要素标准标准12207/14764TR15846TR16326
25、15939 145981591015288 标准部分指南指南 TR15271ISO9000-3 TR92941801915288指南3.6.2 软件质量度量的地位软件质量度量的地位p项目质量度量项目质量度量是度量软件项目特征和项目执行的质量状态,包括项目的资源使用效率、项目性能、项目风险等。p产品质量度量产品质量度量是度量软件产品的特性和质量属性,如软件产品的功能、复杂性、设计特征、性能和可靠性等。p过程质量度量过程质量度量是度量软件开发和维护的改进过程,包括过程中某一时刻的状态(时间切面)、历史数据分析度量和未来变化预测的度量等。采用定量软件工程,制定软件产品质量的度量准则,可以采用定量软件
26、工程,制定软件产品质量的度量准则,可以提高软件开发过程管理的可视性,降低劣质成本,提高软提高软件开发过程管理的可视性,降低劣质成本,提高软件产品的质量件产品的质量 小结小结p现代软件质量工程体系继承了全面质量管理思想,要求组织中每个人都承担质量的责任,将质量控制、保证和改进的流程融于整个的软件开发生命周期;p软件质量工程体系,涵盖质量计划、质量风险管理、质量成本控制和质量计划的实施等内容。质量计划的制定又受质量文化影响、质量方针指导,通过对影响质量各种因素的分析,了解可能存在的质量风险,从而加以回避、控制。通过对软件产品、过程的测量和质量的度量,不断改进软件开发过程,以达到软件质量预先设定的目标。作业第第3章章 1、3Q&A