CMMI与软件质量管理国家软件标准化推广中心林平2Page目的明确组织实施CMMI的基本目标应包含对质量管理能力的提升理解CMMI质量管理的基本理念了解CMMI所包含的质量管理的实践和要求。明确以提高产品质量为目的的项目质量管理所涵盖的内容和方法3Page内容推进质量管理是实施CMMI过程改进的重要目标基于过程的质量管理项目质量管理的3个方面:质量保证、质量控制和质量工程的实践质量保证-概念及QA的角色质量控制项目质量工程的实践4PageCMMI实施带来哪些改变?改进软件产品的质量改进项目满足预定目标的能力减少开发成本和周期降低项目风险更有效地控制供应商提高组织过程能力提高竞争力,市场占有率,效益…….CMMI的实施有助于:5Page成功的经验-1缺陷率生产率‘88’89‘90’91‘92’93‘94’95‘96’97‘98’99软件缺陷率Defect/KLOC软件生产率和质量性能Reference:PresentedatSEPG99L2L3L4软件生产率SLOC/人天6Page成功的经验-2DefectManagement050100150200250Req.DesignCodeTestPost-ReleaseLevel1Level2Level3缺陷能够在早期发现并消除7Page成功的经验-2缺陷管理050100150200250Req.DesignCodeTestPost-ReleaseLevel1Level2Level3缺陷能够在早期发现并消除8Page成功的经验-3产品质量随成熟度的提高而改进9PageCMM等级与产品缺陷CMMLevel隐含的缺陷缺陷消除率%交付的缺陷15.00850.7524.00890.4433.00910.2742.00930.1451.00950.05数据按每个功能点的缺陷数来表示Source:SoftwareAssessments,Benchmarks,andBestPracticesbyCapersJones,year200010Page国内CMM成熟度等级分布成熟度等级分布30,9%16,5%163,46%141,40%ML5ML4ML3ML2数据来源:信产部科技司05年12月软件过程改进与评估推进座谈会国内软件企业开展CMM/CMMI过程评估的数量达到350家11Page被评估组织的地区分布1169141251818161015020406080100120北京上海*广东辽宁*浙江山东云南江苏其他区域分布*上海、辽宁数据到05年底数据来源:信产部科技司05年12月软件过程改进与评估推进座谈会12Page国内软件企业的质量管理能力缺少对产品质量状况进行客观评价的数据按CMMI模型实施的过程改进应将项目质量管理能力的提升作为改进重点之一。13Page质量和软件质量管理质量(Quality)•一组内在特性满足需求的程度。[ISO9000:2000]•一个系统、构件或过程满足特定需求(顾客或用户需要或期望)的程度。[IEEE-STD-610]软件质量管理确定一个软件产品的质量目标、建立实现这些目标的计划以及监督和调整软件计划、软件工作产品、活动和质量目标以满足顾客和最终用户需要和期望的过程。SW-CMM[CMU/SEI-93-TR-025]14Page质量对成本和进度的影响早期阶段工作产品的低质量将最终影响成本和进度开发过程中较早引入的缺陷,如果未加消除,将在后期花费更多的资源来治理。单独依靠产品交付前的测试会更多地牺牲进度和成本•成熟的过程在项目早期就开始控制工作产品的质量缺陷预防的方法能达到成本效益最佳成本和进度是确定质量等级的主要影响因素之一15PageCMMI质量管理的理念“产品的质量在很大程度上取决于用以开发和维护该产品的过程的质量。”人过程技术Q&P该前提以制造业为基础已长久建立;在世界范围的制造和服务业的质量运动中得到确信(如,ISO9000标准)。16Page基于过程的质量定义过程质量OK否是开发产品评估产品质量改进过程将过程制度化17Page质量管理的职责质量管理体系和过程的建立在组织级,实施在项目级;组织质量管理的职责•质量目标是组织的商业目标之一•建立质量方针和策略•提供资源和支持项目质量管理的职责•把质量构建到产品中去•实施对产品质量的监控项目如何实施质量管理?18Page项目质量管理的主要环节质量保证(QualityAssurance)质量控制(QualityControl)质量工程的实践(QualityEngineeringPractices)19Page软件质量保证什么是软件质量保证?•由(相对)独立的质量管理人员在项目的整个开发周期中对项目所执行的过程和产生的工作产品进行监督和检查,确保其符合预定的要求。•条件:组织已经制定了较为完备的开发和管理过程体系质量保证的目的•确保过程得到有效地执行,并推进过程改进•就项目过程的执行情况和所构造的产品向管理者提供适当的可视性质量保证有效实施的前提•各级管理者相信“过程”•高级管理者提供资源和支持•QA的主动性20Page理解QA的角色QA关注的是:正确的贯彻和使用过程客观地审视项目过程的符合性与SEPG组共同分析执行过程所产生的结果,以支持过程改进合作协调地开展工作提供执行过程的反馈意见为项目人员掌握过程提供指导21Page理解QA的角色QA不承担:对模型(CMM/CMMI)符合性的监督验证项目工作产品的好坏“goodness”产品质量的责任强迫对过程的遵循22Page质量控制为评价和验证已开发的产品而执行的活动和技术•产品是否满足质量要素(qualityfactors)的要求?•产品(包括生命周期的工作产品)是否具有可接受的质量?工具和技术•同行评审/技术评审•测试质量控制的目的•发现在工作产品中隐藏的缺陷和问题•为产品的质量分析提供数据23Page评审评审(Review):软件技术人员(包括管理人员、用户代表)以会议的形式对软件产品进行评论,识别存在的问题,并判断其是否满足预期的要求。同行评审(Peerreview)•在工作产品的开发进程中由同行们对该工作产品进行的评审,目的是识别要消除的缺陷。[CMMIV1.2]•方式:审查(Inspection)、走查(walkthrough),……评审过程•评审的检查单•评审记录和报告24Page测试测试-对产品的动态检测和评价•不同层次,单元测试、集成测试,..….•不同的类型,黑箱、白箱•……目的:验证产品符合技术文档预期的特性、功能和性能等要求;识别产品的缺陷。正式测试过程•测试规程、方法和工具•缺陷的记录和跟踪机制25Page评审和测试关注的重点过程发现缺陷的能力对过程活动和产品质量状况的了解Weeks12345678910255075100125150OpenClosedTotalTroubleReportsWeeks12345678910255075100125150OpenClosedTotalWeeks12345678910255075100125150OpenClosedTotalTroubleReports26Page质量工程确保将质量构建到软件产品而对需求、设计、代码和验证过程和结果所进行的各种分析、研究和调控,以确保产品的可靠性、可维护性和其它质量要素得到满足的活动。•早期的错误发现•缺陷消除有效性分析•质量成本的优化•缺陷预防27Page项目质量工程的实践质量分析模型质量分析的技术、方法和工具•鱼骨图、Pareto图、趋势分析、统计过程控制等质量分析产生的共识•尽可能早地发现并消除缺陷•在软件开发周期的各阶段实施质量控制活动;收集质量管理的数据•缺陷数据•返工的工作量数据缺陷消除有效性分析;质量成本分析28Page质量分析模型-缺陷消除错误修改引入缺陷发现进入本阶段前存在的缺陷未发现的缺陷结束本阶段时遗留的缺陷消除的缺陷逃逸的缺陷本阶段开发中注入的缺陷进入的缺陷进入的缺陷本阶段开发中注入的缺陷消除的缺陷+()/DRE=缺陷消除的有效性(DRE)缺陷修改修改引入的缺陷+当前的开发阶段阶段性缺陷消除的有效性29Page尽早消除缺陷的价值0102030405060…100RequirementsDesignCodeSystemTestMaintenancePhaseErrorFound&FixedCosttoFix$1$5$20$50$100+缺陷修改的成本1:10:10030Page多阶段消除缺陷比较阶段需求设计实施UTITST进入的缺陷1003407362951184760%的缺陷被消除401362951184719进入的缺陷100330699210631970%的缺陷被消除30992106319610030060095%100060%60%60%60%60%60%1950DREDRE10%缺陷×331Page项目发现缺陷的状况?32Page缺陷数据是质量活动的基础策划将来的项目和项目的后续阶段•积累的缺陷历史数据在项目策划中可以用来确立项目的质量目标•估计缺陷密度•缺陷消除率•在开发进程中利用项目前期采集的缺陷数据来预测产品潜在的缺陷•采取适当的措施来改进质量•规划产品的维护工作利用缺陷数据评估•过程•项目缺陷预防•错误发生的类别•原因分析33Page缺陷消除的模式DefectProfile010203040Req.DesignCodingUTITSTFieldProjectphaseDefectDensityDefectProfile010203040Req.DesignCodingUTITSTFieldProjectphaseDefectDensity34Page分析缺陷数据对每次评审和测试活动收集的数据进行汇总和分析•缺陷分布的趋势及其对产品质量的影响•识别缺陷引入阶段•缺陷密度-缺陷是否被充分地发现……35Page缺陷消除有效性矩阵(DREMatrix)项目的DRE=148/166=89.2%高中警示DRE90%75-90%75%36Page改进质量的途径-尽早消除缺陷在总体注入缺陷相同的情况下,尽早地消除缺陷可以使交付产品的质量大大提高。需求设计编码单元测试系统测试部件测试交付使用缺陷数37Page缺陷预测WithRayleighModel开发阶段缺陷数需求设计编码单元测试系统测试部件测试交付使用38Page小结软件质量管理是一项艰巨的任务了解质量管理的基础知识、方法和工具逐步实施质量管理的实践39Page谢谢各位!