软件工程部 陈治伦
软件配置管理(SCM——Software Configuration Management)是ISO9001和CMM Level2中的重要组成元素,它在软件产品开发的生命周期中,提供了结构化的、有序化的、产品化的管理软件工程的方法,是软件开发和维护的基础。
SCM是指通过技术及行政手段对软件产品及其开发过程和生命周期进行控制、规范的一系列措施和过程,它通过控制、记录、追踪对软件的修改和每个修改生成的软件组成部件来实现对软件产品的管理。SCM可以协调软件开发使得混乱减到最小,是一种标识、组织和控制修改的技术,目的是使错误达到最小并最有效地提高生产效率。
SCM使软件产品变为受控的和可预见的,它控制这样几个问题:
1.谁做的变更?
2.软件有什么变更?
3.什么时间做的变更?
4.为何要变更?
通过实施SCM,可以达到可重用过程制度化,包括:满足组织的政策方针、计划和过程描述文档化、分配适当资源(包括资金,人员和工具)、确定责任和权限、培训相关人员、通过不同级别的管理方法和纠正活动检测状态。
置于SCM之下的工作产品包括发送给用户的软件产品(如软件需求文档,软件代码),用于内部使用的软件工作产品(如过程描述),和用于创建工作产品的工具等(如操作系统、数据库、开发工具)。
SCM还用于建立和维护软件工作产品基线。基线是由配置项及相关实体组成的,包括组成软件产品的相关版本、设计、代码、用户文档等。它是软件生命周期中各开发阶段末尾的特定点,即里程碑。通过正式的技术评审而得到的软件配置的正式文本才能成为基线,它的作用是使各个阶段工作的划分更加明确化,使本来连续的工作在这些点上断开,以便于检验和肯定阶段成果。基线是配置项继续发展的一个固定基础。
实施SCM不论是对软件开发者、测试者、项目经理、QA人员,还是客户都将会获得很多好处:有助于规范团队各个角色的行为,同时又为各个角色之间的任务传递和交流提供无缝的接合;能帮助项目经理更好地了解项目的进度、开发人员的负荷、工作效率和产品质量状况、交付日期等信息。
SCM分为四大功能领域:配置标识、变更控制、配置状态统计、配置审核。
配置标识包括标识软件系统的结构,标识独立部件,并使它们是可访问的。配置标识的目的,是在整个生命周期中标识系统各部件并提供对软件及其软件产品的跟踪能力。
配置变更控制包括在软件生命周期中控制软件产品的发布和变更,目的是建立确保软件产品质量的机制。它回答:什么是受控的?受控产品怎样变更?谁控制变更?何时接受,恢复,验证变更?
配置状态统计包括记录和报告变更过程,目标是不间断记录所有基线项的状态和历史,并进行维护,它解决以下问题:系统已经做了什么变更?此问题将会对多少个文件产生影响?
配置审核将验证软件产品的构造是否符合需求、标准、或合同的要求,目的是根据SCM的过程和程序,验证所有的软件产品已经产生并有正确标识和描述,所有的变更需求都已解决。它回答:系统和需求是否吻合?是否所有变更都是在版本控制下?
SCM从应用层次上可以从低到高分为三级:版本控制、以开发者为中心、过程驱动。
版本控制主要应用于个人独立开发或小组开发,它可以控制任何文件的版本、实现分支和归并功能、进行文本比较、标记注释和版本报告信息,主要工具有我们目前用到的VisualSourceSafe及Intersolv PVCS。
以开发者为中心主要应用于部门级开发,它可用于软件维护、不断增加的开发任务、并行开发、QA及测试,它面向大型团队、利于交流、能最大限度地利用人力资源,主要工具为RationalClearCase及MKS Source Integrity。
过程驱动主要使用于企业级开发,着重解决新的工具引入、IT审核、管理报告、复杂的生命周期、应用工具包、集成解决方案、资料库等问题,实现真正规范的团队开发,主要工具为Platinum Technology CCC/Harvest。