浅谈软件配置管理的流程设计与实施

时间:2022-09-07 04:02:33

浅谈软件配置管理的流程设计与实施

摘要:软件配置管理是一套规范、高效的软件开发管理方法,它能提供工作空间管理、并行开发支持、过程管理、权限控制、变更管理等一系列的管理能力,是提高软件质量的重要手段。软件配置管理可以帮助开发团队对软件开发过程进行有效的变更控制,它有机地把其它支持活动结合起来,形成一个整体,相互促进,相互影响,有力地保证了质量体系的实施。本文主要对软件配置管理的流程设计与实施进行探讨,并结合具体案例,分析了进行软件配置管理的实施策略。

关键词:软件配置管理;流程设计;实施策略

中图分类号:TP311文献标识码:A文章编号:1009-3044(2009)24-6732-02

Discusses the Software Disposition Management the Flow Design and the Implementation

PENG Wen-bin

(Computer Teaches Education Ministry, Guangzhou Business Vocational School, Guangzhou 510163, China)

Abstract: The software disposition management is set of standards, the highly effective software development management, it can provide the working space management, the parallel development support, the process management, the jurisdiction control, the change management and so on a series of managed capacity, is improves the software quality the important means. The software disposition management may help the development team to carry on the effective change control to the software development process, it organically unifies other support, forms a whole, promotes mutually, the mutual influence, has guaranteed quality system's implementation powerfully. This article mainly carries on the discussion to the software disposition management's flow design and the implementation, and unifies the concrete case, analyzed has carried on the software disposition management the implementation strategy.

Key words: software disposition management; flow design; implementation strategy

1 软件配置管理概述

现代软件项目规模越来越大,涉及的人员越来越多,软件开发过程中经常面临一些难以解决的问题,例如,团队开发过程中如何保证产品版本的正确性;怎样在早先产品版本的基础上进行重构;如何解决开发策略的统一与特殊版本需求之间的矛盾等,有效的软件配置管理能够充分解决上述问题,提高软件的开发效率。软件配置管理(Software Configuration Management,SCM)其实并不是一个新的概念,许多专家学者早已从不同角度和不同侧面对它进行了论述,本文也是尝试着从软件工程的角度出发对其进行简述。

1.1 软件配置管理的内涵

在软件开发过程中,会逐步累积出构成软件产品的程序,包括源代码、中间代码和执行程序、各类文档及数据,这些所有能够形成软件组成的元素被称为软件配置,软件组成中的每一个元素称为软件配置中的一个配置项,配置项是软件配置管理的对象。

《GB/T11457(1995)软件工程术语》中的定义为:软件配置管理是标识和确定系统中配置项的过程,在系统整个生存周期内控制这些项的投放和更动,记录并报告配置的状态和更动要求,验证配置项的完整性和正确性。软件配置管理活动主要包括标识软件工作产品、配置控制、配置状态统计和配置审核,四项活动贯穿于软件开发活动的始终,覆盖开发活动的各个环节。

1.2 软件配置管理的意义

要开发出满足用户需求的、高质量的软件产品,关键就在于建立起一个稳定、可控、可重用的软件流程(Software Process)。而要进行软件流程改进就需要有明确的、量化的对现状的分析和对未来的预期,而进行度量的前提和基础就是软件配置管理。

与一般制造业相类似,软件流程就像是一条流水线,在它的各个环节上都会有“零部件”产生,它们就是我们所熟悉的程序、相关文档以及数据,这些正是软件配置管理的对象――软件配置项。它们不仅是大量人力物力投入的结晶,更是开发经验的积累,是软件组织最宝贵的财富[1]。因此,软件配置管理的重要作用之一就是要全面的管理保存各个配置项,监控各配置项的状态,并向项目经理及相关的人员报告,从而实现对软件过程的控制。

2 软件配置管理的流程设计

配置管理流程是软件开发机构进行配置管理的依据,其规定了开发过程中需要做哪些配置管理方面的工作。制订配置管理流程的方法是:通过对目标机构的调查、评估,定义现有的配置管理流程,由配置管理技术专家对它进一步分析,结合常规的配置管理方法制订出新的流程,然后,依据选定的配置管理工具的功能,将新流程中可自动化的环节交由配置管理工具处理,其它环节由新制订的配置管理规范进行控制。下面简单介绍软件配置管理的主要功能、量化的软件配置管理流程以及常见的配置管理工具。

2.1 软件配置管理的主要功能

软件配置管理的主要任务是在项目的整个生存周期内建立和维护软件项目产品的完整性。在IEEE标准729-1983中,软件配置管理的主要功能包括如下几项:配置表示;版本控制;变更控制;变更状态统计;变更审计;构建;过程管理;小组协作[2]。

一个理想的配置管理系统应该提供以上所有功能,但是在实现中,这种情况几乎是不可能的。实际上,一个系统若能在某种程度上提供上述部分功能,便可以称之为配置管理系统。因为从本质上来说,配置管理系统是一种功能的综合,而不是一种标准的体系。同时,在企业实施软件配置管理所涉及到的活动,不仅仅是要采用相应配置管理系统来支持配置管理,还需要制定一个正确的配置管理解决方案。只有在正确的配置管理方案的指导下,并辅以有效的配置管理工具的支持,才能够真正的做好配置管理,从而达到对软件过程的管理和改善,保证软件产品的高质量。

2.2 量化的软件配置管理流程

软件量化是对软件开发项目、过程及其产品进行数据定义、收集以及分析的持续性定量化过程,目的在于对此加以理解、预测、评估、控制和改善。通过软件度量可以改进软件开发过程,促进项目成功,开发高质量的软件产品。因此,利用量化的软件配置管理,可以明确规定数值的版本管理,开发人员能按照规定标识开发过程中的各产品,进行统一管理,提高工作效率和并行开发的安全性。同时,利用量化管理提供的各项数据,帮助项目主管了解项目进展与风险,提高管理水平,并可根据开发人员在对配置管理支持工作的数据中了解开发人员的内容,优化人员安排,从而提高工程效率,降低工程成本。

2.3 常见的配置管理工具

CVS(Concurrent Versions System)、VSS(ViSua1 Sourcesafe)和Clear Case是版本控制工具中比较典型的三种工具。其中,CVS是开放源代码世界的经典,是一个功能比较全面的现代版本控制系统,可以在任何操作系统和网络环境下运行;VSS是Microsoft公司开发的、基于Windows平台的、面向小型开发项目的版本控制系统,依靠服务器上的共享目录提供服务;ClearCase是目前世界上最好的功能强大的商用版本控制系统,提供了全面的配置管理功能,而且无需软件开发者改变他们现有的环境、开发工具和工作方式,在大型项目的开发管理中表现优异。

3 软件配置管理的实施策略

如何有效协调同一个软件产品的维护和开发工作,使之有序、高效,这是软件配置管理应该解决的问题,主要依赖于配置管理的策略和配置管理工具对并行开发、自动化合并、项目管理等功能的支持。

3.1 软件项目的并行开发策略

所谓并行开发,是指由两个或两个以上的个人或团队针对同一个文件或整个软件系统进行同步的变更,并行开发应具备对并行变更内容进行合并的能力。一般来说,软件项目有以下三种并行开发策略:

第一,每个开发人员一个开发分支/开发流。在这种方式下,每个开发人员拥有一个属于自己的开发流,优点是开发人员的环境是稳定的,开发人员决定什么时候提交结果,什么时候看到其他人的结果;缺点是每个开发人员处于彼此隔离状态,集成工作量较大。

第二,多个开发人员共享一个开发分支。在这种方式下,多个开发人员共享一个开发分支。此方式比较适于彼此之间需要紧密协作的开发场合,如果使用动态视图,立即可以自动看到其他人的修改;如果使用静态视图,通过更新也可以看到其他人的修改。

第三,所有开发人员共享一个分支。这种方式是所有开发人员使用一个且仅使用一个分支/流,也就是集成流。这种方式是最大化集成的集中体现,适合整个项目组的各个成员之间需要紧密协作的场合下,一般在项目组规模较小(少于8人),并行修改很小的场合使用。

3.2 配置项标识与库结构策略

配置项由配置管理员在配置管理计划中确定,进行配置标识的基本策略是:逻辑上是一个整体,标识规则保持一致,方便检索,易于记忆。配置项的标识包括配置项名称、配置项版本标识两个方面。

在确定了配置项之后,就可以确定配置库的目录结构了。配置库的目录结构直接关系到配置管理的工作量和使用的方便性,所以需要根据自己的需要确定一个合理的结构。配置库大结构可以采用二级库:开发库、受控库+知识库[3]的形式。开发库和受控库下的目录结构基本相同,但开发库比受控库多了一个属于开发人员使用的工作空间。知识库在项目结束后,把最终代码、开发文档、业务相关资料与项目人员的经验体会等资源收录其中。

在确定配置管理库受控库下目录结构时,有两种可选的产品目录结构的方式:一种是按照开发阶段划分,在产品类型下再划分诸如设计文档、代码等目录;另一种方式是按照产品类型划分,例如首先是文档、代码,然后在其下按照开发阶段划分。这两种目录结构,可以根据软件项目开发的实际情况来进行相应的选择。

3.3 B公司电子商务系统的配置管理案例分析

B公司电子商务系统的项目需求是:除了在线交易外,还要通过网站将企业与客户结合起来,将企业和合作伙伴结合起来;通过网络的快速反应,为客户提供更好的服务,促进企业的业务发展。

项目根据企业实际需要选择并行版本系统CVS作为版本控制工具。系统由主服务器端、客户端、备份服务器端、测试服务器端四个部分组成。主服务器端负责维护一个CVS仓库。

及时充分的信息交流是每一个软件开发项目的基本需要,在该项目的配置过程中做了以下几点:一是利用公司网站进行项目信息的,比如版本信息,整个项目都通过该网站来版本、人员信息等;二是变更控制委员会和开发小组的例行会议,用于企业决策执行和跟踪、技术升级、需求变化等重大变更的交流。

基线[4]是软件开发过程中最重要的里程碑,在本项目配置管理过程中,软件企业根据自己的开发要求,主要关注开发过程中的阶段基线,如表1所示。

在CVS中,用户需要有一个用户标识才能访问CVS的仓库,在此软件开发过程中,采用Pserver服务器模式,既可以创建与服务器的用户相对应的用户帐号,也可以创建专用于CVS的用户标识,所有的用户名称映射都使用仓库的CVSROOT模块中的Passwd文件,由配置管理员完成。

B公司电子商务系统的软件配置管理方案,针对中小型软件企业和开发项目特点,用CVS作为主要的配置管理工具,有效的实现了版本控制、变更管理、管理等主要的配置管理功能,较好地满足了B公司的项目需求。

4 结论

实施软件配置管理可以解决许多软件开发企业目前迫切需要解决的问题,在软件开发的整个生命周期过程中都能起到积极的促进作用。但是实施软件配置管理也是一个非常复杂的过程,必须对配置管理的内容有足够的了解,同时分析各种工具,采用适合该软件项目实际开发流程的配置管理工具,才能实施一个成功的软件配置管理过程。

参考文献:

[1] Mette A,Hass J.配置管理原理与实践[M].龚波,黄慧萍,王高翔,译.北京:清华大学出版社,2003.

[2] 李奔.PMT软件配置管理文集》[EB/OL]./scmchina/doc/pmtscmrpt.pdf.

[3] 徐晓春.软件配置管理[M].北京:清华大学出版社,2002.

[4] 于宏霞,陈凯,白英彩.基线技术在软件配置管理过程中的应用[J].计算机应用与软件,2006,23(2).

上一篇:高校办公自动化系统安全设计探讨 下一篇:Photoshop创建选区的方法与技巧