CMMI读书笔记

一、CMMI概览
1、什么是 CMMI?
软件工程学会(SEI),集成的能力成熟度模型(CMMI)是描述产品开发(包括系统工程和软件工程)的能力成熟度模型。SEI 把CMM 描述成为包含一个或多个关键因素的有效流程,同时也描述了如何从杂乱的,不成熟的流程到规则的,成熟的具有更高质量和效率的流程。CMMI 是对软件成熟度模型(SW-CMM),系统工程成熟度模型(SECM)和集成的产品开发成熟度模型(IPD-CMM)的最佳实践的建立和扩展。
CMMI有4个知识领域可供选择:系统工程,软件工程, 集成产品及过程开发,委外作业;系统工程专注于把客户的需求转变为解决方案;软件工程专注于软件系统的开发;集成产品与委外作业不讲。貌似一般用的是软件工程知识领域。

2、CMMI 成熟度水平
CMMI 的过程域是一组相互关联,并且有一组可定义目标的最佳实践。CMMI 提供了级别式的和持续式的两种表示法CMMI 鼓励企业先集中精力在那些可控制的过程域上,然后逐步将这些过程演变到更复杂的级别。
CMMI 1组织特征:过度承诺倾向;紧急关头放弃过程;无法重复成功经验
CMMI2:在关键时间点,重要任务完成时,管理层可以了解产品状况和交付情况。
CMMI3:过程很好的被说明和理解,用标准,程序,工具和方法表现出来。CMMI2与3重要区别是过程说明更详尽和严谨。
CMMI4:用统计和量化技术控制子过程;品质和过程有量化目标;3与4主要区别是过程的预测是否以量化的形式
CMMI5:看不懂

3、术语定义
项目所涉及的关键因素:一组受管理的相关资源;交付产品给客户的产品;有起始和终止日期;计划;资源和经费

4、CMMI模型剪裁和用于过程改进的模型使用有关;与用于基准评估模型的使用有关

二、需求管理
1、在第二级上,CMMI 对于需求管理过程域的目标是:“需求是可管理的。项目计划和产品开发间的不一致性是可以识别的。”
所有产品的目标都是可以满足其责任人(Stakeholders)和客户(Customers)的需求,但它也必须遵守其内部功能上和质量上的约束。需求管理过程在这一点上起到了非常重要的作用。

2、需求管理包括:需求确定管理、需求实现管理、需求变更管理;

3、需求管理目的:管理项目的产品和产品构件的需求,并标识出这些需求与项目的计划和工作产品之间的不一致性;

4、需求管理基本任务:
1)获得对需求的理解
2)获得对需求的承诺
3)管理需求变更
4)维持需求的双向可跟踪性

5、CMMI定义的典型的需求管理相关的工作产品:
1)识别合适需求的准则清单(一个清单,上面列了无数准则,用这些准则判别一个需求是否appropriate


2)需求评估接受的准则清单(一个需求是否应该被接受的准则)

6、CMMI认为,缺乏接受准则导致需求不充分,昂贵重做成本。所以应该有准则,且准则应该
1)完整;2)清晰且适当的表达;3)相互间一致;4)可单独识别;5)容易实施;6)可验证和追溯

7、取得需求承诺,又需要有几份工作产品:1)需求影响评估;2)需求和需求变更承诺的记录

8、对需求变更的管理,使用以下工具:需求状态表,数据库,决策数据库。为的是管理者有效率的和有效果的管理新增需求和变更需求,分析变更影响。这需要知道变更的来源,甚至追踪一些度量指标

9、识别项目工作与需求间差异:
1)差异记录,差异来源,条件和理由,2)纠正措施

10、为达到需求管理流程目标而必须建立的一系列最佳经验概括如下:
1)组织必须定义一组需求
CMMI 中建议:与需求提出者一起得出对需求的真正理解。从项目参与者得到对需求的确认。
2)组织必须管理需求的变更
CMMI 中建议:在项目中进行过程中管理需求变更。
3)组织必须确保需求被满足
CMMI 中建议:必须维护/保持需求、项目计划和产品开发之间的双向可追踪性。
4)组织必须确保项目计划,开发产品和需求是一致的
CMMI 中建议:必须识别出项目计划,开发产品和需求之间的矛盾(或不一致性)。

11、有哪几类需求:
1)功能需求
2)性能需求
3)界面需求
4)接口需求
5)资源需求(管理方面的需求)
6)潜在需求

12、一个需求是可跟踪的,其条件是当且仅当:
1)知道每个需求的源
2)知道为什么需要这个需求
3)知道哪些需求与它相关
4)知道需求如何与其它信息(如系统设计、实现及用户文档等)相关

13、需求跟踪矩阵用于在各个生命周期阶段跟踪所有需求,确保每一项需求可以跟踪到实现该需求的设计、编码以及测试实现的测试用例。

14、存在两种类型的跟踪:前向跟踪、后向跟踪
1)前向跟踪意味着看需求是否在生命周期的后期阶段(如设计和编码阶段)的输出元素中得到体现;
2)后向跟踪则相反,它意味着后期各个阶段的输出元素满足何种需求。后向跟踪也经常意味着跟踪到原始需求的能力。
3)前向跟踪实质上保证了软件满足需求。后向跟踪则在变更、回归测试等情况中更有用。

15、需求必定会变更的原因
1)客户并不完全了解其需求,更不用说其他人
2)最初的需求常常是不完善的,需求补充、删除和修改
3)必须与了解产品应用的人建立联系、共同工作,直到整个工作完成。系统越大越复杂,需要的应用领域知识就越多。

16、需求管理小结:管理需求从

一个过程或一组过程到另一个过程的传递、移交,并且跟踪工作产品和需求的完整性。

三、需求开发
在 CMMI 级别三中,组织需要建立、归档所有项目中所使用的公共的和一致的流程。
需求开发过程将解释如何抽取责任人的需要、导出用户的需求声明,并把这些用户需求进一步分析/总结成为相应的系统需求。
CMMI 对需求开发定义了以下几个目标:
1)组织必须能够将收集来的责任人的需求转换成用户需求
CMMI 中建议:将收集来的责任人的需要,期望值,约束条件和接口定义转换成用户需求。
2)组织必须可从用户需求分析出系统需求
CMMI 中建议:对用户需求进行推敲和细化以开发出对应系统需求。
3)组织必须能够验证需求
CMMI 中建议:需求必须可以被分析和验证,同时必须开发出对“必需的功能性”的定义。

四、CMMI 过程与产品品质保证
包括4个过程域:1)使用标准,说明客观评估过程,工作产品;2)识别和记录不符合标准的问题;3)对项目成员和管理人员提供品质保证结果的反馈;4)确保不符合的问题已被处理

客观性是项目成功关键,可通过使用准则达到;保持QA的独立性;
输出的典型工作产品有:评估报告;不符合规范的报告;纠正措施;

关于纠正措施:评估时发现不符合问题,反映对适用标准,过程说明。可用指标反映趋势

五、配置管理
使用配置识别,配置控制,配置状态记录,配置稽核达到建立和维护工作产品完整性目的

基线是配置项持续演变的稳定基础;工作产品的配置管理,可以用许多不同层次的精细度来展现
基线是一组经过正式评审和同意的规格或工作产品,是未来开发的基础;基线代表配置项和相关项目一个识别码

是否纳入配置管理,应依据于它对定义产品的重要性。
配置项,是被指定要纳入配置管理的实体,包含组成某基线的多个相关工作产品

配置管理典型的工作产品:
1)根据准则,选择配置项和组成项目的工作产品
2)识别每个配置项重要性
3)、识别每个配置项纳入配置管理时间点

六、验证
1、验证目的,在于确保工作产品符合其指定需求
2、过程包括:验证准备,执行和纠正措施识别
3、验证和确认过程类似,但强调不同重点,确认展现所提供产品符合预期使用需求。验证强调工作产品适当反映指定需求,验证确保“正确的做了”,确认保证“做了正确的事情”
4、同行评审是验证的重要部分,经过实证可以有效排除缺陷机制。包括有系统检查工作产品,识别缺陷和其他必需的变更。包括检查和结构走查
验证这里基本“测试”的一部分
验证的来源包括:产

品需求;标准和组织政策;测试类型;测试参数;测试品质和测试成本之间取舍因素
同行评审由产品制作人员同行执行,包括有条理检查工作产品,识别需要排除的缺陷,建议其他需变更事项
准备工作包括:识别被邀请参与评审的主要人员,准备和更新需要用到的数据,例如检查表,评审准则和时间表等
典型工作成果有:同行评审时间表;同行评审检查表;准入准出准则;需要再次进行评审的准则;同行评审的训练素材;待评审的产品
检查项包括的项目有:建立规则,设计指南,完整性,正确性,可维护性,共同缺陷类型
评审人员的角色包括:负责人,读者,作者,记录者
同行评审强调以下指南:充分准备;在管理和控制下进行;记录一致且充分的数据,记录行动项目
验证典型工作产品:分析报告(不符合事项的原因分析,实际产品与模型比较,趋势);问题报告;验证方法,准则和环境变更需求;纠正措施
确认:确认保证做了正确的事情。使用与验证类似的方法,例如测试,分析,检查,展现和模拟,经常同时进行,使用部分相同的环境

七、度量
1、什么是软件度量?
对软件,软件开发的资源以及软件开发过程进行量化的指标。度量的类型:规模、工作量、生产力、质量成本、缺陷...

2、为什么要进行度量?
(1)所有管理的核心问题都是如何更好的理解偏差,以及如何更好的抽取表现偏差的信息
(2)成功的管理的基础是作出可靠的预测和承诺,在缺乏历史数据(以前项目的度量)的情况下,可行的预测将变得非常困难。项目的实际表现不通过度量无法定量判断。

3、MA——度量分析的具体步骤
1)建立/选择度量
根据项目的目标(GOAL)和公司的度量要求确定度量项
2)制定度量分析计划
明确数据收集和分析的方法,将度量分析方法应用到项目的技术和管理过程中,并形成度量分析计划
3)收集和处理数据
按度量分析计划中安排的时机收集数据,对数据进行分析前的准备,然后将数据保存在可以取出作分析的地方
..在项目活动中收集数据
..对收集的数据进行检查,确保数据的准确、及时、完备、完整
..对数据进行预处理,例如规格化数据
..保存数据
4)分析数据
将收集到的度量数据(主要是基本度量数据)转换成指示器的值,根据指示器的值分析当前项目的状态,对出现的异常情况进行原因分析。
5)提出建议
..与相关人员讨论度量结果,包括项目经理、项目成员、客户、管理者
..提交包括对项目当前状态整体评价、存在的问题、风险,潜在的问题、以及解决的建议等

八、问题列表
1、需求跟踪

矩阵维护的粒度如何确定?按项目类型大小分?
2、各种管理或跟踪是否需要图形化展现?(需求总数、变更需求数量、需求状态)(视项目要求而定?)
3、CMMI4与CMMI5的区别?
原文这么写的,但是看不懂“CMMI4专注于解决过程变异的原因,提供统计上的可预测性;CMMI5专注于克服共同原因的过程变异,并改变过程来改进过程的peformance”
4、看完“验证”和“确认”PA的感受
对设计的评审,看是否满足需求,是一个确认的过程;对代码的评审,看是否满足设计,是一个验证的过程

相关主题
相关文档
最新文档