系统集成员(System Integration Officer,SIO):

  系统集成员负责生成和管理项目的内部和外部发布版本,其具体职责为以下几项:

  集成修改;
  构建系统;
  完成对版本的日常维护;
  建立外部发布版本。

  开发人员(Developer,DEV):

  开发人员的职责是根据组织内确定的软件配置管理计划和相关规定,按照软件配置管理工具的使用模型来完成开发任务。

  六.软件配置管理过程描述

  一个软件研发项目一般可以划分为三个阶段:计划阶段、开发阶段和维护阶段。然而从软件配置管理的角度来看,后两个阶段所涉及的活动是一致,所以把它们合二为一,成为“项目开发和维护”阶段。

  项目计划阶段:

  一个项目设立之初PM首先需要制定整个项目的计划,它是项目研发工作的基础。在有了总体研发计划之后,软件配置管理的活动可以展开了,因为如果不在项目开始之初制定软件配置管理计划,那么软件配置管理的许多关键活动无法及时有效的进行,而它的直接后果是造成了项目开发状况的混乱并注定软件配置管理活动成为一种“救火”的行为。所以及时制定一份软件配置管理计划在一定程度上是项目成功的重要保证。

  在软件配置管理计划的制定过程中,它的主要流程应该是这样的:

  CCB根据项目的开发计划确定各个里程碑和开发策略;
  CMO根据CCB的规划,制定详细的配置管理计划,交CCB审核;
  CCB通过配置管理计划后交项目经理批准,发布实施。

  项目开发维护阶段:

  这一阶段时项目研发的主要阶段。在这一阶段中,软件配置管理活动主要分为三个层面:(1)主要由CMO完成的管理和维护工作;(2)由SIO和DEV具体执行软件配置管理策略;(3)变更流程。这三个层面是彼此之间既独立又互相联系的有机的整体。
  在这个软件配置管理过程中,它的核心流程应该是这样的:(1)CCB设定研发活动的初始基线;(2)CMO根据软件配置管理规划设立配置库和工作空间,为执行软件配置管理阿做好准备;(3)开发人员按照统一的软件配置管理策略,根据获得的授权的资源进行项目的研发工作;(4)SIO按照项目的进度集成组内开发人员的工作成果,并构建系统,推进版本的演进;(5)CCB根据项目的进展情况,审核各种变更请求,并适时的划定新的基线,保证开发和维护工作有序的进行。

  这个流程是如此循环往复,直到项目的结束。当然,在上述的核心过程之外,还涉及其他一些相关的活动和操作流程,下面按不同的角色分工予以列出:

  各开发人员按照项目经理发布的开发策略或模型进行工作;
  SIO负责将各分项目的工作成果归并至集成分支,供测试或发布;
  SIO可向CCB提出设立基线的要求,经批准后由CMO执行;
  CMO定期向项目经理和CCB提交审计报告,并在CCB例会中报告项目在软件过程中可能存在的问题和改进方案;
  在基线生效后,一切对基线和基线之前的开发成果的变更必须经CCB的批准;
  CCB定期举行例会,根据成员所掌握的情况、CMO的报告和开发人员的请求,对配置管理计划作出修改,并向项目经理负责。

  七. 软件配置管理的关键活动

  1.配置项(Software Configuration Item,SCI)识别

  Pressman对于SCI给出了一个比较简单的定义:“软件过程的输出信息可以分为三个主要类别:(1)计算机程序(源代码和可执行程序),(2)描述计算机程序的文档(针对技术开发者和用户),以及(3)数据(包含在程序内部或外部)。这些项包含了所有在软件过程中产生的信息,总称为软件配置项。”

  由此可见,配置项的识别是配置管理活动的基础,也是制定配置管理计划的重要内容。

  软件配置项分类软件的开发过程是一个不断变化着的过程,为了在不严重阻碍合理变化的情况下来控制变化,软件配置管理引入了“基线(Base Line)”这一概念。IEEE对基线的定义是这样的:“已经正式通过复审核批准的某规约或产品,它因此可作为进一步开发的基础,并且只能通过正式的变化控制过程改变。”

  所以,根据这个定义,我们在软件的开发流程中把所有需加以控制的配置项分为基线配置项和非基线配置项两类,例如:基线配置项可能包括所有的设计文档和源程序等;非基线配置项可能包括项目的各类计划和报告等。

  配置项的标识和控制

  所有配置项都都应按照相关规定统一编号,按照相应的模板生成,并在文档中的规定章节(部分)记录对象的标识信息。在引入软件配置管理工具进行管理后,这些配置项都应以一定的目录结构保存在配置库中。

  所有配置项的操作权限应由CMO严格管理,基本原则是:基线配置项向软件开发人员开放读取得权限;非基线配置项向PM、CCB及相关人员开放。

  2.工作空间管理

  在引入了软件配置管理工具之后,所有开发人员都会被要求把工作成果存放到由软件配置管理工具所管理的配置库中去,或是直接工作在软件配置管理工具提供的环境之下。所以为了让每个开发人员和各个开发团队能更好的分工合作,同时又互不干扰,对工作空间的管理和维护也成为了软件配置管理的一个重要的活动。

  一般来说,比较理想的情况是把整个配置库视为一个统一的工作空间,然后再根据需要把它划分为个人(私有)、团队(集成)和全组(公共)这三类工作空间(分支),从而更好的支持将来可能出现的并行开发的需求。