第六章 软件过程管理

94
软软软软软软 第第第 第第第第第第 第第第 第第第第第第

description

软件项目管理. 第六章 软件过程管理. 本章内容提要. 软件过程与过程管理 CMMI 概述 CMMI 的成熟度等级及其过程域 CMMI 的应用 PSP , TSP 与 CMMI 敏捷软件开发方法. 第一节 软件过程与过程管理. 软件过程 (Software Processes) 是指软件开发人员开发和维护软件及相关产品(如项目计划、设计文档、代码、测试用例和用户手册)的一套行为、方法、技术及变换过程。 不能把软件过程简单地理解为软件产品的开发流程。. 从大量项目实践中归纳总结出的行之有效的过程称为 最佳实践 (Best Practices) 。 - PowerPoint PPT Presentation

Transcript of 第六章 软件过程管理

Page 1: 第六章 软件过程管理

软件项目管理

第六章 软件过程管理第六章 软件过程管理

Page 2: 第六章 软件过程管理

本章内容提要本章内容提要

软件过程与过程管理 CMMI 概述 CMMI 的成熟度等级及其过程域 CMMI 的应用 PSP , TSP 与 CMMI敏捷软件开发方法

Page 3: 第六章 软件过程管理

第一节 软件过程与过程管理第一节 软件过程与过程管理

软件过程 (Software Processes) 是指软件开发人员开发和维护软件及相关产品(如项目计划、设计文档、代码、测试用例和用户手册)的一套行为、方法、技术及变换过程。

不能把软件过程简单地理解为软件产品的开发流程。

Page 4: 第六章 软件过程管理

从大量项目实践中归纳总结出的行之有效的过程称为最佳实践 (Best Practices) 。

软件过程管理就是对最佳实践进行有效的积累,形成可重复的软件过程,使最佳实践在组织范围内共享。

软件过程管理可将个人能力转变为企业的能力。

Page 5: 第六章 软件过程管理

软件过程管理的主要内容包括过程定义和过程改进。过程定义是指对最佳实践进行总结,形成一套稳定的、可重复的软件过程。

过程改进是指根据实践中对软件过程的使用情况,对软件过程中的偏差和不足之处进行不断优化。

Page 6: 第六章 软件过程管理

软件过程管理和软件项目管理的关系软件过程管理和软件项目管理的关系

互相依赖,互相促进

组织级过程资产组织级过程资产

项目过程项目过程项目过程项目过程TailorTailor

When project coming !!!When project coming !!!

ImproveImprove

Page 7: 第六章 软件过程管理

第二节 第二节 CMMICMMI 概述概述 CMMI( Capability Maturity Model Integratio

n) 即能力成熟度模型集成,由 CMM (Capability Maturity Model) 发展而来,它最早是应用于软件业的一个过程改进模型,为软件组织描述了从混乱的、不成熟的软件过程向成熟有序的软件过程进行改进的一条途径。后来随着应用的推广和模型本身的发展, CMMI 逐渐演化成为一个被广泛应用的综合性过程改进模型。

Page 8: 第六章 软件过程管理

CMMICMMI 的历史的历史

1991 年,美国卡耐基梅隆大学软件工程研究所( SEI )推出了能力成熟度模型 CMM , CMM 的作用各主要有两方面:为软件客户提供评价软件开发商能力的方法。帮助软件开发商改进其软件过程,提高成熟度。

Page 9: 第六章 软件过程管理

随着 CMM 在软件界应用的不断推广,其它相关学科和领域也采用它的模式,开发出了许多类似于 CMM 的模型。 SE-CMM (System Engineering CMM) 系统工程 CMM ,应用于系统工程管理。

SA-CMM (Software Acquisition CMM) 软件获取 CMM ,应用于软件获取(采购)方的能力成熟度模型。

CMMICMMI 的历史的历史

Page 10: 第六章 软件过程管理

IPD-CMM (Integrated systems product Development CMM): 集成系统产品开发 CMM ,应用于集成系统产品的开发管理。

P-CMM (People CMM) :人员能力成熟度模型,应用于人力资源管理。

为了以示区别,常把 CMM 叫做 SW-CMM 。同一个组织可能会应用多个过程改进模型,但多个过程改进模型的并存可能会引起冲突和混淆。

CMMICMMI 的历史的历史

Page 11: 第六章 软件过程管理

CMMI 为工业界和政府部门提供了一个集成的能力成熟度模型产品集,消除了不同模型之间的不一致和重复,降低了过程改进的成本。

CMMI 覆盖了软件工程、系统工程、集成产品开发和系统采购,以更加系统和一致的框架来指导组织改善软件过程,提高产品和服务的开发、获取和维护能力。

CMMI 1.0版于 2000 年发布, 2002 年又发布了 1.1版, 2006 年发布了 1.2版。

CMMICMMI 的历史的历史

Page 12: 第六章 软件过程管理

CMMI 是目前世界公认的软件产品进入国际市场的通行证。一般来说,通过 CMMI认证的级别越高,就越容易获得用户的信任,在国内、国际市场上的竞争力也就越强。

2000 年 6月,国务院颁发了《鼓励软件产业和集成电路产业发展若干政策》,其中第 17条中明确规定“鼓励软件出口型企业通过 CMM认证,其费用通过中央外贸发展基金适当予以支持”。随后各省市、高新区、软件园都出台了对通过 CMM 的企业给予资金奖励的制度。

CMMICMMI 的历史的历史

Page 13: 第六章 软件过程管理

软件过程成熟度软件过程成熟度

软件过程成熟度指一个具体的软件过程被明确和有效地定义、管理、度量、控制和实施的程度。

软件组织成熟的过程是一个不断改进、循序渐进的过程,而不是通过革命性的革新快速实现的。

Page 14: 第六章 软件过程管理

不成熟组织与成熟组织的对比不成熟组织与成熟组织的对比

不成熟的组织 成熟的组织软件过程一般在项目进行中临时确定,有时确定了也不严格执行。

建立了机构级的软件开发和维护过程,软件人员按照计划完成活动。

被动地处理软件项目中的一些突发事件。

具有对软件项目的监控和主动应对风险的能力。

进度和经费预算估计得不准确,进度延期导致削减软件功能,降低软件质量。

项目进度和预算是根据以往项目取得的实践经验确定,比较符合实际情况。

产品质量难以预测。 软件产品质量由质量保证部门负责监控。

Page 15: 第六章 软件过程管理

CMMICMMI 中的成熟度等级中的成熟度等级

初始级:软件过程是无序的,有时甚至是混乱的,对过程几乎没有定义,成功取决于个人努力。管理是反应式的。

已管理级:建立了基本的项目管理过程来跟踪费用、进度和功能特性。制定了必要的过程纪律,能重复早先类似应用项目取得的成功经验。

Page 16: 第六章 软件过程管理

已定义级:已将软件管理和工程两方面的过程文档化、标准化,并综合成该组织的标准软件过程。所有项目均使用经批准、剪裁的标准软件过程来开发和维护软件。

量化管理级:分析软件过程和产品质量的详细度量数据,对软件过程和产品都有定量的理解与控制。管理活动有一个作出结论的客观依据,能够在定量的范围内预测性能。

CMMICMMI 中的成熟度等级中的成熟度等级

Page 17: 第六章 软件过程管理

优化管理级:过程的量化反馈和先进的新思想、新技术促使过程持续不断改进。

CMMICMMI 中的成熟度等级中的成熟度等级

Page 18: 第六章 软件过程管理

CMMI 是一个引导软件组织不断走向成熟的过程模型。

CMMICMMI 中的成熟度等级中的成熟度等级

初始级

已管理级

已定义级

量化管理级

优化管理级

有纪律的过程

标准一致的过程

可预见的过程

不断改进的过程

Page 19: 第六章 软件过程管理

成熟度等级的结构成熟度等级的结构

成熟度等级

过程域 1 过程域 2 过程域 n…

特定目标 共性目标

特定实践

共性实践

Page 20: 第六章 软件过程管理

CMMICMMI 的关键过程域的关键过程域

每个成熟度等级包含若干个关键过程域( Key Process Area, KPA)。

KPA 表示当软件组织改进软件过程时必须集中精力解决的关键问题。

一个组织要想达到某个成熟度等级,必须满足该等级(以及较低等级)包含的 KPA的所有要求,满足每个 KPA的所有目标。

Page 21: 第六章 软件过程管理

CMMICMMI 的关键过程域的关键过程域

成熟度等级 关键过程域 缩写词等级 2 :已管理级

需求管理 REQM

项目计划 PP

项目监督与控制 PMC

供应商协议管理 SAM

度量和分析 MA

过程和产品质量保证 PPQA

配置管理 CM

等级 3 :已定义级

需求开发 RD

技术解决方案 TS

Page 22: 第六章 软件过程管理

CMMICMMI 的关键过程域的关键过程域 (( 续)续)

成熟度等级 关键过程域 缩写词等级 3 :已定义级

产品集成 PI

验证 VER

确认 VAl

组织过程核心 OPF

组织过程定义 OPD

组织培训 OD

集成项目管理 IPM

风险管理 RSKM

决策分析与解决 DAR

Page 23: 第六章 软件过程管理

CMMICMMI 的关键过程域的关键过程域 (( 续)续)

成熟度等级 关键过程域 缩写词等级 3 :已定义级

集成供应商管理 ISM

组织集成环境 OEI

集成团队 IT

等级 4 :量化管理级

组织过程性能 OPP

量化项目管理 QPM

等级 5 :优化管理级

组织革新与部署 OID

原因分析与解决 CAR

Page 24: 第六章 软件过程管理

CMMICMMI 的能力等级的能力等级

能力等级( Capability Level, CL )是指在一个单独的过程域中执行的良好程度。

CMMI 包括 6 个能力等级: CL0 ,不完整级:过程域的一个或多个目标没有被满足。

CL1 ,已执行级:过程通过转换可识别的输入工作产品,产生可识别的输出工作产品。能实现过程域的特定目标。

Page 25: 第六章 软件过程管理

CL2 ,已管理级:过程作为已管理的过程制度化。

CL3 ,已定义级:过程作为已定义的过程制度化。

CL4 ,量化管理级:过程作为量化管理的过程制度化。

CL5 ,优化级:过程作为优化的过程制度化。

CMMICMMI 的能力等级的能力等级

Page 26: 第六章 软件过程管理

CMMICMMI 是什么?是什么?

CMMI 指明该做什么,但没有指明如何做,它不是方法论,没有给出特定应用领域内的专门技术。

CMMI 是一个用于改进软件产品和管理过程的结构化模型,但是仅描述软件过程的本质属性,并非涉及软件工程的所有问题。

CMMI 是从软件过程角度定义了成熟的软件过程的实践活动,但是对于成熟的软件组织而言,人的因素和技术的因素也同样重要。

Page 27: 第六章 软件过程管理

CMMICMMI 过程改进需要多长时间?有何效果?过程改进需要多长时间?有何效果?

一般需要 2 年才能把成熟度提升一级(建议安排 1.5 年到 2 年)。

根据 CMU-SEI 的统计,软件企业在引入 CMM后劳动生产率平均增长了 35%;错误比率平均减少 39%;平均成本回报率为 5 : 1 。

Page 28: 第六章 软件过程管理

第三节 第三节 CMMICMMI 的成熟度等级及其过程的成熟度等级及其过程域域

3.1 初始级过程

极少存在或使用稳定的软件过程。(过程无秩序)

各种条例、规章制度互不协调,甚至互相矛盾。(开发无规范)

Page 29: 第六章 软件过程管理

初始级初始级

人员依赖个人努力和精英人物;项目组成员的工作方式就是哪里出现危机就去哪儿解决。

技术引进新技术是很大的风险。

度量不收集和分析数据。

Page 30: 第六章 软件过程管理

注意:有些组织制定了一些软件工程规范,但如果这些规范没有覆盖基本的关键过程域,且执行没有政策、资源方面的保证时,那么该组织仍然被视为处于初始级成熟度。

初始级初始级

Page 31: 第六章 软件过程管理

改进方向建立项目管理过程,实施规范化管理,保障项目的承诺。

进行需求管理,建立客户与软件项目之间的共同理解,使项目真正反映客户的要求。

建立各种软件项目计划。如:软件开发计划、配置管理计划、风险管理计划等。

开展软件质量保证活动。

初始级初始级

Page 32: 第六章 软件过程管理

3.2 CMMI3.2 CMMI 已管理级已管理级

特征:进行较为现实的承诺,按以前在同类项目上的成功经验建立必要的过程准则以确保再一次成功。

逐个项目地建立基本过程管理条例来加强软件过程能力。

建立了基本的项目管理过程来跟踪成本、进度和功能,包括:需求管理、计划和跟踪监控、质量管理、配置管理、子合同管理。通过执行这些过程,从管理角度可以看到一个按计划执行的且阶段可控的软件开发过程。

Page 33: 第六章 软件过程管理

特征:管理工作主要跟踪软件经费支出、进度和功能,识别在承诺方面出现的问题。

采用基线( baseline )来标志进展,控制完整性。

定义了软件项目的过程标准,并遵循它。通过子合同建立有效的供求关系。

Page 34: 第六章 软件过程管理

过程软件开发和维护过程是相对稳定的,但过程建立在项目级别,而非企业级别。

软件工程过程受控于有效的工程管理过程,先前的成功经验可以被重复使用。

问题出现时,有能力识别并纠正,承诺可以兑现。

CMMICMMI 已管理级已管理级

Page 35: 第六章 软件过程管理

人员理解管理的必要性并对管理有承诺。注意人员的培训。

技术建立技术支持活动,并有稳定的计划。

度量有计划地收集、分析有关项目过程和产品的数据。

CMMICMMI 已管理级已管理级

Page 36: 第六章 软件过程管理

已管理级的改进方向已管理级的改进方向

不再按项目制定软件过程,而是总结各种项目的成功经验,使之规则化,把具体经验归纳为全组织机构的标准软件过程。将改进组织机构整体软件过程能力作为软件组织的责任。

确定全组织机构的标准软件过程,把软件工程及管理活动集成到一个稳固而确定的软件过程中。从而可以跨项目改进软件过程效果。

建立软件工程过程小组( SEPG ),长期承担评估与调整软件过程的任务,以适应未来软件项目的要求。

Page 37: 第六章 软件过程管理

积累数据:建立组织机构的软件过程库及软件过程相关的文档库。

加强人员培训。

已管理级的改进方向已管理级的改进方向

Page 38: 第六章 软件过程管理

已管理级的关键过程域已管理级的关键过程域

需求管理项目计划项目监督与控制供应协议管理过程与产品质量保证配置管理度量与分析

Page 39: 第六章 软件过程管理

需求管理需求管理需求管理( Requirements Management, Re

qM )是指在客户和项目组之间就客户的需求建立一个协议并加以管理。该协议包括技术需求和非技术需求两个方面,它构成了整个产品生命周期中估计、计划、执行和跟踪项目活动的基础。

目标控制系统的需求,为工程和管理活动建立基线。

保持计划、产品和活动与系统的需求一致。

Page 40: 第六章 软件过程管理

需求管理划分为以下 5 个独立的过程:需求获取:通过与用户的交流,对现有系统的观察及对业务的分析,从而开发、捕获和修订用户的需求。

需求分析:也称需求建模,是为最终用户所看到的系统建立一个概念模型,是对需求的抽象描述。

需求规格:以开发人员可用的技术形式,描述一个产品所应具有的特征和性质,形成需求规格说明书。

需求管理过程需求管理过程

Page 41: 第六章 软件过程管理

需求验证:开发人员和用户对需求规格进行分析和验证。

需求变更:采用正式的审批流程来管理需求的变更,使需求变更产生的影响是可控的。

变更审批流程包括 4 个主要活动:变更申请、变更评估、批准 /拒绝变更、实现变更。

需求管理过程需求管理过程

Page 42: 第六章 软件过程管理

项目计划项目计划

项目计划( Project Planning )的目标是为实施和管理项目制定合理的计划。

要制定合理的计划,就要对需要完成的工作做出比较实际的估计,并为完成这些工作建立一些必要约定。

项目计划首先对要进行的工作、项目的约束条件和项目的目标进行描述。

Page 43: 第六章 软件过程管理

项目计划过程包括如下步骤:定义项目的生命周期,确定项目的范围,估计项目的规模、成本和所需资源,制定项目的进度计划,确定并评估项目风险。

项目计划项目计划

Page 44: 第六章 软件过程管理

项目监督与控制项目监督与控制项目监督与控制( Project Monitoring and c

ontrol )的目标是随时掌握项目的实际开发过程,使得当项目的执行活动与计划相背离时,管理部门能采取有效的措施。

当选定的工作产品已完成或处在选定的里程碑时,将实际的项目规模、工作量、成本和进度与计划相比较,以确定工作进展情况。当肯定不能满足计划时,采取相应的调整措施,包括修改开发计划以反映实际的进度情况,对余下的工作重新计划,或采取相应的措施改进过程运行性能。

Page 45: 第六章 软件过程管理

供应协议管理供应协议管理

供应协议管理( Supplier Agreement Management )的目标是选择合适的供应商,并对产品获取过程进行管理。

对软件项目来说,常需要采购一些软件或硬件产品,也有可能把项目的一部分外包给第三方来做,而采购和外包可以认为是风险最大的活动之一。

Page 46: 第六章 软件过程管理

供应协议管理的主要活动供应协议管理的主要活动

确定产品的获取类型(如购买商品化产品、通过合同获取等)。

根据供应商的能力选择产品供应商。与供应商建立和维护正式的协议。与供应商共同履行协议中所规定的活动。选择、监督和分析供应商的生产过程。评估供应商的工作产品。在接收产品前确保供应协议已得到满足。将产品从供应商转移到当前项目中。

Page 47: 第六章 软件过程管理

过程与产品质量保证过程与产品质量保证

过程与产品质量保证( Process and Product Quality Assurance )为项目管理者提供项目过程和相关产品的适当的可见性,从而为交付高质量的产品和服务提供支持。

在该过程与中,产品质量评估的客观性对项目的成功是至关重要的,可以通过设立独立的质量保证组或应用一些标准来达到这种客观性。

质量保证工作应尽早开始,在项目初期就应制定相应的计划、标准和规程。

Page 48: 第六章 软件过程管理

根据过程描述、标准和规程,客观地评估所执行的过程。

根据过程描述、标准和规程,客观地评估工作产品和服务。

交流质量问题并确保不一致项得到解决。 不一致项是指在质量评估过程中所发现的与标准、过程描述和规程不一致的地方。

过程与产品质量保证的主要活动过程与产品质量保证的主要活动

Page 49: 第六章 软件过程管理

配置管理配置管理

配置管理( Configuration Management )是通过配置标记、配置控制、配置状态审核和配置审计来建立和维护工作产品的一致性。

Page 50: 第六章 软件过程管理

度量与分析度量与分析

度量与分析( Measurement and Analysis )过程域的目标是开发和维持度量能力,从而能够支持管理信息需求。

将度量与分析集成到项目过程中,主要有以下几方面的作用:支持客观的计划和估计。跟踪实际性能,并与计划和目标对比。识别和解决与过程相关的问题。

Page 51: 第六章 软件过程管理

度量与分析过程域的主要活动度量与分析过程域的主要活动

根据识别出的信息需求建立和维护度量目标。定义满足度量目标的测量。定义数据收集和存储过程。定义数据分析和报告过程。收集度量数据,并检查数据的完整性。分析和解释度量数据。管理和存储度量数据、度量定义和分析结果。向所有相关人员报告度量和分析结果。

Page 52: 第六章 软件过程管理

3.3 CMMI3.3 CMMI 已定义级已定义级特征:软件工程和管理方面的软件过程都已经文档化、标准化,并综合成软件开发组织的标准软件过程。

软件过程标准被应用到所有的项目开发和维护当中,有些项目可能要对这些标准软件过程进行裁减。

对于任何项目,其生产过程、成本、计划和功能都是可以控制的,从而软件质量也可以控制。

Page 53: 第六章 软件过程管理

特征:软件工程过程组( SEPG )负责软件过程活动。在全组织范围内安排培训计划。

Page 54: 第六章 软件过程管理

CMMICMMI 已定义级已定义级过程

整个组织采纳标准化的软件工程和管理过程来管理所有项目的开发和维护。软件工程和管理活动是稳定和可重复的,具有连续性。

软件过程起了预见及防范问题的作用,能使风险的影响最小化。

人员整个组织内部的所有人员对于所定义的软件过程的活动、任务有深入理解,大大增强了软件过程能力。

有计划地对人员角色进行培训。

Page 55: 第六章 软件过程管理

技术在定性基础上评估新技术。

度量在全过程中收集使用数据。在整个项目中系统性地共享数据。

改进方向开始着手过程的定量分析,以达到定量控制项目过程的效果。

CMMICMMI 已定义级已定义级

Page 56: 第六章 软件过程管理

已定义级的关键过程域已定义级的关键过程域

需求开发技术解决方案产品集成验证确认组织过程焦点组织过程定义

组织培训集成项目管理风险管理决策分析与解决集成供应商管理组织集成环境集成团队

Page 57: 第六章 软件过程管理

需求开发需求开发需求开发( Requirement Development )的目的是生成并分析客户、产品和产品组件的需求。

需求开发的第一个特定目标是开发客户需求。这要求提取出利益关系人的需要、期望、约束和接口。

需求开发的第二个特定目标是使用客户需求来开发产品级和产品组件级的需求。这要求把客户需求解释成技术形式更强的产品需求,把需求分配给每个产品组件以及识别接口需求。

Page 58: 第六章 软件过程管理

需求开发需求开发

需求开发的第三个目标是分析和验证需求。首先要开发操作概念和应用场合,随后根据这些操作概念定义所需的功能,分析这些需求从而保证它们是必要的和足够的,并且是能够实现的。此外,分析需求还可以帮助平衡利益关系人的需要和约束。最后,要对需求进行验证,保证最终产品在用户环境中运行良好。

Page 59: 第六章 软件过程管理

技术解决方案技术解决方案

技术解决方案( Technical Solution )的目的是开发、设计和实现需求的解决方案。

本过程域的第一个特定目标是选择产品或产品构件的解决方案。它包含两个特定实践,首先,项目必须开发可选解决方案以及它们的评估标准,其次,从可选解决方案中选择最能满足已确立标准的解决方案。

Page 60: 第六章 软件过程管理

本过程域的第二个特定目标是设计产品或产品构件。它有 4 个特定实践:第一个特定实践为产品或产品组件开发了一个体系结构和一个设计;第二个特定实践通过建立技术数据包为开发者提供一个对产品的综合描述;第三个特定实践按照已确立的标准建立产品组件接口的解决方案;在第四个特定实践中,选择应该开发、购买还是重用产品组件。

技术解决方案技术解决方案

Page 61: 第六章 软件过程管理

技术解决方案技术解决方案

本过程域第三个特定目标是实现产品并生成与之关联的支持文档。包括两个特定实践:首先,实现所有类型的产品组件的设计,其次,开发和维护应用支持文档,这些文档描述如何安装、操作和维护产品。

Page 62: 第六章 软件过程管理

产品集成产品集成产品集成( Product Integration )的目的是把产品组件组装成产品,保证产品正常工作,并把产品交付给用户。

产品集成过程域的关键在于产品和产品构件接口(包括内部接口和外部接口)的管理,保证接口之间的兼容性。

PI 过程域的第一个特定目标是为产品集成做准备,包含 3 个特定实践。首先,确定产品构件的集成顺序;其次,建立产品集成环境;最后,建立产品集成的程序和标准。

Page 63: 第六章 软件过程管理

PI 过程域的第二个特定目标是保证产品构件的内部和外部接口的兼容性。它包含两个特定实践:首先,检查接口描述以确定接口描述的全面性和完整性;然后,管理产品和产品构件的接口,以维持接口之间的一致性,解决冲突。

产品集成产品集成

Page 64: 第六章 软件过程管理

PI 过程域的第三个特定目标是集成产品组件并交付产品。包括 4 个特定实践:首先,确认每个产品组件都已被识别并且其功能与描述一致,接口也与它们的描述符合;然后根据产品集成顺序和规程集成产品构件;第三步是评估组装后的产品构件,重点关注接口的兼容性;最后,包装产品并把它交付给用户。

产品集成产品集成

Page 65: 第六章 软件过程管理

验证验证

验证( Verification )的目的是保证工作产品满足它们的指定需求。

验证过程域包含 3 个特定目标:为验证做准备、执行同行评审和验证选择的工作产品。

第一个目标包含三个特定实践:选择要验证的工作产品和验证方法;建立验证环境;建立验证规程和准则。

Page 66: 第六章 软件过程管理

验证验证

同行评审目标包含 3 个实践:首先为同行评审做准备(评审的内容、执行者、执行时间以及使用的评审标准),然后执行评审,最后分析结果。

第三个目标(验证所选择的工作产品)有两个特定实践:对工作产品进行验证,然后分析验证结果并根据已确立的标准识别所有必须执行的纠正动作。

Page 67: 第六章 软件过程管理

确认确认

确认( Validation )目的是展示当把产品或产品组件放到目标环境中时,它们可完成预期的用途。

确认与验证过程域有些类似,但两者所关注的重点不同。确认是为了保证产品在目标环境中可以完成预期用途,而验证是保证工作产品满足它们指定的需求。

确认过程域有两个特定目标:为确认做准备,确认产品或产品组件。

Page 68: 第六章 软件过程管理

确认确认

为确认做准备这个目标有 3 个特定实践,它们与验证中的实践类似。首先是选择要确认的产品和产品组件以及确认方法,然后建立确认环境,最后定义确认的程序和准则。

实际执行确认这个目标有两个特定实践。首先,工作人员根据预定程序执行确认以显示产品或产品组件的行为与预期一致;然后,分析确认结果,识别出所有与预期不一致的问题。

Page 69: 第六章 软件过程管理

组织过程焦点组织过程焦点

组织过程焦点( Organizational Process Focus )过程域的目的是:在彻底理解一个组织当前过程和过程资产的弱点和优势的基础上,计划、实施和部署组织的过程改进活动。

组织过程焦点的第一个特定目标是确定过程改进机会。组织要建立和维护它的过程要求和目标,并定期评估过程,分析其弱点和优势,选择需执行的改进和这些改进的优先级。

Page 70: 第六章 软件过程管理

第二个特定目标是计划和实施过程改进。用两个特定实践来实现:建立过程行动计划和实施所选择的改进活动。

第三个特定目标是部署过程资产和合并所学到的经验教训。将组织的过程资产在整个组织内部署;将组织的标准过程应用于所有项目中,并在合适的时候进行改变;监督组织标准过程在项目中的应用;将与过程相关的经验合并到组织过程资产中。

组织过程焦点组织过程焦点

Page 71: 第六章 软件过程管理

组织过程定义组织过程定义

组织过程定义( Organizational Process Definition )的目的是建立和维护一个组织级过程资产和工作环境标准集。

组织过程定义与组织过程焦点是互相配合、互相促进的,前者为组织创建过程资产,后者则识别和计划过程改进。

组织过程定义的特定目标就是创建和维护组织级过程资产,它由 6 个特定实践来完成。

Page 72: 第六章 软件过程管理

第一个实践建立组织的标准过程集,一般来说这个集合包括技术、管理、监督、支持等方面的过程。第二个实践建立每个项目可能使用的生命周期模型的描述。第三个实践提供标准过程的剪裁准则和标准,在项目生命周期的计划阶段,这些准则和标准由项目使用。

第四个实践是为组织级过程度量提供仓库,在进行组织的能力和成熟度改进时,组织级度量仓库支持定量过程管理,同时也支持历史数据在建立估计时的使用。

组织过程定义组织过程定义

Page 73: 第六章 软件过程管理

第五个实践用来建立项目使用的组织级过程资产库。过程资产库支持项目通过剪裁和实施标准过程来计划它们的特有过程,从而降低成本。这个库可能包括文档模板、示例计划、工作产品、策略和其他过程使能器 (enabler) 。

第六个特定实践为组织和项目提供工作环境标准。当项目以一致的方式使用公共工具、培训和维护时,工作环境标准支持这些方面的工作。

组织过程定义组织过程定义

Page 74: 第六章 软件过程管理

组织级培训组织级培训组织级培训( Organizational Training )的目的是增加开发人员的技能和知识,使他们可以有效地执行任务。

组织级培训的第一个特定目标是建立组织级培训能力,由 4 个特定实践来完成。第一个实践是建立战略性的培训要求;第二个实践将每个培训要求的职责分配给组织或项目;第三个实践是建立战术性的计划来确保满足培训要求;第四个实践致力于实际建立组织的培训能力,例如开发或获取培训资料、标志导师以及产生培训课程的描述等。

Page 75: 第六章 软件过程管理

组织级培训的第二个目标是提供必要的培训。特定实践包括对特定听众实施培训、建立培训记录和评估培训的有效性。

组织级培训组织级培训

Page 76: 第六章 软件过程管理

集成项目管理集成项目管理 集成项目管理( Integrated Project Management )

的目的是根据一个集成化的、已定义的过程来建立和管理项目,并管理利益关系人的参与,这些集成化的、已定义的过程剪裁于组织的标准过程集。

该过程域的第一个特定目标是使用已定义的项目过程。该目标由 6 个实践来完成:第一步是在项目开始就用组织的标准过程来建立项目的已定义过程。然后使用组织级过程资产计划项目活动,建立项目工作环境,并使用集成化计划管理项目,最后,项目将它的一些工作产品(包括度量和经验教训)提供给组织的过程资产,以便在后面的项目和过程改进活动中使用。

Page 77: 第六章 软件过程管理

第二个特定目标是项目利益关系人的协调与协作。有三个实践,这些实践集中于管理利益关系人的参与,以便实现承诺并消除误解,管理项目相关性及解决利益关系人之间的协调问题。

集成项目管理集成项目管理

Page 78: 第六章 软件过程管理

风险管理风险管理

风险管理( Risk Management )的目的是在潜在问题发生之前识别它们,以便在产品整个生命周期中计划风险处理活动,并且必要时采取措施以缓解对目标实现的不利影响。

风险管理的第一个特定目标是准备风险管理,包括确定风险源和风险分类,定义风险参数及制定风险管理策略。

第二个特定目标是识别和分析风险,其特定实践包括识别和记录风险,对风险进行评估、分类并设置优先级。

Page 79: 第六章 软件过程管理

第三个特定目标是缓解风险,包括制定和实施风险缓解计划。

风险管理风险管理

Page 80: 第六章 软件过程管理

决策分析与解决决策分析与解决

决策分析与解决( Decision Analysis and Resolution )过程域的目的是使用正式的评价过程来分析可能的决策,该评价过程是根据已制定的标准来评价可选方案。

一个项目只有在关键问题上才使用该过程域中的决策过程。例如选择设计方案,做出开发 /购买决策、供应商选择以及工具选择等。由于该过程域的决策过程要消耗许多资源,所以不应该将其用于对项目影响很小的决策上。

Page 81: 第六章 软件过程管理

决策分析与解决过程域有一个特定目标,即根据已确定的准则评价各种可选方案,从而做出决策。它包含 6 个特定实践:( 1 )建立决策分析指南;( 2 )建立评价可选方案的标准,并确定这些标准的相对等级;( 3 )识别解决问题的可选方案;( 4 )选择评价方法;( 5 )使用已建立的标准和方法来评价可选方案;( 6 )根据评价标准选择一个解决方案。

决策分析与解决决策分析与解决

Page 82: 第六章 软件过程管理

3.4 CMMI3.4 CMMI 量化管理级量化管理级过程

可定量地认识过程。软件过程性能变化小,一般在可接受的范围内。

可以预见过程和产品的质量趋势,一旦度量得到的指标超出标准或有异常,可以及时采用一些措施纠正。

人员由于每个人都了解个人的作用与组织的关系,因此能够在每个项目中产生强烈的群体意识。

Page 83: 第六章 软件过程管理

技术不断地在定量基础上评估新技术。

度量在全组织内进行数据收集与检验。度量标准化。数据用于定量地理解软件过程并稳定软件过程。

CMMICMMI 量化管理级量化管理级

Page 84: 第六章 软件过程管理

改进方向缺陷预防。不仅在发现问题时能及时改正,而且应采取特定行动防止将缺陷引入到产品中。

主动进行技术变动管理,标识、选择和评价新技术,使有效的新技术能在开发组织中应用。

进行过程变动管理。定义过程改进的目的,不断地进行过程改进。

CMMICMMI 量化管理级量化管理级

Page 85: 第六章 软件过程管理

量化项目管理量化项目管理

量化项目管理( Quantitative Project Management )过程域的目的是定量管理项目的过程,从而完成项目的质量和过程性能目标。

量化项目管理的第一个特定目标是使用质量和过程性能目标来定量地管理项目。它的特定实践包括:建立质量和过程性能目标,基于历史数据组成项目的已定义过程,选择将要被统计管理的子过程,监督项目的性能指标以确定它们是否得到满足,并识别出纠正措施。

Page 86: 第六章 软件过程管理

量化项目管理的第二个目标是统计地管理所选择的子过程。其特定实践包括:选择度量和分析技术,应用统计方法理解子过程性能的变更,监督所选的子过程,从而采取措施解决过程能力中的任何缺陷,将统计数据记录在组织的度量仓库中。

量化项目管理量化项目管理

Page 87: 第六章 软件过程管理

组织过程性能组织过程性能

组织过程性能( Organizational Process Performance )的目的是建立和维护一个对组织的标准过程集性能的定量理解,并提供过程性能数据、基线和模型来定量管理组织的项目。

该过程域定义了一个特定目标:建立性能基线和模型。该目标的含义是为给定的项目建立关于过程如何执行的统计描述。

Page 88: 第六章 软件过程管理

组织过程性能过程域的特定实践包括:通过研究性能度量和产品度量分析已选择的过程或子过程,然后建立过程性能目标、基线和模型。

组织必须有足够的数据积累来保证模型和基线的统计是可靠的。

组织过程性能组织过程性能

Page 89: 第六章 软件过程管理

3.5 CMMI3.5 CMMI 优化管理级优化管理级过程

不断系统地改进过程。理解并消除产生问题的公共根源,防止缺陷的产生。

人员整个组织存在自觉的强烈的团队意识。每个人都致力于过程改进。人们不再以达到里程碑的成就而满足,而要力求减少错误率。

Page 90: 第六章 软件过程管理

技术基于定量的控制和管理,事先主动考虑新技术、利用新技术。可以实现开发中的方法和新技术的革新,以防止出现错误,不断提高产品质量和生产率。

度量利用统计数据来评估和选择过程改进。

改进方向保持持续不断的软件过程改进。

CMMICMMI 优化管理级优化管理级

Page 91: 第六章 软件过程管理

组织革新与部署组织革新与部署

组织革新与部署( Organizational Innovation and Deployment )的目的是选择并部署增量式和创新的改进活动,以便改进组织的过程和技术。这些改进支持组织的质量和过程性能目标。

该过程域的第一个特定目标是选择过程和技术改进。包括收集和分析改进建议,识别和分析能够促进质量和过程性能提高的革新,对改进进行评价,并选择需部署的改进。

Page 92: 第六章 软件过程管理

第二个特定目标是部署改进,包括计划和管理变更的部署,然后度量新的过程或技术的有效性,以及它们对其他管理目标的影响。

组织革新与部署组织革新与部署

Page 93: 第六章 软件过程管理

原因分析与解决原因分析与解决

原因分析与解决( Causal Analysis and Resolution )的目的是识别缺陷和其它问题的原因,并且采取措施来预防将来再发生这些问题。

该过程域有两个特定目标:确定缺陷的根本原因,处理这些原因以预防将来再次发生这些缺陷。

Page 94: 第六章 软件过程管理

第一个目标有两个特定实践:选择需要分析的缺陷;执行因果分析并提出处理这些问题的措施。

第二个目标有 3 个特定实践:实现行动建议、评价过程性能变更的效果以及记录从原因分析与解决活动得来的数据。

原因分析与解决原因分析与解决