1、软件质量管理2软件质量管理n课程期望3软件质量管理n本课程主要内容n介绍软件质量管理n如何进行软件质量管理nCMMI概述n过程改进n质量保证,其工作职责和基本工作方式n质量目标的制定、度量和实现4软件质量管理n介绍软件质量管理n什么是软件质量什么是软件质量?质量定义,及其如何理解;理解PDCAn为什么要进行软件质量管理?5什么是软件质量n质量定义n如何理解软件质量n附:质量管理专家6质量的定义n“无缺陷”n国家标准n质量是产品或服务满足明确或隐含需要能力的特征和特性的总和。n用户角度n质量是用户对一个产品(包括相关的服务)满足程度的度量 “顾客驱动型”n生产角度n开发出来的最终产品能满足我要求
2、的功能是否相同7什么是软件质量n质量定义n如何理解软件质量n附:质量管理专家8如何理解软件质量n软件质量与传统意义上的质量9如何理解软件质量 软件质量反映了以下三方面的问题:1、软件需求是度量软件质量的基础。2、在各种标准中定义了一些开发准则,用来指导软件人员用工程化的方法来开发软件。如果不遵守这些开发准则,软件质量就得不到保证。3、往往会有一些隐含的需求没有明确提出来。如果软件只满足那些精确定义了的需求而没有满足这些隐含的需求,软件质量也得不到保证。质量强调一致性原则和可重复性原则(即稳定性)。10如何理解软件质量n从质量管理的历程来看检验阶段:事后,次废品剔除制造阶段:事中设计阶段:全面质
3、量管理TQMn发现问题-预防问题-质量保证-战略质量管理11如何理解软件质量总结总结n现代质量管理追求顾客满意,包括提高内部顾客和外部顾客满意度,满足顾客明确和隐含的需求。n注重预防而不是检查,并承认管理层对质量的责任。n“质量是设计出来的,质量是制造出来的”,控制好各阶段内的过程。n强调持续改进12什么是软件质量n质量定义n如何理解软件质量n附:质量管理专家(略)13质量管理专家-戴明戴明(W.Edwards.Deming)n戴明品质奖,至今仍是日本品质管理的最高荣誉n戴明PDCA循环n戴明质量管理14法14质量管理专家-戴明之PDCAP(plan)计划;D(do)实施;C(check)检查
4、;A(action)处理。PDCA循环是质量管理的基本方法循环是质量管理的基本方法大环带小环,阶梯式上升,周而复始W.Edward Deming博士提出的Deming环 图115质量管理专家-戴明之PDCA基本步骤16质量管理专家-朱兰朱兰(Juran)n朱兰三部曲朱兰三部曲n朱兰理论核心朱兰理论核心管理就是不断改进工作。朱兰提出质量不尽要满足明确的需求,也要满足潜在的需求。n最早把80/20原则引入质量管理 n质量控制手册Quality Control Handbook17n质量管理三部曲n质量计划 事后控制、代价昂贵、检测缺陷而不是避免缺陷n质量控制 事前预防、过程改进过程改进、缩小缺陷引
5、入和发现的时间 有效手段:测试、评审、走查、模拟、非正式评审、demo、checklistn质量推进 质量控制和质量保证相结合、解释性结果作为下一次的预防控制质量管理专家-朱兰三部曲构 造测试修改OKY18质量管理专家-克劳士比克劳士比(Crosby)n质量是免费,提出组织向零缺陷突破闻名。n克劳士比管理4个原则原则一、什么是质量?质量即符合要求,而不是好。原则二、质量是怎样产生的?预防产生质量检验不能产生质量原则三、什么是工作标准?零缺陷,而不是“差不多就好”原则四、怎样衡量质量?不符合要求的代价(金钱),而不是指数19软件质量管理n介绍软件质量管理n什么是软件质量?n为什么要进行软件质量管
6、理为什么要进行软件质量管理?必要性;在各大领域的位置;益处20为什么要进行软件质量管理n软件质量是一个软件企业成功的必要条件,除了接受质量观念外就别无选择接受质量观念外就别无选择 21为什么要进行软件质量管理 PMBOOK:项目管理划分为9个知识领域,质量管理是其中之一(范围管理、时间管理、成本管理、质量管理质量管理、人力资源管理、沟通管理、采购管理、风险管理和综合管理)22为什么要进行软件质量管理 可以为企业带来如下益处:n缩短总运转周期n降低质量所需的成本n缩短库存周转时间n提高生产率n追求企业利益和成功n使顾客完全满意n最大限度获取利润23如何进行软件质量管理nCMMI概述概述n过程改进
7、n质量保证,其工作职责和基本工作方式n质量目标的制定、度量和实现24nCMMI CMMI Capacity Maturity Model Integrated 能力成熟度模型集成 目的就是实现软件过程的改进(SPI),增加工作过程的能力,从而提升软件组织的核心竞争力,取得竞争优势。CMMI概述25CMMI概述-过程能力n过程能力通过遵循某个过程,有通过遵循某个过程,有能力预见未来所得到的结果范围。能力预见未来所得到的结果范围。n过程性能特定项目遵循某过程所特定项目遵循某过程所得到的实际结果的度量。得到的实际结果的度量。控制上限控制下限过程性能过程能力26CMMI概述-成熟度n何谓成熟?不成熟组
8、织成熟组织w软件过程在项目过程中临时拼凑;w具有全组织范围管理软件开发和维护过程的能力 w即使规定了也不能严格遵守和贯彻;w软件过程被准确无误地通知现有职员和新员工 w反应式的组织“救火队员”w工作活动按照已规划的过程进行 w超出进度和预算已成惯例;为满足进度要求,常在产品功能和质量上做出让步,缩短或取消评审和测试等质量活动;w强制式的过程适用,而且和实际工作方式一致 w不存在判断产品质量或解决产品或过程问题的客观基础w岗位及其职责都是清楚的 w有客观、定量的基础分析产品级过程问题,能基于事实和历史不断改进;进度和预算是现实的27CMMI概述-能力模型n为什么采用能力模型?模型对过程需求提供了
9、一个公共集合,综合了最好的实践和实际的知识,并以一种可以用来指导过程改进优先顺序的格式来表示。28CMMI概述-PA 5 优化级优化级4 定量管理级定量管理级3 定义级定义级2 管理级管理级1 初始级初始级1级级-初始级初始级2 级级-管理级管理级配置管理配置管理过程和产品质量保证过程和产品质量保证供应合同管理供应合同管理项目监控和控制项目监控和控制项目计划项目计划需求管理需求管理度量和分析度量和分析3 级级-定义级定义级产品集成产品集成集成项目管理集成项目管理组织培训组织培训组织过程定义组织过程定义组织过程焦点组织过程焦点需求开发需求开发技术解决方案技术解决方案验证验证确认确认风险管理风险管
10、理决策决策分析和解决分析和解决组织环境的集成组织环境的集成集成供应商管理集成供应商管理(Supplier Sourcing,SS)集成组队集成组队(IPPD)4 级级-定量管理级定量管理级定量项目管理定量项目管理组织过程性能组织过程性能5 级级-优化级优化级组织革新和实施组织革新和实施原因分析和解决原因分析和解决29CMMI概述-成熟度构成nCMMI成熟度构成执行承诺执行能力指导实施验证实施特定惯例特定目标通用目标过程方面1过程方面2过程方面3成熟度等级成熟度等级通用惯例30CMMI概述过程改进方法的IDEAL模型 n初始化(初始化(Initiating)n诊断(诊断(Diagnosing)n
11、建立建立(Establishing)n行动行动(Acting)n推进推进 (Leveraging)修修 改改 组组 织织 的的 方方 法法 记记 录录 和和 分分 析析 教教 训训 定定 义义 过过 程程 和和 度度 量量 计计 划划 及及 执执 行行 试试 行行 方方 案案 计计 划划,执执 行行 和和 跟跟 踪踪 改改 进进 方方 案案 建建 立立 过过 程程 行行 动动 组组做做 行行 动动 计计 划划 设设 定定 战战 略略 和和 优优 先先 级级 提提 出出 建建 议议 并并 记记 录录 阶阶 段段 成成 果果 评评 估估 当当 前前 实实 践践 情情 况况 改改 进进 动动 机机
12、确确 定定 改改 进进 范范 围围 以以 及及 获获 取取 支支 持持 建建 立立 改改 进进 机机 制制 诊诊 断断 建建 立立 行行 动动 推推 进进 初初 始始 化化 31CMMI概述J曲线n过程改进的“J曲线”性能水平性能水平现状现状预期的状况预期的状况实际的路线实际的路线理想上路径理想上路径开始时可能还不知当初的开始时可能还不知当初的32CMMI概述CMMI职能组nCMMI领导小组 为实施CMMI配备必要的资源;审批CMMI实施计划;检查CMMI实施情况;支持实施CMMI的一切活动,及时解决过程中的问题。n软件工程过程组(SEPG)推进组织所采用的软件过程的定义、维护和改进工作。它支
13、持但不直接负责软件开发和(或)维护。n软件质量保证组(SQAG)计划和实施项目的质量保证活动,其工作的目的是保证软件过程的步骤和标准得到遵守。33如何进行软件质量管理nCMMI概述n过程改进过程改进n借口、原则n质量保证,其工作职责和基本工作方式n质量目标的制定、度量和实现34软件过程改进的借口n当你处于危机时,你没有时间去改进n当你没有危机时,你不需要去改进35软件过程改进的原则n主要的软件过程的改进必须从高层启动n全体人员参与n有效的变化需要当前过程的目标和知识n改进需要持久地投资、回报和鼓励n改进是一个持续的过程n改进必须进行度量,而且要定期地加强改进的焦点放在修复过程,不放在对人的抱怨
14、n不自在感的程度不足够高,事情将不会有变化n与商业目标一致36如何进行软件质量管理nCMMI概述n过程改进n质量保证,其工作职责和基本工作方式质量保证,其工作职责和基本工作方式质量规划、质量保证定义/目标/职责/工作产品、质量控制n质量目标的制定、度量和实现37质量保证n质量规划 识别哪些质量标准适用于本项目,并确定如何满足这些标准的要求。38质量保证 Quality Assurance 通过实施计划和系统的质量活动,以提供一个项目所有过程都满足质量标准的信心。质量保证贯穿项目始终。39质量保证目标n通过监控各个开发过程来提高质量n确保能顺从软件过程n确保不足点能够得到管理n建立项目满足相关要
15、求的信心40质量保证职责n按计划开展过程审计和产品审计。步骤:n确定当前要审计的过程和工作产品;n确定与当前审计有关的标准和检查项目,形成检查表;n确定审计时间;确定必须参与审计的人;n根据检查表的内容,实施审计(形式包括:通过工作产品验证、参与到过程中去、面谈、调查问卷等);41质量保证职责n按计划开展过程审计和产品审计。步骤(续):n就审计过程中发现的问题,同有关组或个人进行沟通、协商确定解决方式;n制定和报告相关的SQA审计报告;n对不符合问题进行跟踪直至结束;n对不能在项目组内部解决的不符合问题报告给高层经理 42质量保证职责n支持项目需求分析,提供适当的指导和帮助。包括:n参与客户需
16、求和产品需求的评审;n检查评审过程是否符合规范;n协助建立需求矩阵;n作为ccb成员批准客户需求基线的建立;n其它支持工作 43质量保证职责n支持项目开发策划,提供适当的指导和帮助。包括:n促进项目估算和估计会议等。n帮助选择生命周期模型n在剪裁标准过程时提供支持和指导,帮助定义项目过程;n建立工作产品验收标准;n识别项目中的风险;n识别项目的关键路径和依赖关系;n识别关键资源等;n参与准备项目计划及其附属计划的建立,如培训计划、度量计划、评审计划、配置计划等。n检查计划的适用性。n其它支持工作。44质量保证职责n促进评审。包括:n工作产品是否组织评审;尤其是关键工作产品n检查评审的活动和工作
17、产品。n计划的评审是否已被执行。n评审的领导者是否得到有关其岗位的适当的培训。n评审者是否得到在其角色方面的合适的培训或其在岗位职责方面是有经验的。n用于准备同行评审、执行同行评审和执行后继措施等的过程是否得到遵循。n同行评审数据的报告是否完备、准确、及时。45质量保证职责n促进过程改进。包括:n协助项目经理策划和收集项目数据(包括开发过程中的数据以及项目结束后进行总结的数据),并对其分析、总结n协助项目经理制定项目规范和流程,并客观评价其实施情况n协助SEPG在项目组推进过程改进活动,并收集最佳实践 46质量保证n其典型的工作产品nSQAPn过程审计报告n产品审计报告nSQA周报等n配置管理
18、是实施质量保证的关键47质量保证n质量控制n监视项目的具体的工作结果,确定其是否符合相关的质量标准,并判断如何杜绝早场不合格结果的根源n从管理的角度关注项目结果:例如,成本与进度绩效;从产品的角度关注项目:可交付成果应符合规定的要求和产品说明。n质量控制贯穿于项目的始终。48如何进行软件质量管理nCMMI概述n过程改进n质量保证,其工作职责和基本工作方式n质量目标的制定、度量和实现质量目标的制定、度量和实现质量目标的制定、项目度量和常用的分析图49质量目标的制定n必须采用技术度量来客观地评估质量,而不能仅仅采用主观的方法进行评估 50质量目标的制定n质量目标的制定质量目标的制定 应能够满足SM
19、ART标准。明确的(Specific):目标必须以数据的形式加以明确指定。可度量的(Measurable):目标的价值应可以度量,并且由此度量所得出的数据应可以获得同意的解释。具有挑战性但又是可实现的(Aggressive yet Achievable):目标过高-挫伤积极性和士气;目标过低-毫无挑战性,缺乏激励 面向结果的(Results-oriented):所作的度量能够反映项目中的一些迹象。限定时间短(Time-bound):目标必须在给定的时间内完成。51度量的流程流程流程明确目标确定度量数据采集过程性能度量过程控制过程改善持续改善 怎样确定合适的度量目标?选择恰当的度量?合理划分不同
20、层次的度量内容?选择合适的度量时机?明确度量的不同角色?怎样保证数据的有效性?怎样应用工具支持数据采集?选择合适的度量分析方法?结合度量分析与项目管理?基于度量的过程改善?保证度量实施的有效性?52度量的关键n实施度量的关键结合商业目标获得不同角色人员的度量需求想获得什么,就度量什么?53项目度量n项目度量的目的n组织提出的要求,目的是从项目中收集数据;积累组织的过程及产品数据;更新组织数据库 n为了更好的管理和控制已识别的项目中存在的风险和问题,更好的管理和控制项目进度、成本、产品质量等 n项目度量的关键n软件需求是度量软件质量的基础。不符合需求的软件就不具备质量。54项目度量n项目规划阶段要结合项目要求和特点n做好项目估算n制定项目的质量目标n制定项目的度量计划n项目实施阶段n按计划收集项目数据n按计划分析项目数据(如里程碑)n就分析的结果采取一定的措施55常见的分析图Pareto:80/20原则的应用,找出项目主要关注区域或影响因素56常见的分析图趋势图:分析项目的某个特性的发展趋势57软件质量管理谢谢