2--软件质量保证体系
还有软件检查、软件计量、软件可靠性、软件可维修性、软 件工具评估和选择等。
6
能力成熟模型CMM&CMMI
能力成熟度模型(Capability Maturity Model,CMM)的本质是软 件管理工程的一个部分。
它是对于软件组织在定义,实现,度量,控制 和改善其软件过程的进程中各个发展阶段的描 述。
它主要用于软件开发过程和软件开发能力的评价和改进。 它侧重于软件开发过程的管理及工程能力的提高与评估。
CMM自1987年开始实施认证,现已成为软件业最权威的评 估认证体系。 CMM包括5个等级,共计18个过程域,52个目标,300多 个关键实践。
3
能力成熟度模型的基本概念
能力成熟度模型(Capability Maturity Model for Software,英文缩写为SWCMM,简称CMM)CMM是对于软件组织在定 义、实施、度量、控制和改善其软件过程的实践 中各个发展阶段的描述。 它是在美国国防部的指导下,由软件开发团体和 软件工程学院(SEI)及Carnegie Mellon大 学共同开发的。 CMM的核心是把软件开发视为一个过程,并根 据这一原则对软件开发和维护进行过程监控和研 究,以使其更加科学化、标准化、使企业能够更 好地实现商业目标。
技术变更、问题分 析、问题预防
定量的软件过程管理和产品质量管理
III
已 定 义 级
已经将软件管理和过程文档化,标准化, 过程度量、过程分 同时综合成该组织的标准软件过程, 析量化质量计划 所有的软件开发都使用该标准软件 过程
组织过程定义,组织过程焦点,培训 大纲,软件集成管理,软件产品工 程,组织协调,专家评审
生 产 率 和 质 量 风 险
II
可 重 复 级 初 始 级
建立了基本的项目管理来跟踪进度,费 用和功能特征,制定了必要的项目 管理,能够利用以前类似项目应用 取得成功 软件过程是混乱无序的,对过程几乎没 有定义,成功依靠的是个人的才能 和经验,管理方式属于反应式
培训、测试、技术 常规和评审过程关 注、标准和过程 项目管理、项目策 划、配置管理软件 质量保证
软件质量保证与测试
第2章 软件质量保证体系
1
2 软件质量保证体系
软件质量保证(Software Quality Assure,SQA)是建立 一套有计划,有系统的方法,来向管理层保证拟定出的标准、 步骤、实践和方法能够正确地被所有项目所采用。软件质量保 证的目的是使软件过程对于管理人员来说是可见的。
不能集中其不同过程改进的能力以取得更大成绩; 要进行一些重复的培训、评估和改进活动,因而增加 了许多成本; 遇到不同模型中有一些对相同事物说法不一致,或活 动不协调,甚至相抵触。
12
CMM中的质量框架
软件质量保证(Software Quality Assurance,SQA)是 CMM可重复级中6个关键过程域之一,在CMMI中该关键过程 升级为管理级中的过程与产品质量保证过程(Process and Product Quality Assurance,PPQA)。
14
2.2软件质量保证SQA
SQA背景 SQA目标 SQA任务 SQA在软件开发不同阶段的目标 SQA活动 SQA的实施
15
什么阶段做什么事情?
2---软件质量保证过程(SQA)
16
团队软件过程
需要有高层主管和各级经理的支持,以取得必要的资源; 项目组开发人员需要经过PSP的培训并有按TSP工作的愿望和热情; 整个开发单位在总体上应处于CMM二级以上,开发小组的规模以3~20人为宜。
11
CMMI
软件能力成熟度集成模型(Capacity Maturity Model Integrated,CMMI)是 CMM模型的最新版本。 早期的能力成熟度模型是一种单一的模型其英文 缩写为CMM,较多地用于软件工程。随着应用 的推广与模型本身的发展,该方法演绎成为一种 被广泛应用的综合性模型,因此改名为CMMI模 型。
5
实施CMM的必要性
实施CMM是改进软件质量的有效方法:控制软件生产过程、 提高软件生产者组织性和软件生产者个人能力的有效合理 的方法软件工程和很多研究领域及实际问题有关,主要相 关领域和因素有:
需求工程(Requirements Engineering)。
理论上,需求工程是应用已被证明的原理、技术和工具, 帮助系统分析人员理解问题或描述产品的外在行为。 软件复用(Software Reuse),定义为利用工程知识 或方法,由一已存在的系统,来建造一新系统。这种技术, 可改进软件产品质量和生产率。
目标1:软件质量保证活动是有计划的 目标2:软件产品和活动与适用的标准、规程和需求的符合性要得 到客观验证 目标3:相关的小组和个人要被告知软件质量保证的活动和结果 目标4:高级管理者处理在软件项目内部不能解决的不符合问题。
13
质量保证实现的具体实施方法
定义项目类型和生命周期 建立SQA计划,确定项目审计内容 生成SQA报告 审计SQA报告 独立汇报
验证
测试
基础
10
PSP和TSP
个体软件过程
个体软件过程(Personal Software Process,PSP)是一种可用于控制、 管理和改进个人工作方式的自我持续改进过程,是一个包括软件开发表格、 指南和规程的结构化框架。 PSP与具体的技术(程序设计语言、工具或者设计方法)相对独立,其原则 能够应用到几乎任何的软件工程任务之中。PSP能够说明个体软件过程的原 则; 帮助软件工程师做出准确的计划;确定软件工程师为改善产品质量要采 取的步骤;建立度量个体软件过程改善的基准;确定过程的改变对软件工程 师能力的影响。 实践证明,仅有PSP还是不够。因此,CMM/SEI又在此基础上发展出了TSP 方法。TSP指导项目组中的成员如何有效地规划和管理所面临的项目开发任 务,并且告诉管理人员如何指导软件开发队伍。 TSP实施集体管理与自己管理自己相结合的原则,最终目的在于指导开发人 员如何在最少的时间内,以预计的费用生产出高质量的软件产品。所采用的 方法是对群组开发过程定义、度量和改进。实施TSP的先决条件有3条:
4
CMM的基本思有60多年历史的产品质量原理。 休哈特(Walter Shewart)在30年代发表了统计质量 控制原理,戴明(W. Edwards)和朱兰(Joseph Juran)的关于质量的著作又进一步发展和论证了该原理。 实际上,将质量原理变为成熟度框架的思想是克劳斯比 (Philip Crosby),他在著作《质量免费》 (Quality is Free)中首先提出,他的质量管理成熟度 网络描绘了采用质量实践时的5个进化阶段,而该框架后 来又由IBM的拉迪斯(Rom Radice)和他的同事们在 汉弗莱(Watts Humphrey)指导下进一步改进以适 应软件过程的需要。 1986年,汉弗莱将此成熟框架带到了SEI并增加了成熟 度等级的概念,将这些原理应用于软件开发,发展成为软 件过程成熟度框架,形成了当前软件产业界正在使用的框 架。
因此,满足SQA是达到CMM2级要求的重要步骤之一。
2
2.1能力成熟度模型(CCM)
能力成熟度模型的历史和发展
1987年,美国卡内基· 梅隆大学软件研究所(Software Engineering Institute,SEI)受美国国防部的委托,率先 在软件行业从软件过程能力的角度提出了软件过程成熟度模 型(Capability Maturity Model,CMM),随后在全世界 推广实施的一种软件评估标准,用于评价软件承包能力并帮 助其改善软件质量的方法。
通过5个不断进化的层次来评定软件生产 的历史与现状。
7
CMM质量思想
等 级
V 优 化 级
特征
软件过程的量化反馈和新的思想和技术 促进过程的不断改进
主要解决问题
保持优化的机构
关键域
缺陷预防,过程变更和技术变更管理
结 果
IV
已 管 理 级
收集软件过程、产品质量的详细度量, 对软件过程和产品质量有定量的理 解和控制
它通过对软件产品和活动进行评审和审计来验证软件是合乎标准的。 软件质量保证组在项目开始时就一起参与建立计划、标准和过程。
SQA(软件质量保证)是CMM(软件能力成熟度)2级中的一 个重要关键过程区域,它是贯穿于整个软件过程的第三方独立 审查活动,在CMM的过程中充当重要角色。 SQA的目的是向管理者提供对软件过程进行全面监控的手段, 包括评审和审计软件产品和活动,验证它们是否符合相应的规 程和标准,同时给项目管理者提供这些评审和审计的结果。
正如在CMMISW中描述的那样,软件质量保证的目的是提供成员与 管理阶层客观洞察流程与相关工作产品。
软件质量保证包括评审和审计软件产品和活动,以验证它们是 否符合适用的规程和标准,还包括向软件项目和其他有关的管 理者提供评审和审计的结果。 CMM/CMMI为满足这个关键过程域的要求需要达到以下4个 目标:
需求管理,项目计划,项目跟踪和监 控,软件子合同管理,软件配置管 理,软件质量保证
I
8
处于CMM初始级项目
杰出的主管和优秀的队伍 CMM1 一般的主管和队伍
项目成功
项目成功难以预测
9
CMM2 项目
项目策划 输入 设计 追溯 基础 软件需求 范围 缩小 跟踪
项目跟踪与监控
基础
用户文档 变更
基线 软件配置管理