CMMI 与软件质量管理
-
Upload
whittaker-jovani -
Category
Documents
-
view
72 -
download
3
description
Transcript of CMMI 与软件质量管理
CMMI 与软件质量管理
目的 明确组织实施 CMMI 的基本目标应包含对
质量管理能力的提升 理解 CMMI 质量管理的基本理念 了解 CMMI 所包含的质量管理的实践和要
求。 明确以提高产品质量为目的的项目质量管
理所涵盖的内容和方法
内容 推进质量管理是实施 CMMI 过程改进的重要目标 基于过程的质量管理 项目质量管理的 3 个方面:质量保证、质量控制和质量
工程的实践 质量保证 - 概念及 QA 的角色 质量控制 项目质量工程的实践
CMMI 实施带来哪些改变?
改进软件产品的质量 改进项目满足预定目标的能力 减少开发成本和周期 降低项目风险 更有效地控制供应商 提高组织过程能力 提高竞争力,市场占有率,效益 …….
CMMI 的实施有助于:
成功的经验 -1
缺陷率
生产率
‘88 ’89 ‘90 ’91 ‘92 ’93 ‘94 ’95 ‘96 ’97 ‘98 ’99
软件缺陷率Defect / KLOC
软件生产率和质量性能
Reference: Presented at SEPG 99
L2 L3 L4
软件生产率
SLOC / 人天
成功的经验 -2
Defect Management
0
50
100
150
200
250
Req. Design Code Test Post-Release
Level 1
Level 2
Level 3
缺陷能够在早期发现并消除
成功的经验 -2
缺陷管理
0
50
100
150
200
250
Req. Design Code Test Post-Release
Level 1
Level 2
Level 3
缺陷能够在早期发现并消除
成功的经验 -3产品质量随成熟度的提高而改进
CMM 等级与产品缺陷CMM Level
隐含的缺陷缺陷消除率
%交付的缺陷
1 5.00 85 0.75
2 4.00 89 0.44
3 3.00 91 0.27
4 2.00 93 0.14
5 1.00 95 0.05
数据按每个功能点的缺陷数来表示Source: Software Assessments, Benchmarks, and Best Practices by Capers Jones, year 2000
国内 CMM 成熟度等级分布成熟度等级分布
30, 9%
16, 5%
163, 46%
141, 40% ML 5ML 4ML 3ML 2
数据来源:信产部科技司 05 年 12 月软件过程改进与评估推进座谈会
国内软件企业开展 CMM/CMMI 过程评估的数量达到 350 家
被评估组织的地区分布
116
91
41
2518 18 16
10 15
0
20
40
60
80
100
120
北京 上海* 广东 辽宁* 浙江 山东 云南 江苏 其他
区域分布
* 上海、辽宁数据到 05 年底
数据来源:信产部科技司 05 年 12 月软件过程改进与评估推进座谈会
国内软件企业的质量管理能力 缺少对产品质量状况进行客观评价的数据
按 CMMI 模型实施的过程改进应将项目质量管理能力的提升作为改进重点之一。
质量和软件质量管理 质量 (Quality)
• 一组内在特性满足需求的程度。 [ISO 9000: 2000]
• 一个系统、构件或过程满足特定需求(顾客或用户需要或期望)的程度。 [IEEE-STD-610]
软件质量管理 确定一个软件产品的质量目标、建立实现这些目标的
计划以及监督和调整软件计划、软件工作产品、活动和质量目标以满足顾客和最终用户需要和期望的过程。
SW-CMM [CMU/SEI-93-TR-025]
质量对成本和进度的影响
早期阶段工作产品的低质量将最终影响成本和进度 开发过程中较早引入的缺陷,如果未加消除,将在后期花
费更多的资源来治理。 单独依靠产品交付前的测试会更多地牺牲进度和成本
• 成熟的过程在项目早期就开始控制工作产品的质量 缺陷预防的方法能达到成本效益最佳 成本和进度是确定质量等级的主要影响因素之一
CMMI 质量管理的理念
“产品的质量在很大程度上取决于用以开发和维护该产品的过程的质量。”
人 过 程
技 术
Q & P
该前提 以制造业为基础已长久建立; 在世界范围的制造和服务业的质量运动中
得到确信(如, 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), ……
评审过程• 评审的检查单• 评审记录和报告
测试 测试 - 对产品的动态检测和评价
• 不同层次,单元测试、集成测试 , ..….• 不同的类型,黑箱、白箱• ……
目的: 验证产品符合技术文档预期的特性、功能和性能
等要求;识别产品的缺陷。 正式测试过程
• 测试规程、方法和工具• 缺陷的记录和跟踪机制
评审和测试关注的重点 过程发现缺陷的能力 对过程活动和产品质量状况的了解
Weeks1 2 3 4 5 6 7 8 9 10
25
50
75
100
125
150
Open
Closed
Total
TroubleReports
Weeks1 2 3 4 5 6 7 8 9 10
25
50
75
100
125
150
Open
Closed
Total
Weeks1 2 3 4 5 6 7 8 9 10
25
50
75
100
125
150
Open
Closed
Total
TroubleReports
质量工程 确保将质量构建到软件产品而对需求、设
计、代码和验证过程和结果所进行的各种分析、研究和调控,以确保产品的可靠性、可维护性和其它质量要素得到满足的活动。 • 早期的错误发现• 缺陷消除有效性分析• 质量成本的优化• 缺陷预防
项目质量工程的实践 质量分析模型 质量分析的技术、方法和工具
• 鱼骨图、 Pareto 图、趋势分析、统计过程控制等 质量分析产生的共识
• 尽可能早地发现并消除缺陷• 在软件开发周期的各阶段实施质量控制活动;
收集质量管理的数据• 缺陷数据• 返工的工作量数据
缺陷消除有效性分析; 质量成本分析
质量分析模型 - 缺陷消除
错误修改引入
缺陷发现
进入本阶段前存在的缺陷
未发现的缺陷
结束本阶段时遗留的缺陷
消除的缺陷
逃逸的缺陷本阶段开发中
注入的缺陷进入的缺陷
进入的缺陷本阶段开发中
注入的缺陷消除的缺陷 +( )/DRE =
缺陷消除的有效性 (DRE)
缺陷修改
修改引入的缺陷+
当前的开发阶段
阶段性缺陷消除的有效性
尽早消除缺陷的价值
0
10
20
30
40
50
60
…
100
Requirements Design Code System Test Maintenance
Phase Error Found & Fixed
Co
st t
o F
ix
$1 $5
$20
$50
$100+缺陷修改的成本 1 : 10 : 100
多阶段消除缺陷比较
阶 段 需求 设计 实施 UT IT ST
进入的缺陷 100 340 736 295 118 47
60% 的缺陷被消除 40 136 295 118 47 19
进入的缺陷 100 330 699 210 63 19
70% 的缺陷被消除 30 99 210 63 19 6
100 300 600
95%
1000
60% 60% 60% 60% 60% 60%
19
50
DRE
DRE 10%
缺陷 ×3
项目发现缺陷的状况?
缺陷数据是质量活动的基础 策划将来的项目和项目的后续阶段
• 积累的缺陷历史数据在项目策划中可以用来确立项目的质量目标• 估计缺陷密度• 缺陷消除率
• 在开发进程中利用项目前期采集的缺陷数据来预测产品潜在的缺陷
• 采取适当的措施来改进质量• 规划产品的维护工作
利用缺陷数据评估• 过程 • 项目
缺陷预防• 错误发生的类别• 原因分析
缺陷消除的模式
Defect Profile
0
10
20
30
40
Req. Design Coding UT IT ST Field
Project phase
DefectDensity
Defect Profile
0
10
20
30
40
Req. Design Coding UT IT ST Field
Project phase
Defect Density
分析缺陷数据 对每次评审和测试活动收集的数据进行汇总和分析• 缺陷分布的趋势及其对产品质量的影响• 识别缺陷引入阶段• 缺陷密度 - 缺陷是否被充分地发现……
缺陷消除有效性矩阵 (DRE Matrix)
项目的 DRE = 148/166 = 89.2% 高 中 警示
DRE >90% 75-90% < 75%
改进质量的途径 - 尽早消除缺陷
在总体注入缺陷相同的情况下,尽早地消除缺陷可以使交付产品的质量大大提高。
需 求 设 计 编 码 单元测试 系统测试部件测试 交付使用
缺陷数
缺陷预测 With Rayleigh Model
开 发 阶 段
缺陷数
需 求 设 计 编 码 单元测试 系统测试部件测试 交付使用
小结 软件质量管理是一项艰巨的任务 了解质量管理的基础知识、方法和工具 逐步实施质量管理的实践