CMMI-配置管理(CM)
一、概述
配置管理(Configuration Management, CM)的目的在于使用配置识别、配置控制、配置状态记录与报告以及配置审计,来建立并维护工作产品的完整性。
1、简介
“配置管理”过程域涉及以下活动:
• 识别所选工作产品的配置,其在给定的时间点上组成基线
• 控制对配置项的变更
• 构建或提供规格说明,以便从配置管理系统构建工作产品
• 维护基线的完整性
• 向开发人员、最终用户与客户提供准确的状态与当前的配置数据
置于配置管理下的工作产品包括向客户交付的产品、指定的内部工作产品、采购的产品、工具以及在创建并描述这些工作产品时使用的其它项。(见术语表中“配置管理”的定义。)
可能置于配置管理下的工作产品的实例有:
• 硬件与设备
• 图纸
• 产品规格说明
• 工具配置
• 代码与库
• 编译器
• 测试工具与测试脚本
• 安装日志
• 产品数据文件
• 产品技术出版物
• 计划
• 用户故事
• 迭代工作清单
• 过程描述
• 需求
• 架构文档与设计数据
• 产品线计划、过程与核心资产
采购的产品可能需要由供方与项目都置于配置管理之下。供方协议中应建立执行配置管理的规定。确保数据完备且一致的方法应得到建立与维护。参阅“供方协议管理”过程域以进一步了解如何建立供方协议。工作产品的配置管理可按多个粒度级别执行。配置项可以分成配置组件与配置单元。在本过程域中只使用术语“配置项”。所以,在这些实践中“配置项”适当时可解释为“配置组件”或“配置单元”。 (见术语表中“配置项”的定义。)基线为配置项的持续演变提供稳定的基础。基线的一个实例是已批准的产品描述,包括内部一致的需求版本、 需求可追溯矩阵、 设计、特定学科条目与最终用户文档。随着基线内容得到开发,基线被纳入配置管理系统。 通过配置管理的配置控制、 变更管理以及配置审计功能, 对基线的变更以及从配置管理系统所构建的工作产品的发布得到系统化地控制与监督。本过程域不仅适用于项目的配置管理,也适用于组织级工作产品,如标准、规程、复用库与其它共享的支持资产等的配置管理。配置管理关注工作产品的管理与技术方面的严格控制,包括交付的产品或服务。本过程域覆盖执行配置管理职能的实践,也适用于置于配置管理之下的所有工作产品。对于产品线,由于产品线下各产品之间以及核心资产与产品的多个版本之间的核心资产共享,配置管理还涉及另外需要考虑的事项。(见术语表中“产品线”的定义。)在敏捷环境中,配置管理是非常重要的,因为需要支持频繁变更、频繁构建(通常每天)、多条基线与多个配置管理支持的工作区(例如,为个人、团队、甚至结对编程)。敏捷团队可能陷入困境,如果这个组织没有:
1)将配置管理自动化(例如,构建脚本、状态记录与报告,完整性检查)并
2)将配置管理作为单独的一套标准服务加以实施。 在敏捷团队启动时,就应该识别负责确保配置管理活动正确实施的人。在每个迭代开始时,重新确定配置管理支持的需要。配置管理被谨慎地集成到各团队的工作节奏中,把焦点集中在尽量减少对团队的干扰,以使工作完成。(见第一部分中的“使用敏捷方法时对 CMMI的解读”。 )
二、特定目标与特定实践摘要
SG 1 建立基线
SP 1.1 识别配置项
SP 1.2 建立配置管理系统
SP 1.3 创建或发布基线
SG 2 跟踪并控制变更
SP 2.1 跟踪变更请求
SP 2.2 控制配置项
SG 3 建立完整性
SP 3.1 建立配置管理记录
SP 3.2 执行配置审计
按目标排列的特定实践
1、SG 1 建立基线
所识别的工作产品的基线得到建立。
本特定目标包括建立基线的特定实践。“跟踪并控制变更”特定目标下的特定实践则用于维护基线。“建立完整性”特定目标下的特定实践则记录并审计基线的完整性。
SP 1.1 识别配置项
识别将置于配置管理下的配置项、组件与相关的工作产品。
配置识别是下列各项的选择与规格说明:
• 交付给客户的产品
• 指定的内部工作产品
• 采购的产品
• 工具及项目工作环境的其它重要资产
• 用于创建并描述这些工作产品的其它项
配置项可以包括硬件、设备与有形资产,也可以是软件与文档。文档可以包括需求规格说明书与接口文档。其它用于识别产品或服务配置的文档,例如测试结果,也可以包括在其中。“配置项”是为配置管理指定的实体,它可以包含构成基线的多个相关工作产品。这种逻辑分组为有效识别与受控访问提供便利。为配置管理选择工作产品应基于计划期间所建立的准则。
工作产品实例
1. 已识别的配置项
子实践
1. 基于文档化的准则选择配置项与组成配置项的工作产品
在适当工作产品层次上选择配置项的准则的实例有:
• 由两个或多个组使用的工作产品
• 由于错误或需求变更预期会随着时间变更的工作产品
• 相互依赖的工作产品(即:当其中一个改变时,将会导致其它工作产
品的变更)
• 对项目成功至关重要的工作产品
可能作为配置项一部分的工作产品的实例有:
• 设计
• 测试计划与规程
• 测试结果
• 接口描述
• 图纸
• 源代码
• 用户故事或故事卡
• 声明的业务用例、逻辑或数值
• 工具(例如,编译器)
• 过程描述
• 需求
2. 为配置项分派唯一标识。
3. 明确说明每个配置项的重要特征。
配置项的重要特征包括作者、文档或文件类型、软件代码文件的编程语言、最低的适于销售的特征以及配置项服务的目的。
4. 明确说明每个配置项纳入配置管理的时机。
确定何时将工作产品纳入配置管理的准则的实例有:
• 当工作产品准备好进行测试的时候
• 项目生命周期的阶段
• 对工作产品所期望的控制程度
• 成本与进度的限制
• 干系人的需求
5. 识别负责每个配置项的所有者。
6. 明确说明配置项之间的关系。
将配置项之间存在的关系类型(例如,父子、依赖) 纳入配置管理结构(例如,配置管理数据库)中,有助于管理变更的效果与影响。
SP 1.2 建立配置管理系统
建立并维护用于控制工作产品的配置管理与变更管理系统。
配置管理系统包括存储介质、规程与访问系统的工具。配置管理系统可以
包括多个子系统, 它们具有适合每个配置管理环境的不同的实现。
变更管理系统包括存储介质、规程以及记录并访问变更请求的工具。
工作产品实例
1. 具有受控工作产品的配置管理系统
2. 配置管理系统访问控制规程
3. 变更请求数据库
子实践
1. 建立多级控制的管理机制。
控制等级的选择通常基于项目目标、风险与资源。控制等级可能因项目生命周期、开发的系统类型与特定项目需求有所不同。
控制等级的实例有:
• 不受控:任何人可以变更
• 工作进行中:作者控制变更
• 已发布:指定的权限授权并控制变更,当进行变更时,通知相关干系人
控制等级可以从非正式控制到正式的配置控制,前者是对开发期间的配置项更改所作的简单跟踪,后者使用基线,其变更只能作为正式配置管理过程的一部分。
2. 提供访问控制以确保对配置管理系统授权的访问。
3. 在配置管理系统中存储并检索配置项。
4. 在配置管理系统中的控制等级间共享并传递配置项。
5. 存储并恢复配置项的存档版本。
6. 存储、更新并检索配置管理记录。
7. 从配置管理系统中创建配置管理报告。
8. 保存配置管理系统的内容。
配置管理系统保存功能的实例有:
• 备份并还原配置管理文件
• 配置管理文件的存档
• 从配置管理错误中恢复
9. 必要时,修订配置管理结构
SP 1.3 创建或发布基线
创建或发布供内部使用以及交付给客户的基线。基线表示为在一个特定时间点,将一个标识符赋予一个配置项或配置项及其相关实体的集合。随着产品或服务的演进,可以使用多个基线控制开发与测试。 (见术语表中“基线”的定义。)硬件产品同软件与文档一样也应该包含在基础设施相关的配置基线中(例如,软件、硬件),并作为包含软硬件交互的系统测试的准备。一组常见的基线包括系统级需求、系统元素级设计需求以及在开发结束/生产开始的产品定义。 这些基线通常被分别称为“功能基线”,“已分配基线”与“产品基线”。软件基线可以是一组需求、 设计、源代码文件及其相关联的可执行代码、构建文件与用户文档(相关联的实体), 它们被分派了唯一的标识符。
工作产品实例
1. 基线
2. 基线的描述
子实践
1. 在创建或发布配置项的基线前,从 CCB 获得授权。
2. 仅从配置管理系统中的配置项创建或发布基线。
3. 将基线所包含的配置项集文档化。
4. 使当前的基线集随时可用
SG 2 跟踪并控制变更
置于配置管理下的工作产品的变更得到跟踪与控制。
在“建立基线”特定目标下的特定实践建立基线后, 本特定目标下的特定实践用来维护基线。
SP 2.1 跟踪变更请求
跟踪对配置项的变更请求。
变更请求不仅应对新需求或需求变更,也可应对工作产品的故障与缺陷。
分析变更请求,以确定变更将对工作产品、相关工作产品、预算与进度带
来的影响。
工作产品实例
1. 变更请求
子实践
1. 发起变更请求并记录在变更请求数据库中。
2. 分析变更请求中提议的变更与修复的影响。
通过确保变更与所有技术及项目需求一致的活动来评价变更评价变更对直接的项目或合同需求之外的影响。对在多个产品中使用的配置项的变更可能解决一个直接问题,而在其它应用中又引发一个问题。评价变更对发布计划的影响。
3. 对变更请求分类并划分优先级
识别紧急请求,适当时提交给紧急权限。将变更分配到将来的基线中。
4. 与相关干系人一起评审将要在下个基线中处理的变更请求,并达成一致。与适当的参加者一起进行变更请求的评审。记录每一变更请求的处置与决策理由,包括成功准则、适当时一份简要的行动计划、以及变更满足的或不满足的需要。执行处置中要求的行动并将结果汇报给相关干系人。
5. 跟踪变更请求的状态直到关闭。
要及时有效地处理纳入系统的变更请求。一旦变更请求得到处理,只要切实可行,以适当的经批准的行动尽快关闭此请求非常关键。 让措施长时间处于未关闭状态会让状态列表变得过于庞大,反而会导致附加的成本与混乱。
SP 2.2 控制配置项
控制配置项的变更。
对工作产品基线的配置保持控制。这种控制包括跟踪每个配置项的配置、必要时批准新的配置、以及更新基线。
工作产品实例
1. 配置项的修订历史
2. 基线的存档
子实践
1. 在整个产品或服务的生命期,控制对配置项的变更。
2. 在变更后的配置项进入配置管理系统前,获得适当的授权。例如,授权可来自配置控制委员会、项目经理、产品负责人或客户。
3. 以维护配置项的正确性与完整性的方式, 在配置管理系统中检入并检出配置项以纳入变更。
检入与检出步骤的实例有:
• 确定这些修订得到授权
• 更新配置项
• 将旧基线归档,并检索新基线
• 为该项的变更作备注
• 关联对相关工作产品的变更,例如需求、用户故事与测试
4. 执行评审以确保变更没有对基线造成意外的影响(例如,确保变更没有危及系统的安全性或保密性)
5. 适当时记录配置项的变更与变更的理由。
如果接受对工作产品提议的变更, 则识别将变更纳入工作产品及其它受影响区域的进度。可针对变更类别裁剪配置控制机制。例如, 对于不影响其他组件的组件变更的批准考虑可用较低严格度。已变更的配置项,需经配置变更的评审与批准后才能发布。直到发布后,变更才正式生效。
SG 3 建立完整性
基线的完整性得到建立与维护。
基线通过“建立基线” 特定目标相关的过程得到建立, 通过“跟踪并控制变更”特定目标相关的过程得到维护, 基线的完整性则通过本特定目标下的特定实践进行应对。
SP 3.1 建立配置管理记录
建立并维护描述配置项的记录。
工作产品实例
1. 配置项的修订历史
2. 变更日志
3. 变更请求记录
4. 配置项的状态
5. 基线间的差异
子实践
1. 足够详细地记录配置管理行动,使得每个配置项的内容与状态都可知,且能恢复以前的版本。
2. 确保相关干系人能访问并了解配置项的配置状态。
配置状态沟通的活动实例有:
• 给授权的最终用户提供访问权限
• 使基线副本对授权的最终用户随时可用
• 当配置项检入、检出、变更、或对变更请求做出决定时,自动提醒相关干系人
3. 明确说明基线的最新版本。
4. 识别组成特定基线的配置项的版本。
5. 描述连续的基线间的差异。
6. 必要时,修订每个配置项的状态与历史(即:变更, 其它行动)。
SP 3.2 执行配置审计
执行配置审计,以维护配置基线的完整性。
配置审计确定所产生的基线与文档符合规定的标准或需求。配置项相关的记录可以保存在多个数据库或配置管理系统中。在这种情况下,配置审计应该适当延伸到这些其它的数据库以确保配置项信息的准确性、一致性与完备性。 (见术语表中“配置审计”的定义。 )
审计类型的实例有:
• 功能配置审计(functional configuration audits, FCAs):这种审计的执行验证配置项的开发已经符合要求地完成,该项已经达到功能基线或已分配基线中规定的功能与质量属性特征,而且操作与支持文档是完备的并符合要求。
• 物理配置审计(physical configuration audits, PCAs):这种审计的执行验证所构建的配置项符合对其定义并描述的技术文档。
• 配置管理审计: 这种审计的执行确定配置管理记录与配置项是完备的、一致的与准确的。
工作产品实例
1. 配置审计结果
2. 行动项
子实践
1. 评估基线的完整性。
2. 确定配置管理记录正确地识别配置项。
3. 评审配置管理系统中各项的结构与完整性。
4. 确定配置管理系统中各项的完备性、正确性与一致性。
配置管理系统内容的完备性、正确性与一致性基于计划中所述的需求与已批准的变更请求的处置。
5. 确定符合适用的配置管理标准与规程。
6. 跟踪来自审计的行动项直到关闭
相关文章:
CMMI-配置管理(CM)
一、概述配置管理(Configuration Management, CM)的目的在于使用配置识别、配置控制、配置状态记录与报告以及配置审计,来建立并维护工作产品的完整性。1、简介“配置管理”过程域涉及以下活动:• 识别所选工作产品的配…...

网络编程套接字Socket
一.什么是网络编程网络编程,指网络上的主机,通过不同的进程,以编程的方式实现网络通信(或称为网络数据传输)。二.为什么要实现网络编程我们通过网络编程可以在网络中获取资源,实质是通过网络,获…...

Linux进程概念(二)
进程状态1.阻塞和挂起2.R运行状态和S睡眠状态3.T停止状态4.X死亡状态和Z僵尸状态🌟🌟hello,各位读者大大们你们好呀🌟🌟 🚀🚀系列专栏:【Linux的学习】 📝📝本…...

墨天轮【第二届数据库掌门人论坛】圆满收官 | 含嘉宾精彩观点回顾
2月10日上午,墨天轮【2023春季发布会暨第二届数据库掌门人论坛】盛大开启,本次活动的主题为“新征程,向未来”,共包含2022年度中国数据库颁奖盛典、2022年度行业发展报告发布以及第二届数据库掌门人论坛三项议程。华为云数据库服务…...

Redis之集群搭建
redis的集群模式简介: redis的集群模式中可以实现多个节点同时提供写操作,redis集群模式采用无中心结构,每个节点都保存数据,节点之间互相连接从而知道整个集群状态。 集群搭建步骤如下 (一台服务器模拟多台服务器) 1.创建6个配置…...

31-Golang中的二维数组
二维数组的使用方式 使用方式一:先声明/定义再赋值 1.语法:var数组名 [大小] [大小]类型2.比如:var arr [2] [3]int,再赋值 package main import ("fmt" )func main() {//定义/声明数组var arr [4][6]int//赋初值arr[1][2] 1ar…...

<<Java开发环境配置>>6-SQLyog安装教程
一.SQLyog简介: SQLyog 是一个快速而简洁的图形化管理MySQL数据库的工具,它能够在任何地点有效地管理你的数据库,由业界著名的Webyog公司出品。使用SQLyog可以快速直观地让您从世界的任何角落通过网络来维护远端的MySQL数据库。 二.SQLyog下载: 下载地址…...
MySQL 中的 distinct 和 group by 哪个效率更高
先说大致的结论(完整结论在文末):在语义相同,有索引的情况下:group by和distinct都能使用索引,效率相同。在语义相同,无索引的情况下:distinct效率高于group by。原因是distinct 和 …...

计算机相关专业毕业论文选题推荐
计算机科学以下是我推荐的20个计算机科学专业的本科论文选题:基于机器学习的推荐算法研究与实现基于区块链技术的数字身份认证方案设计与实现基于深度学习的图像识别技术研究与应用基于虚拟现实技术的教育培训平台设计与实现基于物联网技术的智能家居系统研究与开发…...

网络编程套接字之TCP
文章目录一、TCP流套接字编程ServerSocketSocketTCP长短连接二、TCP回显服务器客户端服务器客户端并发服务器UDP与TCP一、TCP流套接字编程 我们来一起学习一下TCP socket api的使用,这个api与我们之前学习的IO流操作紧密相关,如果对IO流还不太熟悉的&am…...
网络与串口调试工具TCPCOM
TCPCOM,网络与串口二合一调试助手,将网络调试助手与串口调试助手合二为一,绿色软件,简单高效。【软件特色】 1. 支持中英文双语言,自动根据操作系统环境选择系统语言类型; 2. 支持ASCII/Hex发送,发送和接收…...

数据库常用命令
文章目录1. 数据库操作命令1.进入数据库2.查看数据库列表信息3.查看数据库中的数据表信息2.SQL语句命令1. 创建数据表2. 基本查询语句3. SQL排序4. SQL分组统计5. 分页查询6. 多表查询7.自关联查询8.子查询1. 数据库操作命令 1.进入数据库 mysql -uroot -p2.查看数据库列表信…...
PTA复习
函数 6-1 学生类的构造与析构 #include<bits/stdc.h> using namespace std; class Student {int num;string name;char sex; public:Student(int n,string nam,char s):num(n),name(nam),sex(s){cout<<"Constructor called."<<endl;}void display…...
TypeScript 学习之接口
接口:对值所具有的结构进行类型检查,称为“鸭式变型法”或“结构性子类型化” 基本使用 interface LabelledValue {label: string; }function printLabel(labelledObj: LabelledValue) {console.log(labelledObj.label); }let myObj {size: 10, label:…...
原码反码补码
在计算机中,负数都是以补码的形式存放的, 正数的原码、反码、补码完全一致。 原码:指的是正数的二进制或负数的二进制, 负数的二进制(原码),其实就是在正数的二进制的最高位前面加一个符号位 1。…...

大数据选股智能推荐系统V1.0-1
很长时间没有发布博客了,这段时间个人确实有点忙。另外一方面在这段时间我也没有闲着。自己研发了一套大数据选股的智能推荐系统。废话不说,我们先来看这套系统:登录页面:(技术点:验证码的生成)…...
调研生成GIF表情包之路
调研阶段 gifshot.js合成GIF 可以从媒体流、视频或图像创建动画 GIF 的 JavaScript 库。 csdn地址:https://blog.csdn.net/qq_16494241/article/details/125717405 分解GIF图片、合成GIF图片 两步走: 1、分解GIF图片 libgif-js:JavaScrip…...
【RocketMQ】源码详解:生产者启动与消息发送流程
消息发送 生产者启动 入口 : org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl#start(boolean) 生产者在调用send()方法发送消息之前,需要调用start进行启动, 生产者启动过程中会启动一些服务和线程 启动过程中会启动MQClientInstance, 这个实例是针对一个项…...

信息安全(一)
思维导图 一、AES加解密 1.概述 1.1 概念 AES: 高级加密标准(Advanced Encryption Standard)是一种对称加密的区块加密标准。 (1)替代DES的新一代分组加密算法 (2)支持三种长度密钥&#x…...

企业多会场视频直播(主会场、分会场直播)实例效果
阿酷TONY 2023-2-16 长沙 活动直播做多会场切换功能(主会场、分会场、会场一、会场二、会场三自由切换) 企业多会场视频直播(主会场、分会场直播)实例效果 特点:支持PC端,也支持移动端观看,会…...
设计模式和设计原则回顾
设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...

Spark 之 入门讲解详细版(1)
1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...
【Java学习笔记】Arrays类
Arrays 类 1. 导入包:import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序(自然排序和定制排序)Arrays.binarySearch()通过二分搜索法进行查找(前提:数组是…...

聊聊 Pulsar:Producer 源码解析
一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业
6月9日,国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解,“超级…...
基于数字孪生的水厂可视化平台建设:架构与实践
分享大纲: 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年,数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段,基于数字孪生的水厂可视化平台的…...

【单片机期末】单片机系统设计
主要内容:系统状态机,系统时基,系统需求分析,系统构建,系统状态流图 一、题目要求 二、绘制系统状态流图 题目:根据上述描述绘制系统状态流图,注明状态转移条件及方向。 三、利用定时器产生时…...
三体问题详解
从物理学角度,三体问题之所以不稳定,是因为三个天体在万有引力作用下相互作用,形成一个非线性耦合系统。我们可以从牛顿经典力学出发,列出具体的运动方程,并说明为何这个系统本质上是混沌的,无法得到一般解…...

Spring数据访问模块设计
前面我们已经完成了IoC和web模块的设计,聪明的码友立马就知道了,该到数据访问模块了,要不就这俩玩个6啊,查库势在必行,至此,它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据(数据库、No…...

让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比
在机器学习的回归分析中,损失函数的选择对模型性能具有决定性影响。均方误差(MSE)作为经典的损失函数,在处理干净数据时表现优异,但在面对包含异常值的噪声数据时,其对大误差的二次惩罚机制往往导致模型参数…...