Leon Presser在1975年成立了一家名为SoftTool的公司,开发了配置管理工具:Change and Configuration Control(CCC),这是早的配置管理工具之一。

  随着软件工程的发展,软件配置管理越来越成熟,从初的仅仅实现版本控制,发展到现在的提供工作空间管理、并行开发支持、过程管理、权限控制、变更管理等一系列全面的管理能力,已经形成了一个完整的理论体系。同时在软件配置管理的工具方面,也出现了大批的产品,如:的ClearCase;开源产品CVS;入门级工具Microsoft VSS;新秀Hansky Firefly。

  在国外已经有30多年历史的软件配置管理,但在国内的发展却是在21世纪这几年的事。但是通过专家们的介绍,我们感受到,国内的软件配置管理已经取得了迅速发展,并得到了软件公司的普遍认可。

  二、软件配置管理的基本目标

  软件配置管理是在贯穿整个软件生命周期中建立和维护项目产品的完整性。它的基本目标包括:

  目标 1: 软件配置管理的各项工作是有计划进行的。
  目标 2: 被选择的项目产品得到识别,控制并且可以被相关人员获取。
  目标 3: 已识别出的项目产品的更改得到控制。
  目标 4: 使相关组别和个人及时了解软件基准的状态和内容。

  三、XSSC有关软件配置管理的方针

  为了达到上述目标, 如下的方针应该得到贯彻执行:

  技术部门经理和具体项目主管应该使用和遵循XSSC的OSSP中所描述的软件配置管理的工作过程。
  施行软件配置管理的职责应被明确分配。相关人员得到软件配置管理方面的培训。
  技术部门经理和具体项目主管应该明确他们在相关项目中所担负的软件配置管理方面的责任。
  软件配置管理工作应该享有足够的资金支持,这需要在客户,技术部门经理和具体项目主管之间协商。
  软件配置管理应该实施于如下产品:对外交付的软件产品,以及那些被选定的在项目中使用的支持类工具等。
  软件配置的整体性在整个项目生命周期中得到控制。
  软件质量保证人员应该定期审核各类软件基准以及软件配置管理工作。
  使软件基准的状态和内容能够及时通知给相关组别和个人。

  四、常用的软件配置管理工具

  现在常用的软件配置管理工具主要分为三个级别:

  Rational ClearCase,CA CCC/Havest
  Merant PVCS
  Microsoft VSS,CVS

  五.软件配置管理角色职责

  对于任何一个管理流程来说,保证该流程正常运转的前提条件是要有明确的角色、职责和权限的定义。特别是在引入了软件配置管理的工具之后,比较理想的状态是:组织内的所有人员按照不同的角色的要求、根据系统赋予的权限来执行相应的动作。因此,在本文所介绍的这个软件配置管理过程中主要涉及下列的角色和分工:

  项目经理(Project Manager,PM):

  项目经理是整个软件研发活动的负责人,他根据软件配置控制委员会的建议批准配置管理的各项活动并控制它们的进程。其具体职责为以下几项:

  制定和修改项目的组织结构和配置管理策略;
  批准、发布配置管理计划;
  决定项目起始基线和开发里程碑;
  接受并审阅配置控制委员会的报告。

  配置控制委员会(Configuration Control Board,CCB):

  负责指导和控制配置管理的各项具体活动的进行,为项目经理的决策提供建议。其具体职责为以下几项:
  定制开发子系统;
  定制访问控制;
  制定常用策略;
  建立、更改基线的设置,审核变更申请;
  根据配置管理员的报告决定相应的对策。

  配置管理员(Configuration Management Officer,CMO):

  根据配置管理计划执行各项管理任务,定期向CCB提交报告,告,并列席CCB的例会。其具体职责为以下几项:

  软件配置管理工具的日常管理与维护;
  提交配置管理计划;
  各配置项的管理与维护;
  执行版本控制和变更控制方案;
  完成配置审计并提交报告;
  对开发人员进行相关的培训;
  识别软件开发过程中存在的问题并拟解决方案。