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