随着软件系统的规模、复杂度日益上升,软件开发过程管理已经成为保证软件系统开发效率、质量、成本的关键性因素。作为软件开发过程中质量保障的重要组成部分,行之有效的软件配置管理(以下简称SCM,Software Configuration Management)能够显著提高软件开发组织的自身能力、提高软件开发过程的完整性,以及降低软件开发的风险。

软件配置管理的概念

ISO 9000、CMM、ISO/IEC 12207、IEEE 729-1983对SCM的定义有不同的描述。ISO9000定义SCM为“一个管理学科,它对配置项的开发和支持生命周期给予技术上和管理上的指导。配置管理取决于项目的规模、复杂程度和风险大小”。

CMM2将SCM定义为一个关键过程域KPA,是“贯穿于整个软件过程中的保护性活动,它被设计来(1)标识变化,(2)控制变化,(3)保证变化被适当的发现(4)向其他可能有兴趣的人员报告变化。”。SCM包括了配置项识别、工作空间管理、版本控制、变更控制、状态报告、配置审计等活动,其中以版本控制为核心和关键。

数据集中工程软件配置管理策略

1、数据集中工程项目背景

中国建设银行数据集中工程的目标是通过建立总行级的数据中心,向全行38个一级分行、20000多个网点提供完整的核心金融服务。其核心应用系统DCC-CCBS包括主机、前置、前端三大部分。主机应用部分部署在总行级数据中心,前置应用部分部署在数据中心前置通信网关、各一级分行业务大前置,前端部分部署在网点。

DCC-CCBS项目的SCM需要实现开发、发布、部署的全过程软件配置管理。开发过程SCM的核心是系统源码版本管理;发布过程的SCM核心是系统目标码版本管理;部署过程以确保系统目标码版本在数据中心、一级分行、网点和外系统的正确部署为首要目标。

2、开发过程软件配置管理

系统源码版本除系统源程序、参数外,还包括需求规格说明书、系统总体架构设计说明书、主机/前置/前端系统结构设计说明书、各子系统的详细设计说明书、各子系统的对外接口规范、业务操作手册、系统使用手册、系统安装维护手册等文档。根据配置项的不同属性,经过评审,形成需求基线、设计基线和源代码基线等不同的基线。开发过程SCM按照子系统的性质,分为主机、前置、前端三部分独立管理。

DCC-CCBS项目总体组负责整个需求和变更的控制。通过审批的需求按照功能分布分解为主机、前置、前端的子需求,再由各部门分别管理和实现。环境及版本控制小组负责向各部门提出形成“系统基线”的要求,以同步主机、前置、前端的源码版本。

3、发布过程软件配置管理

发布过程的系统目标码版本包括系统目标码(执行码)、系统参数及相关文档等。按照用途,系统目标码版本可分为测试版和正式版。以前置平台为例,发布过程SCM的主要活动包括:

构建环境管理,保证编译环境的纯净性和正确性;

构建过程管理,保证构建过程的自动化操作,及其正确性和完整性;

版本编号管理,统一版本命名规则,确保目标码版本号的性和可追踪性;

目标码版本生成管理,从各版本管理工具系统收集、整理、打包相应的目标码、参数和文档,形成完整的或部分(补丁)的目标码版本;

配置状态检查,检查目标码版本包中内容的正确性、完整性和一致性;

4、部署过程软件配置管理

部署过程SCM的主要任务是:建立安全、可靠和迅速的传输流程和传输渠道;建立目标码版本记录和追踪机制、版本运行时刻检查机制和版本恢复机制;确保正确的版本、按照正确的渠道、在规定时间递交到正确的用户并生效。

在DCC-CCBS生产环境中,软件开发中心将通过数据中心版本管理系统发布各单位所需的目标码版本,各单位在版本管理系统和数据传输通道的支持下,实现版本/补丁的主动分发、查询、下载和生效。

软件配置管理实施经验

1、树立正确的企业配置管理意识

SCM是一门管理学科。归根结底,其关键是“管理”,然后才是“软件配置”。项目级SCM能否成功实施,与企业的软件配置管理目标、策略、能力、组织和资源息息相关。

2、提高全员的配置管理素质

SCM是规则和流程的集合,需要依靠流程中所有部门和人员共同的支持和努力。任何环节上的疏忽和懈怠,都将直影响SCM的实施效果。

3、采用合适的工具

功能强大的或昂贵的工具未必是合适的工具。往往20%的功能即可解决80%的配置管理问题。目前比较流行的版本管理工具包括CVS、PVCS、ClearCase、Harvest、VSS、Endeavor等。在选择具体工具时,往往需要考虑以下因素:(1)工具将要使用的范围;(2)工具自身的功能、稳定性、扩展行,以及对环境的要求;(3)工具使用的复杂度;(4)工具与其他流程和工具的集成度和交互性;(5)工具的投资和维护费用。

4、及时的检查和梳理

大系统开发过程中,配置管理往往采用分步离散管理方式,因此保证整个系统配置管理的完整性成为一件精密细致的工作,需要投入大量人力及时修订基线,防微杜渐,避免混乱,以满足对配置管理正确性、完整性和及时性的要求。

5、系统化思考、分步实施、持续改进

SCM不是一项孤立的管理活动。企业的战略目标、管理能力、文化背景、组织结构,项目的规模、性质、技术、人员等都是影响SCM决策的重要因素。因此需要在项目乃至企业的整体环境中系统的考虑SCM的实施策略和方法。

通过分阶段实施量化的、渐进的配置管理目标,可以避免由于引入复杂管理流程所造成的混乱,有利于方便灵活地优化配置管理流程。同时,阶段性目标的实现将有助于整个团队提高士气、增强信心,并逐步提高开发队伍的配置管理素质。