1) 配置项识别

  配置项识别是将配置项按规定统一编号,将其划分为基线配置项和非基线配置项,按一定的结构保存在配置库中,然后赋予不同人员不同的权限来使用它们。

  那么,“基线”又是什么呢?

  基线是由一组具有标识号的配置项组成的。这些配置项构成一个相对稳定的逻辑实体,它们处于“冻结”状态,不能被任何人随意修改。


  基线通常与项目开发过程中的里程碑点相对应。在项目里程碑阶段,项目通常会进行阶段成果评审,经过正式评审并获得批准的阶段性项目成果的统一标识便标志着项目的不同基线。根据使用对象的不同,基线被分为建造基线(对内使用)以及放行基线(对用户使用)。

  对基线及其集成系统的任何修改,都必须按照特定的规程来评估和验证。

  2) 变更控制

 

  随着项目的进展,需求、开发资源及环境都可能会发生变更,变更控制便是对这些变更进行跟踪和规划,目的是便于变更的有效管理和追溯,避免工作的混乱。

  变更控制使配置项真正处于受控状态,并保障配置项在任何情况下都能迅速恢复到任一历史状态。


  上图是一个较典型的变更控制流程,它的重点在于变更申请审批、变更方案审核、变更结果评估等环节。通过这种审批、审核,来保证变更的合理性,降低变更风险。

  3) 版本管理

  这里的版本包括各种文件、技术文档和程序版本。这些配置项均属于版本管理的范畴。

  版本管理的目的是按照一定的命名规则保存配置项的所有版本,避免发生版本丢失或混淆等现象,并确保能快速而准确地查找到配置项。

  版本管理对存取软件资源采取加锁等控制策略,保证了多人同时开发时软件资源的内容一致性和正确性。


  配置项的状态通常有三种:“草稿”、“正式发布”、“正在修改”。 配置项的不同状态由多种版本号所组成。随着状态流程的变迁,版本号发生变化,新的版本出现,版本管理是对配置项各种版本的进行存储、登记、索引、权限分配等一系列管理活动。

  4) 配置状态报告


  根据配置库的记录情况,我们可以总结出不同角度的配置状态报告。它可以由CASE工具自动生成,如:《配置项的状态》、《基线之间的差别描述》、《变更日志》、《变更结果记录》等。

  通过配置状态报告,我们可以了解基线配置项的状态、当前的工作进度、变更对项目进展的影响等情况。从而为开发决策提供参考依据。

  软件配置管理工具的选择

  “工欲善其事,必先利其器”,配置工具的选择对配置管理的好坏影响巨大。


  配置工具是配置管理的自动化平台,是一个管理具体实施的基础。一套功能强大、实施容易、管理方便的配置管理工具,可以极大地提高配置管理的实施效果。

  目前配置管理工具大致分3类:

 

  版本控制工具,提供基本的版本管理功能,例如:CVS, Visual SourceSafe;


  项目级配置管理工具,适合中小型的项目,除版本管理功能外,还提供变更控制、状态统计功能,例如:clearcase/" target="_blank" >ClearCase,PVCS,StarTeam;

 

  企业级配置管理工具,除上述功能外还提供较强的过程管理功能,例如:ALLFusion Harvest。

  如何选择配置工具呢?通常的选择标准如下:


  提供基线化管理,对于基线有明显的标识。在工具所管理的配置库中,所有的配置项都应清晰、完整的得到保存,对于同一基线所包含的配置项可以迅速而明确地查到。如:项目人员在实施某一个需求变更时,可以方便地查到与此更改相关的编码、文档、测试用例、使用手册等产品单元,从而保证变更的完整性。

 

  操作简单、流程便利。项目开发是一项复杂工程,项目人员工作繁重,应尽量减轻他们的工作压力,消除其使用戒心。


  提供完善过程管理功能。能根据实际情况定制不同的开发规范,包括访问权限控制、开发规则的实施等;能跟踪、控制开发过程中出现的缺陷、变更等,可以随时了解变更的实施状态。


  提供灵活多样的配置状态报告。在配置的不同阶段能提供多角度的配置状态报告,详细反映配置项的变化过程,追溯变更任务的进程,为项目管理提供第一手参考资料。

 

  管理规范的制定与推广

  通常人们会认为,配置管理是工具管理,是找几个人,买几个工具,可以开干了,这实在是大大的误解。再好的工具都要靠人来操作、管理。工具是死的,人是活的。工具虽好,若无严格可行的规章、流程做保证其实施,要做好配置管理是空谈。


  配置管理规范是成功实施配置管理的根本保障。它包括:配置管理计划、版本控制规则、变更控制规则、配置库操作规则、配置审计规则等,所有这些,构成了完整的配置规范及配置管理基础。

  如何做好配置管理的相关规范及流程呢?


  1、明确项目要做到的配置管理目标。


  2、根据目标确立配置管理应提供的功能。


  3、确定相关人员,明确其岗位职责。

  4、确定是否要引入配置管理工具,如需引入,要引入何种工具。


  5、确定配置管理流程。


  制定配置管理计划。

  1)配置控制委员会(Configuration Contronl Board ,简称CCB)根据项目的开发计划制定阶段里程碑,明确开发策略;


  2)配置管理人员(Confiuration Management Officer,简称CMO)根据CCB的规划,制定配置管理计划,交CCB审核;

  3)CCB审核通过配置管理计划后,将其交项目经理批准,然后对外发布。


  执行配置管理计划。

 

  1)CCB设定项目研发的初始基线;


  2)CMO设立配置库与空作空间,为软件开发做准备;

  3)开发人员根据软件配置策略获得授权资源,进行研发工作。

 

  4)CCB根据研发进展情况,审核项目变更请求,根据里程碑来确定新的基线,推进配置管理活动。

 

  6、制定相关规范来保障流程的实施。


  规范规定完毕,还要有执行,如何来推进配置管理各项制度及流程呢?