1 配置管理的概念及意义

  配置管理是通过技术或行政手段对软件产品及其开发过程和生命周期进行控制、规范的一系列措施。CM的目标是记录软件产品的演化过程,确保软件开发者在软件生命周期中各个阶段都能得到精确的产品配置,通过各种配置控制活动避免开发者之间的混乱。在某种角度上,CM是一种标识、组织和控制修改的技术,其能够达到将错误降为最小并最有效地提高生产率的目的。

  配置管理使整个软件演化过程完全“透明外向”,项目管理者、系统级开发人员、软件开发人员、代码及系统测试人员、质量管理员和配置管理员均可参与到软件开发实现的过程中,甚至能从CM活动中领取不同的工作信息。

2 良好的配置管理系统应具备7种属性

  良好的配置管理活动是提高业务价值的有效工具,一个好的配置管理系统应当具备7种属性,分别是安全性、稳定性、控制能力、审计能力、再现能力、可跟踪能力和可伸缩性。

  2.1 安全性

  任何CM系统的目的都是为了保证开发资产(源代码、测试用例、文档等)的安全、防止毁坏、无意中的损伤、未经授权的访问及突发灾难导致的无法预计的巨大损失。这要求必须能实现如下。

  安全的访问——可以查看或更改软件资产的人必须经过明确授权。

  可靠的恢复——在授权用户犯错(误删源码或其他重要文件)时能够恢复丢失的信息。

  某些潜在的损失会带来无法接受的结果,高安全性则给项目带来无穷的保障,这就需要如果发生损失,则除了已存档的关键点外(这涉及到基线的管理),不能随意重启之前的配置。

  2.2 稳定性

  稳定的开发环境无论对团队还是对个人都是绝对必要的,真正的稳定性离不开以下必要因素。

  有确保稳定性的工作区——当他人签入(Checkin)新代码后,CM系统应该保证开发人员停止工作并在第二天或之后的任何时间返回时,他们计算机上的个人数据在未经他们同意的情况下不会发生变化。

  对于何时将哪些新代码(不一定是最稳定的)引入工作区的个人控制能力——如独自工作的开发人员应该能够完全控制自己的开发环境,能够做出正确的决定如何时可以将新代码(具有潜在的不稳定性)引入他自己及整个团队的环境。

  2.3 控制能力

  CM系统的一个重要作用就是在整个开发生命周期内协助管理各种变更。在对整个项目工作流适当控制的同时,不给团队的任何成员施加限制。

  所处不同位置的开发人员组成的开发团队需要一个系统来决定:谁来处理变更请求;变更是如何从开发推进到集成的;谁能在某一特定的开发流上工作。CM解决方案必须具有足够的灵活性,系统要能控制个人分支与项目集成区间的差异与合并时的冲突。

  正确理解和实施这些特性将获得一个可控的开发环境,从而提高开发人员的开发能力和项目计划的可预测性。

  2.4 审计能力

  软件开发是一个反复而复杂的过程,需要敏锐的洞察力来了解正在发生的一切。当深入软件内部时,它的高复杂性被看成是指数级的。而且在整个过程中审计能力需要CM系统能够跟踪并记录各种变更的元数据,使审计能力发挥到最大,缩短甚至帮助解答复杂的问题。

  2.5 再现能力

  在项目进展过程中所作的多次软件修改,并非全部都是最佳方案,此时需要像快照一样能够再现修改前的配置尤其重要,软件开发环境中的再现能力需要:

  在项目生命周期中的任何时刻再现整个开发环境的配置(包括工具、测试和文档)、使用的文件及目录结构和整个命名空间的能力。

  2.6 可跟踪能力

  可跟踪能力是了解项目历史的一种方式。就软件开发的复杂性和其中的高风险而言,可跟踪能力是必不可少的。包括以下能力。

  1)标识已部署的发布产品的版本。使CM系统能够对重新构建、测试或运行该版本所需的开发环境轻松进行重建。

  2)从某一特定的软件版本追溯到开发该版本所给予的变更请求或需求。

  2.7 可伸缩性

  作为整个开发平台的基础,CM系统必须能够支持任何规模的项目。可伸缩的CM系统应该如下。

  1)几乎不需要太多控制就可配置,并具有良好性能。

  2)能够适应业务的发展。

  3)能够为分布在多个不同地区的团队、远距离工作人员提供支持。

  可伸缩性还意味着应该达到合理的性能标准。

  以上7种属性的积极运用将对团队的整体工作效率产生积极影响。

3 配置管理的角色

  在CM过程中需要根据不同的活动属性配置不同的角色,做到专职专责更有效地提高工作效率。

  项目经理(PM)和配置管理员(CMO)分别承担项目配置项的审批、管理、维护工作。

  在CM活动中应设立配置控制委员会(CCB),作为整个CM活动的最高决策层,领导和最高监管软件开发的全生命周期。CCB成员可由各项目经理、CMO、开发负责人、测试负责人组成。CCB的活动主要如下:

  1)授权建立基线和对配置项的标识;

  2)评审和授权对受控库基线的变更;

  3)授权从基线库生成产品;

  4)批准和发布产品库中的最终产品;

  当然,项目组其他成员遵照配置管理原则完成工作也很重要。

4 配置管理的活动

  配置管理活动都在项目配置管理计划中规定。

  以第2章的7种属性为理论背景,根据CM的一般规律并结合本项目的特点,CM活动主要分为以下几点:

  配置标识;版本控制;变更控制;包含:基线管理、变更请求、发布管理;配置状态;配置审计。

  4.1 配置标识和基线

  配置标识主要指对配置项进行识别标识。

  4.1.1 配置项的定义

  软件的配置项主要指在软件开发过程中产生的所有信息(包括各阶段的各类技术文档、源代码甚至最后生成的软件产品)。根据EN50126中的软件开发生命周期V字型模型,结合项目软件开发特点识别项目配置项。

  4.1.2 配置项的标识

  标识配置项对整个CM活动来说非常重要。标识的配置项在软件开发过程中便于查找,每个配置项都有唯一一个相对的规则进行“认知”,可追溯性高。

  4.1.3 基线

  4.1.3.1 基线的意义

  基线是被CCB会议讨论统一认定通过的一处工作任务“里程碑”。基线的发布经过批准后便正式纳入到开发进程中,从此之后的下一阶段工作皆以此基线为基础进行开发。此基线一经正式发布,任何人不得擅自进行任何修改。否则,会找不到下阶段工作的“源头”。而基础的建立确保了下一阶段工作的稳定性。但基线可以通过变更控制升级版本。

  4.1.3.2 基线的分类

  一般软件CM中的基线主要分为:需求基线、计划基线、设计基线、代码基线、测试基线。

  通过对不同阶段的工作结果设立基线,能有效地使软件开发工作处在一个稳定的平台上,具有可追溯性,可清晰地审视每一阶段的工作成果。

  4.1.4 配置库的定义

  配置库是整个CM工作的中心点,即整个CM活动在配置库里操作,并能视觉呈现开发的过程和结果。配置库下级目录的设立结构根据科研开发过程细化建立,配置库应包含如下。

  1)开发库

  开发库中存放开发人员的软件源代码,开发人员自己拥有权限上传、修改。

  2)测试库

  测试库中存放已测试报告等测试相关内容。测试负责人对测试结果负责。

  3)受控库

  本配置库中的受控库主要指基线库。受控库中的任何基线,均是由CM的最高决策层CCB批准纳入的。

  4)文档库

  文档库中按软件开发生命周期的各个阶段不同任务,分别存入相应已正式发布的有效文档。

  5)产品库

  产品库存放已通过系统集成测试并正式发布的软件产品。

  配置库的设置在视觉上追踪了项目开发的全过程,对配置库的良好利用使软件产品更具有可维护性,可追溯性等特点。

  4.2 版本控制

  无论是文档还是软件,版本是一个供前后追溯的直观“印象”。通过CM对配置项进行版本的控制,能更直观地表现“之前的工作结果”和“之后的工作结果”之间的前后顺序,使之有序可查。

  4.3 变更控制

  变更控制是CM中的重点,本文中所指的变更主要是指对受控库中基线的变更。其中申请、审批、讨论、或经测试、批准发布过程均需严格按变更控制规则执行。变更的控制大大增强了软件的安全性。

  变更控制申请的主要内容如下。

  1)变更请求中表述变更原因、描述变更的实施计划。

  2)召开会议对变更进行评估,讨论变更的影响。

  3)确定变更的配置项、变更后的版本。

  4)通过批准后需更新的基线,由CMO走发布手续正式发布。

  4.4 配置状态

  配置状态即对开发里程碑或由CCB会议决定的某一时期配置库状态中“大事件”的表述,可以包括配置库现行状态的追溯表达。配置状态同样可以展示软件生命周期中对基线变更的可追踪性。

  4.5 配置审计

  配置审计是CM活动中审查的部分。它通过依据相应规则对配置项的审查,可检查出整个软件开发生命周期中与CM相关的实际活动是否符合CM计划,审计的目的还包括。

  1)所有经过批准的变更都已实施。

  2)相关的配置项得到更新。

  3)未出现没有授权的变更。

  4)已经建立了适当的状态报告入口。

  5)所有的新增或变更的配置项都通过了质量检查点。

  6)发布的产品和软件需求、设计保持一致。

  7)对所有发布进行了有效评审。

  审计问题可以跟踪表的形式记录下达审计问题、指定整改人员、跟踪统计整改情况,提高问题的整改及时率。

5 结束语

  配置管理是软件开发生命周期中保障软件产品质量不可或缺的手段,同时是全员参与推动改进,它让开发产品在开发过程中具备了可追溯性、完整性,使软件产品具有安全性、稳定性,可靠性等特点。配置管理的应用有利于软件开发效率的提高,能够整体稳步地提升项目的进程。对于配置管理在相应工具上的更好实现还需进一步深化研究。

参考文献

  [1] Wahli U,Brown J,Teinonen M,et al.软件配置管理:IBM Rational ClearCase和ClearQuest UCM指南[M].李纪华,译.北京:人民邮电出版社,2006.

  [2] Ahern D M,Clouse A,Turner R.CMMI精粹——集成化过程改进实用导论 [M].2版.陈波,译.北京:清华大学出版社,2005.

  [3]刘江华,王立,马玲,等.软件开发过程域配置管理:基于Rational的敏捷方案设计与应用[M].北京:电子工业出版社,2011.

  [4] Bellagio D E,Milligan T J.软件配置管理策略与IBM RationalClearCase[M].2版.王海鹏,译.北京:人民邮电出版社,2006.

  [5] Kroll P,Kruchten P.Rational统一过程:实践者指南[M].徐正生,陈逸,邓启威,译.北京:中国电力出版社,2004.

  [6]姜淑娟,荣新节.软件工程与软件开发工具[M].北京:清华大学出版社,2004.

  [7]苏秦,何进,张涑贤.软件过程质量管理[M].北京:科学出版社,2008.

  [8]王祖和.项目质量管理[M].北京:机械工业出版社,2009.