2.5 CMMI2级——配置管理(Configuration Management)
我们先需要回答,什么是 配置管理?
这个问题好难回答,我们可以找到很多解释,但真正理解配置管理的人可能不多。
配置管理的概念非常多,我们可不愿意做理论家,我们是非常务实的,我们先看看,如果没有有效的配置管理,可能会出现什么问题:
1)
软件在开发环境没有问题,测试的时候也没有问题,但发布给客户的时候就有问题。
2)修改一个缺陷后,以前已经解决的缺陷又再次出现。
3)以前已经搞定的问题,无缘无故再次出现。
4)
需求变更后,必须问最熟悉的人才知道需要修改那部分的文档、代码来实现新的需求。
5)找不回之前某个版本的设计、代码。
配置管理无非就是解决这些问题嘛,于是有人便用了一些什么工具,建立了什么
基线,成立了什么变更控制委员会,对所有的变更进行严格的控制。这时有出现了以下问题:
项目组苦不堪言,调整一下计划都需要提什么变更申请,修改什么设计文档也要经过一番审批,天啊,配置管理就是这样的吗?
配置管理是对软件生产过程中的各类工作产品进行管理的办法,要做这个工作之前,应该先理清楚到底会有什么工作产品,这些工作产品的依赖关系是怎样的,哪些是重要的工作产品,不同的工作产品需要什么层次的管理。
大概有以下的管理层次:
1)不需要管理的。
2)需要保存起来便可。
3)要保存起来,并且要对访问权限进行控制,可能某些人只能读,某些人能读写。
4)需要进行版本管理。
5)需要进行基线级别的管理,即需要进行变更申请。
大家可以看到,配置管理其实很讲学问的,要做好配置管理工作,先要把工作产品的依赖关系画出来,找出关键的工作产品,然后决定每个工作产品需要的管理层次。这些考虑好后,才考虑用什么工具对工作产品进行管理。
下面我们开始来谈谈配置管理这个PA。
SG1: Baselines of identified work products are established. 建立已识别的工作产品的基线。
配置项与基线的区别:
配置项是需要进行配置管理的最小单位,如:一份文档、一片段代码等。
基线是配置项的一种,基线需要进行更加严格的管理。
一般配置项的管理等级是:权限控制、版本控制。而基线的管理等级除了具备以上管理外,还需要非常严格的变更控制办法。
SP1.1: Identify the configuration items,components,and related work products that will be placed under configuration management.
识别需要放于配置管理系统中的配置项、组件和相关工作产品。
SP1.2: Establish and maintain a configuration management and change management system for controling work products.
中文大意是:建立和维护一个配置管理系统,用于控制工作产品。
SP1.3: Create or release baselines for internal use and for delivery to the customer.
建立和释放基线,用于内部使用或者交付给客户。
做好配置管理工作,首先做好两步:
1)识别需要进行配置管理的东西。
2)建立一个配置管理系统来管理需要进行配置管理的东西。
然后做好两个事情:
1)对一般的配置项进行管理。
2)对基线级别的配置项进行基线级别的管理。
SG2: Changes to work products under configration management and tracked and controlled.
跟踪和控制置于配置管理系统下的工作产品的变更。
SP2.1: Track change requests for the configuration items.
跟踪配置项的变更需求。例如:记录变更的原因、时间、提出人等。
SP2.2: Control changes to the configuration items.
控制配置项的变更。一个配置项发生了变化,与它相关的配置项也会可能需要相应改变,需要跟踪和控制整个过程,直到全部变化结束。
SP2.1 SP2.2 并没有明确指出是针对配置项还是针对基线的,其实两者都使用,不过是针对配置项还是基线,都需要记录变更需求,另外要跟踪和控制变化,只是针对配置项和针对基线,做的程度不太一样而已。
SG3: Integrity of baselines is established and maintained.
建立和维护基线的完整性。什么意思呢?我们看看下面两个SP就知道了。
SP3.1: Establish and maintain records describing configuration items.
建立和维护描述配置项的记录。简单的说,所有的配置管理活动,如变更需求、控制变化的过程、配置项状态等都需要进行必要的记录。
SP3.2: Perform configuration audits to maintain integrity of the configuration baselines.
执行配置审计来维护配置基线的完整性。
什么叫配置审计呢?配置审计分为功能审计和物理审计。
功能审计:指工作产品是否满足一定的功能要求,这个工作一般不由配置管理员负责,而是通过文档的评审、软件的测试进行。
物理审计:就是检查工作产品是否符合格式、版本号等方面的要求,一般有配置管理元负责。
配置项要进入配置库前,都应该经历审计,保证其符合要求,保证后续工作产品的正确性。如果是基线级别的工作产品要进入配置库,需要接受更加严格的审计。
请看下一文……
作者:张传波
创新工场创业课堂(敏捷课程)讲师
软件研发管理资深顾问
CMMI首席专家
《火球——UML大战需求分析》作者
2.5 CMMI2级——配置管理(Configuration Management)的更多相关文章
- 2.1 CMMI2级——7个PA简述
摘要: 阶段式的CMMI没有1级,最开始的级别就是2级.一个处于“无序化”生产的软件公司,要进行过程改进,首要是改进什么呢?2级告诉你,我们需要从计划.计划跟踪.需求管理.采购.度量.配置管理.质量保 ...
- 《Continuous Delivery》 Notes 2: Configuration Management
What is Configuration Management? Configuration Management refers to the process by which all artifa ...
- 【第196期】Drupal7 Features模块与 Drupal8 Configuration Management 模块对比
Drupal 8 最好和最受欢迎的部分之一是新的配置管理系统. 该系统使开发人员很容易将配置导出到代码中.在此之前,开发人员不得不依赖于由Features.Strongarm.UUID.Feature ...
- 2.4 CMMI2级——需求管理(Requirements Management)
人是会死的,需求是会变的.相信大家都经历了很多需求变更的痛苦,项目被拖延,成本高涨,十有七八是需求管理没有做好导致的.有哪一些需求管理方面的常见问题呢,这里列举一下: 1.因为项目进度赶等原因,在很多 ...
- Java Web学习总结(23)——Distributed Configuration Management Platform(分布式配置管理平台)
专注于各种 分布式系统配置管理 的通用组件/通用平台, 提供统一的配置管理服务. 主要目标: 部署极其简单:同一个上线包,无须改动配置,即可在 多个环境中(RD/QA/PRODUCTION) 上线 部 ...
- 2.6 CMMI2级——供应商协议管理(Supplier Agreement Management)
做软件开发的,不免要购买一些软硬件.软件可能是中间件.控件.插件.组件等,硬件可能是一些服务器.PDA.单片机等.只要稍微复杂的项目,都不可避免的会有采购的问题,就算目前没有采购,以后也会不可避免.另 ...
- 2.3 CMMI2级——项目跟踪和控制(Project Monitoring and Control)
计划不是用来看的,是用来执行的.PP讲述了如何做计划,PMC讲述的就是如何跟踪计划的执行并在实际情况偏离计划时采取纠正行动. 我们先看看SG1,SG1讲述的是如何根据计划来跟踪计划的执行问题. SG1 ...
- 2.2 CMMI2级——项目计划(Project Planning)
大家都明白这样的一个道理:做事情要有计划,有一个不成熟的计划总比没有计划要好,软件开发这么复杂的活动,更加需要计划.那么应该怎样做好一个计划呢? 如果对项目的范围.规模.性质.任务.工作量.费用等都不 ...
- Configuration Management小结
一.git branch和patch区别 patch,只是把diff部分创建一个分支.Detail: http://www.cnblogs.com/y041039/articles/2411600.h ...
随机推荐
- 各种hash函数
public class HashAlgorithms { /** * 加法hash * @param key 字符串 * @param prime 一个质数 * @return hash结果 */ ...
- C语言 · 递归求二进制表示位数
算法训练 6-2递归求二进制表示位数 时间限制:10.0s 内存限制:256.0MB 问题描述 给定一个十进制整数,返回其对应的二进制数的位数.例如,输入十进制数9,其对应的二进制数 ...
- jffs2系统制作2
http://blog.chinaunix.net/uid-23208702-id-353022.html 1.2. 安装zlib库 由于交叉编译mtd工具时需要zlib.h文件,所以在编译之前先 ...
- linux(CentOS7)安装cuda
感谢朋友支持本博客,欢迎共同探讨交流,因为能力和时间有限,错误之处在所难免.欢迎指正! 假设转载,请保留作者信息. 博客地址:http://blog.csdn.net/qq_21398167 原博文地 ...
- 配置QQ企业邮箱小结
https://exmail.qq.com/login 1,注册管理员账号 2,添加域名 3.设置MX记录 记录类型选:MX记录 主机记录(RR):不填(非万网可以填写@) 记录值与MX优先级分别为: ...
- archdexls主题设置每页显示游戏数目
archdexls主题,沒调整前,每页显示10个,这显然不够,尤其在搜狗浏览器上,由于这个主题只有触发下拉滚动条,才会自动在同一页面显示下一页,因此只显示10个甚至不能触发显示下一页这个动作. 原来设 ...
- C# - 简单介绍TaskScheduler
task Scheduler根据定义 The task Scheduler by the definition blurb. “Is the class where the usage context ...
- 关于Struts2有时候出现的莫名其妙的错误
有的时候突然出现红色叉叉,但是又不知道哪里错了,解决方法: 1.刷新项目文件夹 2.重启MyEclipse
- 【转】DirectorySearcher.Filter属性说明
DirectorySearcher.Filter属性扩充申明 DirectorySearcher mySearcher = new DirectorySearcher(entryOU, "( ...
- SyntaxError: inconsistent dedent
错误原因: 一般是拷贝别人的代码过来编辑,由于编辑器不同,出现 tab和 space 的差别. 解决方法: Window->Preferences->PyDev->Editor-&g ...