9df5c0f0d6f25799ff570cd1c274e47d.ppt
- Количество слайдов: 121
北京理 大学 软件 程实践 汤铭端 中国航天科 集团公司 204所
第十五讲 软件能力成熟度模型介绍 SW-CMM
内容 n n n SW-CMM的提出 SW-CMM的结构 CMM-2的关键过程区域 CMM-3的关键过程区域 CMM-4的关键过程区域 CMM-5的关键过程区域
SW-CMM的提出
项目成功的支柱 过程管理 人力资源 技术资产 客户—供应商 关系
软件过程—外行的观点 客户 程序员 “为我的产品 开发一个软件” 然后奇迹发生 完成。
该过程的潜在问题 n 开发队伍角色未定义,不协调 n 团队 作和过程绩效由于执行的间隙和冲突而 削弱 n 对过程和产品质量的洞察有限 n 对产品配置的控制有限 n 发行比原始进度推迟 n 成本比估计的大得多 n 软件不是客户所需要得
软件过程—内行的初步观点 描述 编码 观察 能否 作
不成熟组织的共同特征 因素 特征 管理相关 没有觉察,太忙 项目成员 差的培训,缺乏经验,没有组织 开发过程 未定义,任意 管理类型 危机管理 产品质量 没有度量 产品配置 没有控制 项目成功 依赖于英雄
不成熟组织产生的共同结果 因素 结果 需求 缺乏控制,需求“不断懦动” 产品性能 不可预估,不能满足用户需要 产品配置 没有管理 产品质量 不可知,充满缺陷 成本 缺乏追踪,经常超越 进度 经常延迟
CMM的产生背景 n n 美国国防部在向承包商发包军用软件项目时, 希望了解承包商的开发能力,以保证项目的成 功和产品质量 美国国防部委托美国卡内基-梅隆大学的软件 程研究所(CMU-SEI)进行研究 SEI基于项目成功很大程度依赖于其开发过程 的经验,提出包含 5级的软件能力成熟度模型 (SW-CMM) 美国国防部要求其承包商的能力成熟度至少为 3级
CMM的产生历程 n n n 1987年美国软件 程研究所(SEI)以 W. S. Humphrey为首的研究组发表的“承 包商软件 程能力的评估方法” 1991年发展为SEI CMM 1. 0(能力成熟度 模型1. 0版) 1993年该模型发展为SEI CMM 1. 1(现行 有效)
CMM的基础 n 阶段化结构:基于过去 60年来的产品质 量原则。 n Walter Shewart在三十年代发表了统计质量 控制原理。W. Edwards Deming 和Joseph Juran 又进一步发展和论证了该原理。 成熟度框架: Philip Crosby在“Quality is Free”中描述了质量管理成熟度框架的五 个进化阶段。 n IBM等的 程实践。
SW-CMM的结构
软件过程——术语 n 人们用于开发和维护软件及其相关产品( 例如,项目计划、设计文档、代码、测 试用例、用户手册等等)的一系列活动、 包括软件 程活动和软件管理活动。
软件过程能力——术语 n 描述(开发组织或项目组)通过遵循其软件过 程能够实现预期结果的程度。 一个软件开发组织或项目组的软件过程能力提供 一种预测该组织承担下一个软件项目时最可能 的预期结果的方法。软件过程能力既可对整个 软件开发组织而言,也可对一个软件项目组而 言。 n 软件过程性能:表示(开发组织或项目组)遵 循其软件过程所得到的实际结果。
软件过程成熟度——术语 n n 一个特定软件过程被明确和有效地定义、管理、 测量和控制的程度。 成熟度可指明一个软件开发组织软件过程能力 的增长潜力。随着软件组织的软件过程成熟度 的提高,开发组织通过其方针、标准和组织机 构等将其软件过程规范化和具体化。从而使得 开发组织明确定义的有关管理和 程的方法、 实践和规程等在现有人员离去后仍能继续下去。
软件过程能力成熟度等级——术语 n n 软件开发组织在走向成熟的途中几个具有明确 定义的表征软件过程能力成熟度的平台。 每一个成熟度等级为过程继续改进达到下一个 等级提供一个基础。每一等级包含一组过程目 标,当其中一个目标被达到时,就表明软件过 程的一个(或几个)重要成分得到了实现,导 致组织的软件过程能力增长。
软件能力成熟度模型——术语 n n 对软件组织进化阶段的描述,随着软件组织定 义、实施、测量、控制和改进其软件过程,软 件组织的能力经过这些阶段逐步前进。 这个模型使软件组织能够较容易地确定其当前 过程的成熟度并识别出其软件过程执行中的薄 弱环节,确定对软件质量和过程改进最为关键 的几个问题,从而形成对其过程的改进策略; 软件组织只要关注并认真实施一组有限的关键 实践活动,就能稳步地改善其全组织的软件过 程。
CMM软件过程能力成熟度的5个等级 1 2 3 4 5 软件过程的特点是无秩序的,偶尔甚至是混乱的。几乎没 有什么过程是经过定义的,成功依赖于个人的努力。 已建立基本的项目管理过程去跟踪成本、进度和功能性。 必要的过程纪律已经到位,使类似得应用项目,能重复以 前的成功。 管理活动和 程活动两方面的软件过程均已文档化、标准 化、并集成到组织的标准软件过程。全部项目均采用供开 发和维护软件用的组织标准软件过程的一个经批准的剪裁 版本。 已采集详细的有关软件过程和产品质量的度量数据。 无论 软件过程还是产品均得到了定量了解和控制。 利用来自过程和来自新思想、新技术的先导性试验的定量 反馈信息,使持续的过程改进成为可能。
CMM软件过程能力成熟度的 5个等级(图示) 连续改进过程 可预估的过程 标准、一致的 过程 严格执行 的过程 1. 初始 不可预估和缺乏控 制 4. 已管理 过程被度量和控制 3. 已定义 过程特征化,容易 理解 2. 可重复 可以重复以前熟练 的任务 项目管理 5. 优化 集中于过程改进 集成 程过程 管理更改 产品和过程质量
SEI 能力成熟度模型 结果 关键过程区域 级别 优化 (5) 已管理 (4) 已定义 (3) 可重复 (2) 初始l (1) 特征 关键过程区域 Continuous process capability improvement Process change management Technology change management Defect prevention Product quality planning; Software quality management tracking of measured Quantitative process management software process Peer reviews Intergroup coordination Software process defined Software product engineering and institutionalized to Integrated software management provide product quality Training program control Organization process definition Organization process focus Management oversight and tracking of project; stable planning and product baselines 定制 (成功依赖于英雄) 生产率 & 质量 Software configuration management Software quality assurance Software subcontract management Software project tracking & oversight Software project planning Requirements management “人员" 风险
管理 5 优化级 4 已管理级 3 已定义级 定量软件管理 集成软件管理 组间合作 2 可重复级 需求管理 软件项目策划 软件项目 追踪与监督 软件子合同管理 软件质量保证 软件配置管理 定制的过程 1 初始级 机构 技术更新管理 过程更新管理 组织过程焦点 组织过程定义 培训大纲 程 缺陷预防 软件质量管理 软件产品 程 同行评审
管理可视性 过程能力 概率 级别 Target 5 N-z Time/$/. . . 4 N-y 3 N-x 2 1 N+a In Out N
初始级——图示 Level 1: Just do it. Activity to produce Results
初始级——行为特征(1) 在初始级上组织一般不提供开发和维护软 件的稳定环境。当组织中缺乏健全的管 理实践时,不适当的规划和反应驱动体 系会降低由良好的软件 程实践所带来 的效益。
初始级——行为特征(2) 在危机时刻,项目一般抛弃预定的规程,回复到 仅作编码和测试。成功完全依赖于有一个杰出 的经理及一支有经验的、战斗力强的软件队伍。 偶尔,有能力的、坚强的软件经理能经受住要 他们在软件过程中走捷径的压力,但是当他们 离开项目后,他们能使过程稳定的影响也随之 消失。甚至一个强的 作过程也不能克服由于 缺乏健全的管理实践所造成的不稳定。
初始级——行为特征(3) 等级 1的组织的过程能力是不可预测的,因 为随着 作进展软件过程经常被改变或 修定(即过程是无秩序的)。进度、预 算、功能性和产品质量一般是不可预测 的。等级 1组织几乎没有明显的稳定的软 件过程,只能通过个人的能力而不是组 织的能力去预测性能。
可重复级——图示 Level 2: Think before you act, and think after you act, just to make sure you did it right. Planning Activity to produce Results input to Evaluation to improve
可重复级——行为特征(1) 在可重复级上,已建立管理软件项目的方针和实 施这些方针的规程。基于在类似项目上的经验 对新项目进行规划和管理。达到 2 级的目的是 使软件项目的有效管理过程制度化,这使得组 织能重复在以前项目上所开发的成功实践,尽 管项目所实施的具体过程可能不同。一个有效 过程可特征化为实用的、已文档化的、已实施 的、已培训的、已测量的和已改进的。
可重复级——行为特征(2) 等级 2组织中的项目已经设置基本的软件管理控 制。实际可行的项目约定是基于对以前项目的 观察结果和当前项目的需求。项目的软件经理 跟踪软件成本、进度和功能性;在满足约定方 面的问题,一旦出现就被识别。对软件需求和 为实现需求所开发的 作产品建立基线,并控 制其完整性。软件项目标准均已确定,并且组 织能保证准确地执行这些标准。如果有子承包 商的话,软件项目与他们一起努力建立一种强 有力的顾客——供应商关系。
可重复级——行为特征(3) 等级 2组织的过程能力可概括为有纪律的, 因为软件项目的规划和跟踪是稳定的, 能重复以前的成功。由于遵循基于以前 项目性能所制定的切实可行的计划,项 目过程处在项目管理系统的有效控制之下。
已定义级——图示 Level 3 input to Standards Planning Activity input to to produce Results input to Evaluation to improve Use your lessons learned.
已定义级——行为特征(1) 在已定义级上,全组织的开发和维护软件的标准 过程已文档化,包括软件 程过程和软件管理 过程,而且这些过程被集成为一有机的整体( 组织的标准软件过程)。等级 3上所建立(适 当时,经更改)的过程,被用来帮助软件经理 和技术人员 作得更有效。组织在使其软件过 程标准化时,利用有效的软件 程实践。存在 一个负责组织的软件过程活动的组,例如软件 程过程组。实施全组织的培训计划以保证职 员和经理具有履行其职责所必须的知识和技能。
已定义级——行为特征(2) 项目通过剪裁组织的标准软件过程去建立他们自 己定义的软件过程,它说明项目独有的特征( 项目定义软件过程)。 一个已定义软件过程包 含一组协调的、集成的、妥善定义的软件 程 过程和管理过程。妥善定义的过程可特征化为 具有准备就绪判据、输入、标准、进行 作的 规程、验证机制(例如同行评审)、输出、以 及完成判据。因为软件过程已妥善定义,管理 者就能洞察所有项目的技术进展。
已定义级——行为特征(3) 等级 3组织的软件过程能力可概括为标准的 和一致的,因为无论软件 程活动还是 管理活动,过程都是稳定的和可重复的。 在所建立的产品基线内,成本、进度和 功能性均受控制,对软件质量也进行跟 踪。这种过程能力建立在整个组织范围 内对已定义过程中的活动、角色和职责 的共同理解之上。
已管理级——图示 Level 4 input to Standards Planning Activity input to to forecast to produce Results input to Evaluation to improve Predict the results you need and expect and then create opportunities to get those results
已管理级——行为特征(1) 在已管理级上,组织对软件产品和过程都 设置定量的质量目标。作为组织测量大 纲的一部分,对所有的项目都测量其重 要的软件过程活动的生产率和质量。利 用一个全组织的软件过程数据库收集和 分析从项目定义软件过程中得到的数据。 等级 4 上的软件过程均已配备有妥善定义 的和一致的度量。这些度量为定量地评 价项目的软件过程和产品打下基础。
已管理级——行为特征(2) 项目通过将其过程性能的变化限制在定量 的可接受的范围之内,实现对其产品和 过程的控制。可以将过程性能方面有意 义的变化与随机变化(噪声)区别开来, 特别在所建立的产品线内。开发新应用 领域的软件所带来的风险是已知的,并 得到精心的管理。
已管理级——行为特征(3) 等级 4组织的软件过程能力可概括为可预测 的, 因为过程是已测量的并在可测的范 围内运行。该等级的过程能力使得组织 能在定量限制的范围内预测过程和产品 质量方面的趋势。当超过限制范围时, 采取措施予以纠正。软件产品具有可预 测的高质量。
优化级——图示 Level 5 input to Planning Activity Standards input to to forecast to produce Results input to Evaluation to improve Create lessons learned, and use lessons learned to create more lessons learned, and use more lessons learned to create even more lessons learned, and use even more lessons learned to create. . . etc.
优化级——行为特征(1) 在优化级,整个组织集中精力进行不断的 过程改进。为了预防缺陷出现,组织有 办法识别出弱点并预先针对性地加强过 程。在对新技术和所建议的组织软件过 程的更改进行费效分析时利用有关软件 过程有效性的数据。识别出采用最好软 件 程实践的技术创新并推广到整个组织。
优化级——行为特征(2) 等级 5组织的软件项目群组分析缺陷以确定 其发生的原因。为了防止已知类型的缺 陷再次出现,他们认真评价软件过程, 同时将经验教训告知其它项目。
优化级——行为特征(3) 等级 5组织的软件过程能力可特征化为不断 改进, 因为这些组织为扩大其过程能力 的范围进行着不懈的努力,因而不断改 善其项目的过程性能。既通过在现有过 程中增量式前进的办法,也通过采用新 技术、新方法的革新办法,使改进不断 出现。
CMM结构 成熟度等级 指示 包含 过程能力 关键过程区域 按. . . 组织 到达 目标 共同特点 阐述 包含 实施或规范化 关键实践 描述 基础设施或活动
关键过程区域——术语 n n 互相关联的若干软件实践活动和有关基 础设施的一个集合。 每个软件能力成熟度等级包含若干个对 该成熟度等级至关重要的过程区域,它 们的实施对达到该成熟度等级的目标起 保证作用,这些过程区域就称为该成熟 度等级的关键过程区域。
共同特点——术语 n n n 共同特点是表明一个关键过程区域的实 施和规范化是否有效、可重复且持久的 一些属性。 关键过程区域按照共同特点进行组织。 共有5个共同特点:执行约定、执行能力、 执行的活动、测量和分析、验证实施。
关键实践——术语 n n 对关键过程区域的实施起关键作用的方 针、规程、措施,活动以及相关基础设 施的建立。 关键实践一般只描述“做什么”,而不强制 规定“如何做”。关键过程区域的目标是通 过其包含的关键实践的实施来达到的。
CMM结构 2 成熟度级别 关键过程 区域 3 RM PP PT SM QA 4 CM 目标 共同特点 关键实践 执行约定 执行能力 执行的活动 测量和分析 验证实施 5
关键过程区域的过程分类
CMM-2的关键过程区域
需求管理 n n n 需求管理的目的是在顾客和软件项目之 间建立对顾客需求的共同理解,顾客需 求将由软件项目处理。 与顾客的协议是策划和管理软件项目的 基础。 对与顾客关系的控制依靠遵循有效的更 改控制过程。
需求管理 系统需求 软件需求 评审和纳入更改 文档化 软件需求 使用软件需求指导计划、活动 和 作产品。 描绘 编码 观察能否 作
软件项目策划 n n n 软件项目策划的目的是制定进行软件 程和管理软件项目的合理的计划。 这些计划是管理软件项目的必要基础。 没有切合实际的计划不可能实施有效的 项目管理。
软件项目策划 估计规模,成本, 作量 文档记录软件 开发计划 SDP 软件 需求 制定活动进度 定义软件生存周期 设计 编码 测试 确定软件 作产品 (摆脱那些模糊的过程)
软件项目追踪与监督 n 软件项目追踪与监督的目的是建立适当 的对实际进展的可视性,使管理者在软 件项目性能显著偏离软件计划时能采取 有效的措施。
软件项目追踪与监督 SDP 使用软件开发计划( SDP)来追踪活动 追踪相对于进度的确切进 展 追踪相对于估计的确 切规模,成本, 作 量 在必要时采取及时的修正 行动 设计 编码 测试
软件子合同管理 n n 软件子合同管理的目的是选择合格的软 件子承包商,并有效地管理它们。 它把用于基本管理控制的需求管理、软 件项目策划、以及软件项目跟踪与监督 等关键过程区域所关注的事情与软件质 量保证和软件配置管理等过程区域中的 必不可少的协调结合在一起,并且当合 适时对子承包商实施这项管理。
软件子合同管理 指定人员管理合同 设计 编码 测试 SOW 定义 作陈述(SOW); 选择有资格的承包商 评审承包商的完成 量和产品 SDP 批准承包商的软件开发计划 (SDP)来追踪活动
软件质量保证 n n 软件质量保证的目的是给管理者提供对 于软件项目正采用的过程和正在构成的 产品的恰当的可视性。 软件质量保证是绝大多数软件 程过程 和管理过程的不可缺少的部分。
软件质量保证 评审然后过程活动 (过程)来验证符合一致 设计 编码 测试 审计 作产品 的符合一致性 确定偏离的活动和 作产品
软件配置管理 n n 软件配置管理的目的是在项目的整个软 件生存周期中建立和维护软件产品的完 整性。 软件配置管理是绝大多数软件 程过程 和管理过程的不可缺少的部分。
软件配置管理 设计 置 作产品于配置 管理之下 编码 测试 记录,评审,批准,和 追踪更改和问题 基线库 控制对基线的更 改 控制从基线的发布
软件配置管理 等级 2(可重复的)的一个关键过程 区域 (根据蔡愉祖译稿整理)
概述 软件配置管理的目的是建立和维护在项目的整个软件生存周期中软 件项目产品的完整性。 软件配置管理包括标识在给定时间点上软件的配置(即选定的软件 作产品及其描述), 系统地控制对配置的更改、并维护在整个软 件生存周期中配置的完整性和可跟踪性。置于软件配置管理之下 的 作产品包括交付给顾客的软件产品(例如软件需求文档和代 码),以及与这些软件等同的产品项或生成这些软件产品所要求 的产品项(例如编译程序)。 建立一个软件基线库,当软件基线形成时就将它们纳入该库。通过 软件配置管理的更改控制和配置审计功能,系统地控制基线的更 改和那些利用软件基线库构造成的软件产品的发行。 这个关键过程区域仅包括实施软件配置管理功能的实践。而标识具 体的配置项或单元的实践则包含在描述每个配置项或单元的开发 和维护的关键过程区域中。
目标 目标1 软件配置管理活动是有计划的。 目标2 所选定的软件 作产品是已标识的、 受控的和适用的。 目标3 对已标识的软件 作产品的更改是 受控的。 目标4 受影响的组和个人得到软件基线的 状态和内容的通知。
执行约定 (1项)
约定 1 项目遵循书面的用以实施 软件配置管理(SCM)的组织方针。 该方针一般规定: 存取该仓库的 具和规程在这些 实践中称为“配置管理库系 1. 明确指派每个项目的SCM职责。 统”。 2. 在项目的整个生存周期内实 置于配置管理上并作为单个实体 行SCM。 予以处理的 作产品称为配 3. 对于对外可交付的软件产品、 置项。配置项一般分解为配 指定的内部软件 作产品和 置部件,而配置部件一般分 指定在项目内部使用的支持 解为单元。在一个硬件/软件 具(例如编译器)都实行 系统中, 所有的软件可看成 SCM。 一个单个配置项,或者可将 4. 项目建立或可以利用一个仓 该软件分解为多个配置项。 库,用来存储配置项/单元和 在这些实践中术语“配置项/ 相关联的SCM记录。 单元”用于指示在配置管理 在这些实践中这个仓库的内容称 下的元素。 为“软件基线库”。 5. 定期审计软件基线和SCM 活动。
执行能力 (5项)
能力 1 存在或者建立一个有权力管理项目软件 基线的委员会(即软件配置控制委员会—SCCB)。 该SCCB: 1. 审定软件基线的建立和配置 项/单元的标识。 2. 代表项目经理和所有可能受 到软件基线更改影响的组的 利益。 受影响的组的例子有: —硬件质量保证组, —硬件技术状态(配置)管理组, —硬件 程组, —制造 程组, —软件 程组(包括所有的小组, 例如软件设计小组), —系统 程组, —系统测试组, —软件质量保证组, —软件配置管理组, —合同管理组,和 —文档支持组。 3. 评审和审定对软件基线的更改。 4. 审定由软件基线库制造的产 品的生成。
能力 2 存在负责协调和实施项 目的SCM的组(即SCM组)。 一个组是负责一组作业或活动的部 门、经理、和个人的集合。组的 规模可以变化:从一个受指派的 非全日制的单个个人,到几个从 不同部门指派来的非全日制的个 人,到几个全日制的个人。建立 一个组时应考虑的问题有:指派 的作业和活动、项目的规模、组 织机构和组织文化。某些组,例 如软件质量保证组,集中注意力 于项目的活动,而其它组,例如 软件 程过程组,集中关注全组 织的活动。 SCM组协调或实现: 1. 项目的软件基线库的生成和管理。 2. SCM计划、标准和规程的制定、 维护和散发。 3. 将置于SCM之下的软件 作产 品集合的标识。 一个 作产品是由定义、维护、 或使用一个软件过程所生成 的任何人 制品。 4. 对存取软件基线库的管理。 5. 软件基线的更新。 6. 由软件基线库制造的产品的 生成。 7. SCM行动的记录。 8. SCM报告的生成和散发。
能力 3 为进行SCM活动提供足 够的资源和投资。 1. 安排一个经理专门负责SCM。 2. 使得支持SCM活动的 具合用。 支持 具的例子有: — 作站, —数据库程序,和 —配置管理 具。
能力 4 SCM组的成员在有关进行其SCM 活动的对象、规程和方法方面受到培训。 培训的例子包括: —SCM标准、规程和方法;和 —SCM 具。
能力 5 软件 程组和其它软件一有关 组的成员受到培训以便完成其SCM活动。 其它软件一有关组的例子有: —软件质量保证组,和 —文档支持组。 培训的例子有: —在软件 程组和其它软件一有关组的内 部进行SCM活动要遵循的标准、 规程和 方法,和 —SCM组的角色、职责和权力。
执行的活动 (10项)
活动 1 按照已文档化的规程对每 个软件项目准备一份SCM计划。 “进 行 管 理 和 控 制 ”意 味 这个规程一般规定: 着在给定时间(过去或 1. SCM计划的制定是在 现在)使用的 作产品 整个项目策划的早期 的版本是已知的(即版 阶段,并平行于整个 本控制),而且以受控 的方式引进更改(即更 项目策划。 改控制)。 2. 受影响的组评审SCM 如果希望有比“进行管理和 计划。 控制”所蕴含的更高程度 3. 对SCM计划进行管 的控制,则 作产品可 置于配置管理的完备的 理和控制。 纪律之下,正如在本关 键过程区域中所描述的。
活动 2 用已文档化的经批准的SCM 计划作为进行SCM活动的基础。 该计划包括: 1. 将进行的SCM活动、活动的日程表、指 派的职责和所要求的资源(包括职员、 具和计算机设施)。 2. SCM需求和将由软件 程组及其它软件 一有关组进行的SCM活动。
活动 3 建立一个配置管理库系 统作为软件基线的仓库。 该库系统: 1. 支持SCM的多个控制层次。 导致多个控制层次的情况例如: —在生存周期的不同时间所需要的 控制层次不同(例如,随着产品 成熟要更加严密地控制), —纯软件系统和既包括硬件又包括 软件的系统所需要的控制层次不 同。 2. 提供对配置项/单元的存储和检 索功能。 3. 在受影响的组之间和在库内部的 控制层次之间提供配置项/单元 的共享和传送。 4. 帮助使用配置项/单元的产品标准。 5. 对配置项/单元的归档版本提供 存储和恢复功能。 6. 帮助保证由软件基线库制造的产 品的正确生成。 7. 对SCM记录提供存储、更新的检 索功能。 8. 支持SCM报告的编制。 9. 提供对库结构和内容的维护。 库维护功能的例子有: —库文件的备份/重建,和 —从库的错误中恢复。
活动 4 标识将置于配置管理之 下的软件 作产品。 1. 基于已文档化的准则选择配 置项/单元。 可标识为配置项/单元的软件 作产品的例子有: —过程一有关文档(例如:计划、 标准或规程), —软件需求, —软件设计, —软件代码单元, —软件测试规程, —为软件测试活动所构造的软件 系统, —为交付给顾客或最终用户所构 造的软件系统, —编译程序,和 —其它支持 具。 2. 安排给每个配置项/单元唯一 的标志符。 3. 详细说明每个配置项/单元的 特征。 4. 详细说明每个配置项/单元所 属于的软件基线。 5. 详细说明在开发中将每个配 置项/单元置于配置管理之下 的时间点。 6. 标识每个配置项/单元的负责 人(即从配置管理的角度来说 的所有者)。
活动 5 按照已文档化的规程, 起动、记录、评审、批准和 跟踪对所有配置项或单元的 更改请求和问题报告。
活动 6 按照已文档化的规程控 制对基线的更改。 该规程一般规定: 1. 进行评审和(或)回归测 试以保证更改不会造成 对基线的未料到的影响。 2. 仅仅那些经SCCB批准的 配置项/单元才能进入软 件基线库。 3. 以能保持软件基线库的 正确性和完整性的方式 进行配置项或单元的登 入和退出。 登入或退出步骤的例子 有: —验证修改是经审定的, —建立更改日志, —保持一份更改拷贝, —更新软件基线库,和 —建立被取代的软件基 线的档案。
活动 7 按照已文档化的规程生成由软 件基线库制造的产品并控制它们的发行。 该规程一般规定: 1. SCCB审定由软件基线库制造的产品的 生成。 2. 不论为内部使用或外部使用,由软件 基线库制造的产品仅仅由软件基线库中 的配置项或单元组成。
活动 8 按照已文档化的规程记 录配置项或单元的状态。 该规程一般规定: 1. 足够详细地记录配置管理行动,使每个 配置项/单元的内容和状态,都是清楚的 并且能恢复以前的版本。 2. 对每个配置项/单元维护其当前状态并 保留其历史(即更改和其它行动)。
活动 9 编制用文档记载SCM活动和软件基线内容 的标准报告,并使受影响的组和个人可以使用它。 报告的例子包括: —SCCB会议记录, —更改申请的摘要和状态, —问题报告的摘要和状态(包括解决情况), —软件基线更改的摘要, —配置项/单元的修改历史, —软件基线状态,和 —软件基线审计结果。
活动 10 按照已文档化的规程 进行软件基线审计。 该规程一般规定: 1. 为审计作好充分准备。 2. 评估软件基线的完整性。 3. 评审配置管理库系统的结构和设施。 4. 验证软件基线库内容的完备性和正确性。 5. 验证与适用的SCM标准和规程的符合性。 6. 向项目软件经理报告审计结果。 7. 跟踪得自审计的措施条款直至结束。
测量和分析 (1项)
测量 1 进行测量并将测量结果 用于确定SCM活动的状态。 测量的例子有: —每单位时间处理的更改申请数; —SCM活动的里程碑的完成情况与计划相比 较;和 —在SCM活动中所完成的 作、花费的 作 量和消耗的资金。
验证实施 (4项)
验证1 高级管理者定期参与评 审SCM活动。 高级管理者定期评审的主要目的是在合适 的抽象层次上并以及时的方式了解和洞 察软件过程活动。评审间隔应该满足组 织的需要,只要已存在报告例外情况的 合崐机制,间隔可以长。 参考软件项目跟踪和监督关键过程区域的 验证1以便找到包括高级管理者监督评审 的典型内容的实践。
验证2 项目经理既定期地也事 件驱动地参加评审SCM活动。 参考软件项目跟踪和监督关键过程区域的 验证2以便找到包括项目管理者监督评审 的典型内容的实践。
验证3 SCM组定期审计软件基 线以验证它们符合定义它们 的文档。
验证4 软件质量保证组评审和审计有关 SCM的活动和 作产品,并报告其结果。 参考软件质量保证关键过程区域。 至少,评审和审计要验证: 1. 以下各组对SCM标准和规程的依照情况: □SCM组, □SCCB, □软件 程组,和 □其它软件一有关组。 2. 定期进行软件基线审计的情况。
CMM-3的关键过程区域
组织过程焦点 n n n 组织过程焦点的目的是规定组织在改进 其整体软件过程能力的软件过程活动方 面的职责。 组织过程焦点活动的主要结果是一组软 件过程财富,它们在组织过程定义中加 以描述。 正如集成软件管理中所描述的,这些财 富供软件项目使用。
组织过程定义 n n n 组织过程定义的目的是开发和保持一组 便于使用的软件过程财富,它们能改进 横跨项目的过程性能,并且为组织能获 得积累性的、长期的得益奠定基础。 这些财富提供一组稳定的基本原则,通 过诸如培训等机制就能使其成为制度。 培训在培训大纲中加以描述。
培训大纲 n n 培训大纲的目的是培育个人的技能和知 识,使他们能有效地和效率高地执行其 任务。 尽管培训是组织的责任,但是软件项目 应该识别出他们所需要的技能,当项目 需求独特时,该项目应提供所需要的培训。
集成软件管理 n n n 集成软件管理的目的是将软件 程活动和管理 活动集成为一个协调的、已定义的软件过程, 该过程是剪裁组织的标准软件过程和组织过程 定义中所描述的相关的过程财富而得到的。 剪裁基于项目的经营环境和技术需要,正如在 软件产品 程中所描述的那样。 集成软件管理是从等级 2 的软件项目策划与软 件项目跟踪与监督进化而得到的。
软件产品 程 n n n 软件产品 程的目的是一致地执行一个 妥善定义的 程过程。 为了能有效地和效率高地生产正确的、 一致的软件产品,该 程过程集成全部 软件 程活动。 软件产品 程描述项目的技术活动,例 如,需求分析、设计、编码和测试。
组间协调 n n 组间协调的目的是为软件 程组积极参与其它 程组 作制定一种方法,使得项目能更有效 地和效率高地满足顾客的需求。 组间协调是集成软件管理的一个涉及多科目的 方面,它延伸到软件 程之外。不仅应该集成 软件过程,而且软件 程组和其它组之间的相 互作用也必须加以协调和控制。
同行评审 n n n 同行评审的目的是及早和高效地除去软 件 作产品中的缺陷。 一个重要的必然结果是增强对软件 作 产品和可预防的缺陷的了解。 同行评审是一种重要而又有效的 程方 法,在软件产品 程中采用此方法,可 通过法根(Fagan)式审查、 结构化走查、 或者其它评审方法加以实施。
CMM-4的关键过程区域
定量过程管理 n n 定量过程管理的目的是定量地控制软件过程的 过程性能。 软件过程性能表示遵循一个软件过程所得到的 实际结果。 焦点是在一个可测的稳定的过程范围内鉴别出 变化的特殊原因,并且适当时改正那些促使瞬 时变化出现的环境。 定量过程管理给组织过程定义、集成软件管理、 组间协调、和同行评审的实践附加了一个内容 丰富的测量计划。
软件质量管理 n n 软件质量管理的目的是建立对项目的软 件产品质量的定量了解和实现特定的质 量目标。 软件质量管理对软件产品 程中所描述 的软件 作产品,实施内容丰富的测量 计划。
CMM-5的关键过程区域
缺陷预防 n n n 缺陷预防的目的是鉴别缺陷的原因并防 止它们再次出现。 正如在集成软件管理中所描述的,软件 项目分析缺陷、鉴别其原因并更改项目 定义软件过程。 正如在过程更改管理中所描述的,应将 具有普遍价值的过程更改通知给其它软 件项目。
技术改进管理 n n 技术改进管理的目的是识别出能获利的 新技术(即 具、方法和过程),并以 有序的方式将它引进到组织中去,正如 在过程改进管理中所描述的那样。 技术改进管理的关注焦点是在不断变化 的环境里高效率地创新。
过程改进管理 n n 过程改进管理的目的是出于改进软件质 量、提高生产率和缩短产品开发周期的 目的,持续不断地改进组织中所采用的 软件过程。 过程改进管理既采用缺陷预防的增量式 改进,又采用技术改进管理的创新式改 进,并使得整个组织可以享用这些改进。
CMM评估
CMM评估方法 软件过程评估(CBA-IPI),目的是确定一个组 织的当前软件过程的状态,找出组织所面临的 急需解决的软件过程有关问题,进而有步骤地 实施软件过程改进,使组织的软件过程能力不 断提高。 软件能力评价(SCE),目的是识别合格的能完 成软件 作的承制方,或者监控承制方现有软 件 作中软件过程的状态,进而提出承制方应 改进之处。
CBA-IPI 软件过程评估是在开放、合作的环境中进行的, 评估目的在于暴露问题和帮助经理和 程师们 改进他们的软件过程,一般都能得到较好的支 持。评估过程中虽然提问单是个重要 具,但 更重要的是通过各种会谈了解组织的软件过程。 评估的结果除了识别组织所面临的软件过程问 题外,最有价值的还是:明确软件过程的改进 途径,促进制订进一步的行动计划,使全组织 关注改进过程,增强执行改进行动计划的动力 和热情。
SCE n 软件能力评价是在更象审计的环境中进 行。评价的目的与金钱密切相关,评价 组的推荐性意见将影响挑选承制方或设 置资金。评价过程的重点放在复审已文 档化的审计记录上,这些记录能揭示组 织实际执行的软件过程。
评估方法特点 n n 采用成熟度提问单作为现场访问的出发点;采 用CMM作为指导现场调查研究的导引图; 利用CMM中的关键过程域生成明确地指出软件 过程强项和弱项的调查发现清单; 在对关键过程域目标满足情况进行分析的基础 上,衍生出一个剖面; 根据调查发现清单和关键过程域剖面,向合适 的对象提出结论意见。
相关标准规范
CMM族 n n n n SW-CMM——软件 SE-CMM——系统 程 SA-CMM——软件获取 P-CMM——人员 IPD-CMM——集成产品开发 SW-CMM _2. 0_C PSP——个人软件过程 TSP——团队软件过程
CMMI n n n 集成的CMM—CMMI-SE/SW/IPD 2002年CMMI-SW/SE/IPD 1. 1版 集成SW-CMM、SE-CMM、IPD-CMM
SW-CMM与ISO 9001 1)一个符合ISO 9001的组织不一定满足CMM 2级的所有关键过 程域,但它会满足第 2级的大多数目标要求和第 3级的许多目标 要求。 2)一个CMM 2(或 3)级的组织大概会被认为符合ISO 9001的要求, 但即使是第 3级的组织也需要适当注意ISO 9001的条款 4. 15中 所述的交付和安装过程,并应考虑外来软件产品的使用。 3)软件过程改进应以CMM为基础还是以ISO 9001为基础,可 以这样考虑:阐述CMM所关注的方面会帮助组织准备进行ISO 9001审核。反过来,CMM 1级的组织必定会从满足ISO 9001 要求得到好处。对于构造过程改进大纲,由于CMM提供更详 细的不断改进的指南并专门针对软件,所以成为更好的选择。 由于某种市场可能要求ISO 9001合格证书,因此,可以首先努 力通过ISO 9000论证,取得证书,而后努力不断改进软件过程。
ISO/IEC 15504 软件过程评估标准 n n n 1991年国际标准化组织(ISO)根据美国等的动议, 决定调研国际社会对软件过程评估标准的需求,结果 是肯定的; 1993年ISO决定组织制定软件过程评估标准; 1995年完成了 作草案并开始试用,在此基础上进行 了修改; 1996年完成了 作草案1. 0版,确定标准号为ISO/IEC 15504,名称为软件过程评估(SPA),并开始第 2批 试用; 1998年 10月发表了第二批试用的总结,即ISO/IEC TR 15504 Information technology-Software process assessment 1998 -08 -15。
过程能力维 n n 为任何过程的过程能力定义一个测量标准。 过程能力分为六级:不完备(0级)、已实施(1 级)、已管理(2级)、已建立(3级)、可预测 (4级)和优化(5级),随着等级的提高,所实 施过程的能力也逐步增长。 能力的量度以一组过程属性(PA)为基础,过程 属性用来确定某个过程是否达到了某个规定的能 力。每一个过程属性测量过程能力的一个具体方面。 属性都用百分比表示,从0到 1表示该属性所达到 的程度,即指示值。
ISO/IEC TR 15504的特点 n n 参考模型的基本应用目的、基本构成部 分、基本原理、以及能力等级的含义均 与CMM相似; 不仅吸收了CMM的主要思想,还参考了 其 他 类 似 作 , 尤 其 是 欧 洲 的 BOOTSTRAP项目等的成果,并注意了克 服CMM 1. 1所存在的一些缺陷,因此与 CMM 1. 1有一些重要差别。
ISO/IEC TR 15504与SW-CMM 1. 1的差别 1)参考模型与CMM不同,它明确给出过程维,其中所包括的过程都 必须实施,否则,就表明未按良好的软件 程开展基本活动,也 就谈不上有什么软件过程能力,所以在这种情况下软件过程能力 是零级;仅当实施了过程维的各个过程,那怕不够正规,才能通 过过程能力维的过程属性,分析评定软件过程能力等级是 1~5级 的哪一级。而CMM则没有定义类似过程维的过程。 2)ISO/IEC TR 15504所确定的评估对象是过程维的各个过程,给出 这些过程的能力等级;而CMM 1. 1的应用对象是项目或组织,而 不是过程,给出一个项目或一个组织的整体软件过程成熟度等级。 3)ISO/IEC TR 15504标准有一个明确意图,就是作为ISO 9000族标 准的一个支持标准,因此其内容与ISO 9000标准相互协调;而 CMM 1. 1没有这些考虑。 4)ISO/IEC TR 15504,特别是其第二部分,直接对准ISO/IEC 12207 -1995《信息技术 软件生存周期过程》,并在此基础上作 了必要的补充和扩展;而CMM 1. 1没有这样考虑。
谢谢! 汤铭端 68389085(O) 68215365(FAX) mdtang@btamail. net. cn
9df5c0f0d6f25799ff570cd1c274e47d.ppt