1、CMMICMMI与软件质量管理与软件质量管理国家软件标准化推广中心林 平2目的 明确组织实施CMMI的基本目标应包含对质量管理能力的提升 理解CMMI质量管理的基本理念 了解CMMI所包含的质量管理的实践和要求。明确以提高产品质量为目的的项目质量管理所涵盖的内容和方法 Page3内容推进质量管理是实施CMMI过程改进的重要目标基于过程的质量管理项目质量管理的3个方面:质量保证、质量控制和质量工程的实践质量保证-概念及QA的角色质量控制项目质量工程的实践 Page4CMMI实施带来哪些改变?改进软件产品的质量 改进项目满足预定目标的能力 减少开发成本和周期 降低项目风险 更有效地控制供应商 提高
2、组织过程能力 提高竞争力,市场占有率,效益 .CMMI的实施有助于:Page5成功的经验-1缺陷率生产率生产率 88 89 90 91 92 93 94 95 96 97 98 99软件缺陷率软件缺陷率Defect/KLOC软件生产率和质量性能软件生产率和质量性能Reference:Presented at SEPG 99L2L3L4软件生产率软件生产率 SLOC/人天Page6成功的经验-2缺陷能够在早期发现并消除缺陷能够在早期发现并消除Page7成功的经验-2缺陷能够在早期发现并消除缺陷能够在早期发现并消除Page8成功的经验-3产品质量随成熟度的提高而改进产品质量随成熟度的提高而改进Pa
3、ge9CMM等级与产品缺陷CMM Level隐含的缺陷缺陷消除率%交付的缺陷15.00850.7524.00890.4433.00910.2742.00930.1451.00950.05数据按每个功能点的缺陷数来表示Source:Software Assessments,Benchmarks,and Best Practices by Capers Jones,year 2000Page10国内CMM成熟度等级分布数据来源:数据来源:信产部科技司 05 年 12 月软件过程改进与评估推进座谈会 国内软件企业开展 CMM/CMMI 过程评估的数量达到 350 家Page11被评估组织的地区分布*
4、上海、辽宁数据到05 年底数据来源:数据来源:信产部科技司 05 年 12 月软件过程改进与评估推进座谈会 Page12国内软件企业的质量管理能力 缺少对产品质量状况进行客观评价的数据 按CMMI模型实施的过程改进应将项目质量管理能力的提升作为改进重点之一。Page13质量和软件质量管理 质量(Quality)一组内在特性满足需求的程度。ISO 9000:2000 一个系统、构件或过程满足特定需求(顾客或用户需要或期望)的程度。IEEE-STD-610 软件质量管理 确定一个软件产品的质量目标、建立实现这些目标的计划以及监督和调整软件计划、软件工作产品、活动和质量目标以满足顾客和最终用户需要和
5、期望的过程。SW-CMM CMU/SEI-93-TR-025Page14质量对成本和进度的影响 早期阶段工作产品的低质量将最终影响成本和进度早期阶段工作产品的低质量将最终影响成本和进度 开发过程中较早引入的缺陷,如果未加消除,将在后期花开发过程中较早引入的缺陷,如果未加消除,将在后期花费更多的资源来治理。费更多的资源来治理。单独依靠产品交付前的测试会更多地牺牲进度和成本单独依靠产品交付前的测试会更多地牺牲进度和成本 成熟的过程在项目早期就开始控制工作产品的质量成熟的过程在项目早期就开始控制工作产品的质量 缺陷预防的方法能达到成本效益最佳缺陷预防的方法能达到成本效益最佳 成本和进度是确定质量等级
6、的主要影响因素之一成本和进度是确定质量等级的主要影响因素之一Page15CMMI质量管理的理念“产品的质量在很大程度上取决于用以开发和维护该产品的过程的质量。”人过 程技 术Q&P该前提n以制造业为基础已长久建立;n在世界范围的制造和服务业的质量运动中得到确信(如,ISO 9000 标准)。Page16基于过程的质量定义过程质量OK否是开发产品评估产品质量改进过程将过程制度化Page17质量管理的职责 质量管理体系和过程的建立在组织级,实施在项目级;组织质量管理的职责 质量目标是组织的商业目标之一 建立质量方针和策略 提供资源和支持 项目质量管理的职责 把质量构建到产品中去 实施对产品质量的监
7、控 项目如何实施质量管理?Page18项目质量管理的主要环节 质量保证(Quality Assurance)质量控制(Quality Control)质量工程的实践(Quality Engineering Practices)Page19软件质量保证 什么是软件质量保证?由(相对)独立的质量管理人员在项目的整个开发周期中对项目所执行的过程和产生的工作产品进行监督和检查,确保其符合预定的要求。条件:组织已经制定了较为完备的开发和管理过程体系 质量保证的目的 确保过程得到有效地执行,并推进过程改进 就项目过程的执行情况和所构造的产品向管理者提供适当的可视性 质量保证有效实施的前提 各级管理者相信“
8、过程”高级管理者提供资源和支持 QA的主动性Page20理解QA的角色QA 关注的是关注的是:正确的贯彻和使用过程 客观地审视项目过程的符合性 与 SEPG组共同分析执行过程所产生的结果,以支持过程改进 合作协调地开展工作 提供执行过程的反馈意见 为项目人员掌握过程提供指导Page21理解QA的角色QA 不承担不承担:对模型(CMM/CMMI)符合性的监督 验证项目工作产品的好坏“goodness”产品质量的责任 强迫对过程的遵循Page22质量控制 为评价和验证已开发的产品而执行的活动和技术 产品是否满足质量要素(quality factors)的要求?产品(包括生命周期的工作产品)是否具有
9、可接受的质量?工具和技术 同行评审/技术评审 测试 质量控制的目的 发现在工作产品中隐藏的缺陷和问题 为产品的质量分析提供数据Page23评审 评审(Review):软件技术人员(包括管理人员、用户代表)以会议的形式对软件产品进行评论,识别存在的问题,并判断其是否满足预期的要求。同行评审(Peer review)在工作产品的开发进程中由同行们对该工作产品进行的评审,目的是识别要消除的缺陷。CMMI V1.2 方式:审查(Inspection)、走查(walkthrough),评审过程 评审的检查单 评审记录和报告Page24测试 测试-对产品的动态检测和评价 不同层次,单元测试、集成测试,.不
10、同的类型,黑箱、白箱 目的:验证产品符合技术文档预期的特性、功能和性能等要求;识别产品的缺陷。正式测试过程 测试规程、方法和工具 缺陷的记录和跟踪机制Page25评审和测试关注的重点 过程发现缺陷的能力 对过程活动和产品质量状况的了解Page26质量工程 确保将质量构建到软件产品而对需求、设计、代码和验证过程和结果所进行的各种分析、研究和调控,以确保产品的可靠性、可维护性和其它质量要素得到满足的活动。早期的错误发现早期的错误发现 缺陷消除有效性分析缺陷消除有效性分析 质量成本的优化质量成本的优化 缺陷预防缺陷预防Page27项目质量工程的实践 质量分析模型 质量分析的技术、方法和工具 鱼骨图、
11、Pareto 图、趋势分析、统计过程控制等 质量分析产生的共识 尽可能早地发现并消除缺陷 在软件开发周期的各阶段实施质量控制活动;收集质量管理的数据 缺陷数据 返工的工作量数据 缺陷消除有效性分析;质量成本分析Page28质量分析模型-缺陷消除缺陷消除错误修改引入缺陷发现进入本阶段前存在的缺陷未发现的缺陷结束本阶段时遗留的缺陷消除的缺陷逃逸的缺陷本阶段开发中注入的缺陷进入的缺陷进入的缺陷本阶段开发中注入的缺陷消除的缺陷+()/DRE=缺陷消除的有效性缺陷消除的有效性(DRE)缺陷修改修改引入的缺陷+当前的开发阶段阶段性缺陷消除的有效性Page29尽早消除缺陷的价值尽早消除缺陷的价值 01020
12、30405060100RequirementsDesignCodeSystem TestMaintenancePhase Error Found&Fixed Cost to Fix$1$5$20$50$100+缺陷修改的成本缺陷修改的成本 1:10:100Page30多阶段消除缺陷比较多阶段消除缺陷比较 阶 段需求设计实施UTITST 进入的缺陷1003407362951184760%的缺陷被消除401362951184719 进入的缺陷100330699210631970%的缺陷被消除30992106319610030060095%100060%60%60%60%60%60%1950DRE
13、DRE 10%缺陷3Page31项目发现缺陷的状况?项目发现缺陷的状况?Page32缺陷数据是质量活动的基础 策划将来的项目和项目的后续阶段 积累的缺陷历史数据在项目策划中可以用来确立项目的质量目标 估计缺陷密度 缺陷消除率 在开发进程中利用项目前期采集的缺陷数据来预测产品潜在的缺陷 采取适当的措施来改进质量 规划产品的维护工作 利用缺陷数据评估 过程 项目 缺陷预防 错误发生的类别 原因分析Page33缺陷消除的模式缺陷消除的模式Defect Profile010203040Req.DesignCodingUTITSTFieldProject phaseDefectDensityDefect
14、 Profile010203040Req.DesignCodingUTITSTFieldProject phaseDefect DensityPage34分析缺陷数据 对每次评审和测试活动收集的数据进行汇总和分析 缺陷分布的趋势及其对产品质量的影响 识别缺陷引入阶段 缺陷密度-缺陷是否被充分地发现Page35缺陷消除有效性矩阵缺陷消除有效性矩阵(DRE Matrix)项目的 DRE=148/166=89.2%高 中 警示DRE90%75-90%75%Page36改进质量的途径-尽早消除缺陷在总体注入缺陷相同的情况下,尽早地消除缺陷可以使交付产品的质量大大提高。需 求设 计编 码单元测试系统测试部件测试交付使用缺陷数缺陷数Page37缺陷预测缺陷预测 With Rayleigh Model开开 发发 阶阶 段段缺陷数缺陷数需 求设 计编 码单元测试系统测试部件测试交付使用Page38小结 软件质量管理是一项艰巨的任务 了解质量管理的基础知识、方法和工具 逐步实施质量管理的实践Page39谢谢各位谢谢各位!Page