配置管理(CM)的目的是建立和维护一个项目或过程的所有已确定的输出的完整性,并将其提供给相关方(ISO/IEC/IEEE 2015)。对系统构件的非托管变更(例如那些与计划、需求、设计、软件、硬件、测试和文档相关的变更)可能会导致在整个系统生命周期中持续存在的问题。因此,CM的一个主要目标是管理和控制这些工件的变更。
配置管理流程简介
配置管理是在产品演化过程中的离散点识别和形式化配置项的功能和物理特征的学科,目的是维护产品系统的完整性和控制基线的变更。一个项目的基线包含了所有的技术要求以及相关的成本和进度要求,这些要求已经足够成熟,可以被项目经理接受并置于变更控制之下。项目基线由两部分组成:技术基线和业务基线。系统工程师负责管理技术基线,并确保它与业务基线中的成本和进度一致。通常,项目控制办公室管理业务基线。 ANSI/GEIA EIA-649-A标准从这样的观点提出了配置管理实践,即使用配置管理实践是因为它们具有良好的业务意义,而不是因为需求是由外部客户强加的(ANSI/GEIA 2005)。该标准从企业的角度讨论了CM原则和实践;它没有规定企业中各个组织或团队应该执行哪些CM活动。每个企业根据自己的管理方针分配职责。参见配置管理实现指南,它支持并提供了关于该标准的进一步信息(ANSI/GEIA 2005年10月)。
有效的CM依赖于有效过程的建立、维护和实施。配置管理过程应包括但不限于以下活动:
- 利益相关者的识别和参与
- 设定 CM 目标和预期结果
- CM任务的识别和描述
- 分配执行 CM 过程任务的职责和权限
- 建立监控和控制 CM 过程的程序
- CM过程有效性的测量和评估
作为最低要求,CM 流程应包含并详细说明以下任务(SEI 2010):
- 识别在给定时间点构成基线的选定工作产品的配置
- 控制对配置项的变更
- 构建或提供规范以从配置管理系统构建工作产品
- 保持基线的完整性
- 向开发人员、最终用户和客户提供准确的状态和当前配置数据
下面的图 1 显示了系统 CM 的主要功能。
图 1. 配置管理功能。 (SEBoK 原创)
计划
CM计划必须在考虑组织背景和文化的情况下制定;它必须坚持或纳入适用的政策、程序和标准,它必须适应采办和分包商的情况。CM计划详细描述并安排作为CM过程一部分执行的任务,包括:配置识别、变更控制、配置状态记帐、配置审计,以及发布管理和交付。
配置标识
此活动的重点是识别将在 CM 流程下管理和控制的配置项。 识别活动涉及建立标记项目及其版本的程序。 标签为系统配置中的每个项目提供上下文,并显示系统项目之间的关系。
建立基线
配置项通常组装成基线,该基线指定如何查看系统以进行管理、控制和评估。 此基线固定在系统生命周期中的特定时间点,代表当前批准的配置。 一般只能通过正式的变更程序进行变更。
变更控制
严格的变更控制过程是系统工程的关键。响应工程变更建议(ECP)的广义变更控制过程如下图2所示,它改编自系统工程与分析(Blanchard and Fabrycky 1999)。
图 2. 配置变更控制流程。 (SEBoK 原创)
配置审计
审计是对配置项当前状态的独立评估,并确定配置活动与 CM 过程的一致性。 对适用的 CM 计划、法规和标准的遵守情况通常在审核期间进行评估。
约束和指导
影响和指导CM过程的约束来自许多来源。在公司或其他组织级别制定的政策、程序和标准可能会影响或限制配置管理过程的设计和实现。此外,与收购方或供应商的合同可能包含影响CM过程的条款。采用的系统生命周期过程以及系统开发中使用的工具、方法和其他过程会影响CM过程(Bourque和Fairley 2014)。对于CM过程的开发有各种各样的指导来源。这些包括关于系统生命周期过程的ISO标准(ISO/IEC/IEEE 15288 2015)和配置管理指南(ISO 10007 2003),以及软件工程知识体系指南(SWEBOK) (Bourque和Fairley 2014),以及开发CMMI (SEI 2010)。
组织问题
成功的配置管理计划、管理和实现需要理解配置管理过程的设计和实现的组织环境,以及为什么要对其施加约束。为了计划一个项目的配置管理过程,有必要了解组织环境和组织元素之间的关系。CM与其他组织元素相互作用,这些元素可以以多种方式结构化。尽管执行某些CM任务的责任可能被分配到组织的其他部分,但是CM的总体责任通常属于一个独特的组织元素或指定的个人(Bourque和Fairley 2014)。
测量
为了执行某些CM功能,例如状态会计和审计,以及监控和评估CM过程的有效性,度量和收集与CM活动和系统工件相关的数据是必要的。CM库和自动化报告工具为数据收集提供了方便的访问和便利。度量标准的例子包括文档工件的大小、变更请求的数量、变更配置项的平均时间,以及返工成本。
工具
CM 使用多种工具来支持该过程,例如:
INCOSE 工具数据库工作组 (INCOSE TDWG 2010) 维护着一个广泛的工具列表,包括配置管理。
与其他系统工程管理主题的联系
配置管理涉及到在系统定义、系统实现、系统部署和使用以及产品和使用寿命管理的所有领域中,在整个系统生命周期中产生和修改的工件的管理和控制。这包括对所有其他管理过程(计划、分析、报告、状态等)工件的配置管理应用。
实际考虑
与系统工程 CM 相关的关键缺陷和良好实践将在接下来的两节中描述。
缺陷
在计划和执行 CM 过程中遇到的一些关键缺陷如表 1 所示。
表 1. 配置管理缺陷。 (SEBoK 原创)
名称 | 描述 |
浅可见度 |
在变更控制过程中不涉及所有受影响的领域。 |
剪裁不充分 |
CM裁剪不充分,无法适应项目规模、子系统数量等。 |
CM有限视角 |
没有考虑和集成所有贡献组织的配置管理过程,包括COTS供应商和分包商。 |
良好的实践
下表 2 提供了从参考文献中收集的一些良好实践。
表 2. 配置管理良好的实践。 (SEBoK 原创)
名称 | 描述 |
跨职能通信和CM流程 |
酌情为软件、硬件、固件、数据或其他类型的项目实施跨职能通信和 CM 流程。 |
全生命周期视角 |
在整个生命周期内计划集成 CM。 不要假设它只是作为程序的一部分发生。 |
CM计划 |
流程在项目早期记录在一个单一的、全面的 CM 计划中。 该计划应该是一个(系统)CM 计划。
包括选择和使用的工具。 |
需求可追溯性 |
在 CM 活动开始时启动需求可追溯性。 |
建行层级 |
使用与程序元素相称的配置控制板的层次结构。 |
识别的一致性 |
软件 CI 和硬件 CI 使用一致的识别方案。 |
CM自动化 |
配置状态记帐应尽可能自动化。 |
其他良好的实践可在 ISO/IEC/IEEE(2009,第 6.4 条)和 INCOSE(2010,第 5.4.1.5 节)中找到。 |