编辑推荐: |
本文主要介绍了SCM软件配置管理
是什么?软件配置管理的重要活动 ,软件配置管理的组织以及软件配置管理的实践。
本文来自于微信通服云CCSYUN,由火龙果软件Anna编辑、推荐。 |
|
IEEE对SCM的定义:
A discipline applying technical and administrative
direction and surveillance to identify and document
the functional and physical characteristics of a configuration
item, control changes to those characteristics, record
and report change processing and implementation status,
and verify compliance with specified requirements.
一套应用技术上和管理上的指导和监督的方法,用于:识别、记录配置项的功能特征和物理特征;控制这些特征的变更;记录、报告变更的处理和执行的状态,并验证是否符合特定的需求。
引例
电脑的基本配置包括主板(内存、CPU、显卡)、硬盘、机箱、显示器、外设,统一记录并管理这些配置的型号与相互关系就是电脑的配置管理,通常是某种列表、清单或文档。当配置发生变化时,我们就需要更新这种清单。此外还有汽车配置管理、手机配置管理等。
No.1 SCM软件配置管理
软件配置管理是对软件资产的管理。软件资产,即源代码、设计文档、安装程序、引用类库、资源文件、可以运行的程序等。
▲ 软件资产
相比于一般物体的配置管理,配置之间的关联性/耦合性更高更复杂,配置之间的联系更加紧密,因此一旦发生配置更改,通常是全局性的。
SCM是什么
软件配置管理,又称软件形态管理、或软件建构管理,简称软件形管。用于:归纳软件的组成项目,对项目变更进行管控(版本控制),并维护不同项目之间的版本关联,以使软件在开发过程中任一时间的内容都可以被追溯。
SCM的目标
SCM活动的目标就是为了标识变更、控制变更、确保变更正确实现并向其他有关人员报告变更。从流程角度看,软件配置管理是整个软件开发生命周期中一个非常核心的管理过程。
SCM涉及流程
配置管理实际贯穿了从需求分析、架构设计、项目管理、开发、集成构建、测试以及上线的全过程。
▲ 软件配置管理涉及过程1
这一过程不仅涉及宏观的项目进度控制、配置管理规范及计划、多地点开发规划等,也包括更细粒度的分支模型、构建及集成方式、变更处理流程,还包括微观的与开发人员直接相关的版本控制、差异比较和归并等。
▲ 软件资产配置涉及过程2
No.2软件配置管理的重要活动
▲ 软件配置管理的重要活动
配置计划 Configuration Schedule
配置管理计划是开展所有配置管理活动的基础。
应该明确以下要素:配置管理人员的组织和职责;配置项的命名规则;配置管理工具以及配置库结构;标识的配置项和位置;权限分配和管理方法;配置库备份的周期、方法;版本发布的计划和策略;集成策略;软件配置管理的场景。
配置标识 Configuration Identification
配置标识是配置管理的一个组成部分,包括选择产品的配置项,为它们制定唯一的标识,并在技术文档中记录功能特性。
命名规则:文档,文件名就作为配置项的命名;代码,使用“项目名/模块名+代码”或者“项目名+代码”的方式进行命名;工具,以工具本身的名称命名。
配置控制 Configuration Control
配置控制是配置管理的一个组成部分,包含评估、协调、批准/拒绝、实施对配置项的变更。
配置状态报告 Configuration Status Report
是配置管理的一个组成部分,记录和报告用来有效管理配置所需要的必要信息。
一旦配置项基线化后,应该通知项目组, 内容应该包括基线化配置项的名称以及位置。
配置审计 Configuration Audit
执行审计以验证配置项符合特定的标准或需求。
对配置管理的独立的查检过程,确认受控软件配置项满足需求并就绪。功能审计:配置项的变更控制是否和配置管理计划中的描述相一致;物理审计:配置项的完整性、正确性,
一致性和可跟踪性。
No.3软件配置管理的组织
▲ SCM组织
角色
以下列举三个SCM组织的角色:
项目经理 PM(Project Manager):制定和修改项目的组织结构和配置管理策略;批准、发布配置管理计划;决定项目起始基线和开发里程碑;接受并审阅配置控制委员会的报告。
软件配置工程师 CMO(Configuration Management Officer):根据配置管理计划执行各项管理任务,包括软件配置管理工具的日常管理与维护;提交配置管理计划;各配置项的管理与维护;执行版本控制和变更控制方案;完成配置审计并提交报告等。
系统集成工程师 SIO(System Integration Engineer):系统集成员负责生成和管理项目的内部和外部发布版本。
流程
定制并行开发策略。协调项目的复杂性和需求,统一创建分支类型和元数据,为开发过程中的变更集成制定有效的规范,适时反映开发过程中方法和需求的变化。
发布版本管理。软件开发过程中的一个关键活动是提取工件的相关版本,以形成软件系统的阶段版本或发布版本,一般将其称为稳定基线。
S O F T B A S E L I N E基 线
软件基线是项目储存库中每个工件版本在其生命周期的不同时间点上,通过评审而进入正式受控的一种状态,而这个过程被称为“基线化”。它提供一个正式标准,随后的工作基于此标准,并且只有经过授权后才能变更这个标准。
S O F T C O N F I G U R A T I O N
I T E M配 置 项
为了方便对“配置”进行管理,“配置”经常被划分为各类配置项。配置项是一组软件功能或者物理属性的组合,在配置管理过程中,配置项被作为一个单一的实体对待。
No.4软件配置管理的实践
▲ SCM实践
以下举三个例子说明SCM的实践:
代码构建
构建是指编译、链接和打安装包用来测试和发布的过程。SCM要求构建的日志必须记录和保存,并且每天对最新的源代码进行编译、打包与测试。
持续集成
系统集成的基本使命,就是把产品的各个部分集成在一起,并且保证整体是可以运转的。作为改进,集成可以逐步进行。每完成一个模块,就加入到整体环境中来,发现问题并解决。
并行开发
SCM中允许在当前分支通过标签的方式(版本标签)整体记录版本,同时通过分支产生并行的版本(版本分支)进行新功能开发或者长期持续维护。 |