软件配置管理

软件配置管理(Software Configuration Management,SCM)是一种标识、组织和控制修改的技术。软件配置管理应用于整个软件工程过程。我们知道,在软件建立时变更是不可避免的,而变更加剧了项目中软件开发者之间的混乱。SCM活动的目标就是为了标识变更、控制变更、确保变更正确实现并向其他有关人员 告变更。从某种角度讲,SCM是一种标识、组织和控制修改的技术,目的是使错误降为最小并最有效地提高生产效率。

目录

[隐藏 ]

1 简介 
2 发展历史
  1. 2.1 基本目标
3 常用的软件配置管理工具
4 软件配置管理角色职责
5 软件配置管理过程描述
6 软件配置管理的关键活动
7 实施配置管理的收益

软件配置管理 – 简介 

     软件配置管理(Software Configuration Management,SCM)是一种标识、组织和控制修改的技术。软件配置管理应用于整个软件工程过程。我们知道,在软件建立时变更是不可避免的,而变更加剧了项目中软件开发者之间的混乱。SCM活动的目标就是为了标识变更、控制变更、确保变更正确实现并向其他有关人员 告变更。从某种角度讲,SCM是一种标识、组织和控制修改的技术,目的是使错误降为最小并最有效地提高生产效率。

      软件配置管理(Software Configuration Management,SCM)作为CMM 2级的一个关键域(Key Practice Area,KPA),在整个软件的开发活动中占有很重要的位置。正如Pressman所说的:“软件配置管理是贯穿于整个软件过程中的保护性活动,它被设计来(1)标识变化,(2)控制变化,(3)保证变化被适当的发现,以及(4)向其他可能有兴趣的人员 告变化。” 所以,我们必须为软件配置管理活动设计一个能够融合于现有的软件开发流程的管理过程,甚至直接以这个软件配置管理过程为框架,来再造组织的软件开发流程。

软件配置管理 – 发展历史

  配置管理的概念源于美国空军,为了规范设备的设计与制造,美国空军1962年制定并发布了第一个配置管理的标准“AFSCM375-1,CM During the Development & Acquisition Phases”。

  而软件配置管理概念的提出则在20世纪60年代末70年代初。当时加利福利亚大学圣巴巴拉分校的Leon Presser教授在承担美国海军的航空发动机研制合同期间,撰写了一篇名为“Change and Configuration Control”的论文,提出控制变更和配置的概念,这篇论文同时也是他在管理该项目(这个过程进行过近一千四百万次修改)的一个经验总结。

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

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

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

基本目标

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

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

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

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

软件配置管理 – 常用的软件配置管理工具

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

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

软件配置管理 – 软件配置管理角色职责

       项目经理(Project Manager,PM)

      项目经理是整个软件研发活动的负责人,他根据软件配置控制委员会的建议批准配置管理的各项活动并控制它们的进程。其具体职责为以下几项:
      制定和修改项目的组织结构和配置管理策略;
      批准、发布配置管理计划;
      决定项目起始基线和开发里程碑;
      接受并审阅配置控制委员会的 告。

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

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

      根据配置管理计划执行各项管理任务,定期向CCB提交 告,告,并列席CCB的例会。其具体职责为以下几项:
      软件配置管理工具的日常管理与维护;
      提交配置管理计划;
      各配置项的管理与维护;
      执行版本控制和变更控制方案;
      完成配置审计并提交 告;
      对开发人员进行相关的培训;
      识别软件开发过程中存在的问题并拟就解决方案。

      系统集成员(System Integration Officer,SIO):
      系统集成员负责生成和管理项目的内部和外部发布版本,其具体职责为以下几项:
      集成修改;
      构建系统;
      完成对版本的日常维护;
      建立外部发布版本。

      开发人员(Developer,DEV):

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

软件配置管理 – 软件配置管理过程描述

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

      项目计划阶段:

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

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

      项目开发维护阶段:

      这一阶段时项目研发的主要阶段。在这一阶段中,软件配置管理活动主要分为三个层面:(1)主要由CMO完成的管理和维护工作;(2)由SIO和DEV具体执行软件配置管理策略;(3)变更流程。这三个层面是彼此之间既独立又互相联系的有机的整体。

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

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

      综上所述,配置管理的工作流程如图1所示:

软件配置管理

软件配置管理 – 软件配置管理的关键活动

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

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

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

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

      配置项的标识和控制

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2013年7月25日
下一篇 2013年7月25日

相关推荐