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 ...
随机推荐
- [Makefile]多目录Makefile写法
最近需要写一个测试程序,这个测试程序需要集成一些功能,写在同一个文件看上去很不好,多个文件的Makefile又不是很熟,于是分享下面这篇文章 先介绍下,调试Makefile时,想知道某个变量的值,怎么 ...
- 早前的java笔记
多个if语句时即使前一个if为真,后面的if也要继续判断, 如果用else if 则只有前者为假的时候它的if 才接着判断. if else 语句 if a>=5 shuchu b=10 els ...
- ubuntu多节点安装kubernetes
在ubuntu上面多节点安装kubernetes,假设有两台机器 master:192.168.1.84 minion:192.168.1.83 You wil now need to configu ...
- iOS边练边学--plist文件,懒加载,模型初使用--补充instancetype
一.什么是plist文件 1>将数据直接写在代码里面,不是一种合理的做法.如果数据经常修改,就要经常翻开对应的代码进行修改,造成代码扩展性低 2>因此,可以考虑将经常变得数据放在文件中进行 ...
- spring boot 拦截器之WebMvcConfigurerAdapter
版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 上一篇我们讲到了拦截器,我们也简单的讲解到了WebMvcConfigurerAdapter这个拦截器.本篇我们来对Web ...
- EasyUI项目中的自定义JS
自定义方法: (function($) { $.extend($, { //获取下标,删除时使用 getArrayIndex : function (array,value) { var index ...
- 【转】BMP图像文件格式
5.1 BMP图像文件格式 BMP图像文件格式是游戏中常用的图像资源文件格式,BMP图像文件起源早,程序员对BMP都比较熟悉,再加上BMP格式简单,读取和写入非常容易实现,所以无论Windows的还 ...
- 在jsp中,page指令的()属性用来引入需要的包或类。
在jsp中,page指令的()属性用来引入需要的包或类. A.extends B.import C.language D.contentType 解答:B
- nodejs基础 -- 函数
Node.js 函数 在JavaScript中,一个函数可以作为另一个函数接收一个参数.我们可以先定义一个函数,然后传递,也可以在传递参数的地方直接定义函数. Node.js中函数的使用与Javasc ...
- VMware下Ubuntu与宿主Windows共享文件夹 (转至 http://blog.csdn.net/zz962/article/details/7706755)
概述 1.安装VMware Tool 2.设置共享 步骤 开始安装VMware Tool 显示如下画面(如果宿主无法访问外网,可能会出现一个更新失败,可以无视之) 通过下列命令解压.执行,分别是下面的 ...