配置管理在京沪高速铁路信号集中监测项目中的研究与应用
2012-05-09刘亚芝
刘亚芝
(北京全路通信信号研究设计院有限公司, 北京 100073)
1 概述
在工程项目系统集成和软件开发过程中,有效的配置管理为其提供了一套行之有效的管理办法与活动准则,是贯穿系统集成和软件开发始终的重要质量保证活动。有效的配置管理可以提高项目开发过程中的可观察性,使得问题能够被及时发现,及时了解项目的进展情况;有效的配置管理能够实现对大量涵盖工作经验的文档等知识财富的统一管理,防止企业知识和经验的流失;有效的配置管理能够对设计文件的变更进行有效管理,防止缺失和遗漏。
在京沪高速铁路信号集中监测项目中,如何将项目过程中形成的数量庞大且不断变化的重要成果进行有序高效地存放、检索和使用,做好各类成果的版本控制、变更控制,加强规范化管理尤为重要,配置管理正是通往规范化管理的第一步。
2 项目概况
京沪高速铁路线路起自北京南站,终到上海虹桥站。途径北京、天津、河北、山东、安徽、江苏、上海“四省三市”,线路全长1 318 km。设计时速为350 km,规划年输送旅客能力单向8 000万人。运输组织模式采用高速列车与跨线列车共线运行模式。全线设高速客站24个,其中北京南站、天津西站、济南西客站、南京南站、虹桥站为始发站,其余为中间站。另设定远站为越行站。
京沪高速铁路信号集中监测项目北京局管段实施范围包括北京南站高速场、北京南站普速场、廊坊站、京津线路所等11个车站、24个中继站、4个保养点、2个电务段中心、2个局终端;济南局管段包括9个车站、17个中继站、1个电务段、1个铁路局、3个保养点;上海局管段包括27个车站、38个中继站、4个电务段、1个铁路局、12个保养点。
京沪高速铁路信号集中监测系统由采集设备、站机、服务器、终端、维护工作站、网络及防雷设备等组成。
3 项目配置库的设计
3.1 配置库类别
根据该项目的系统集成过程和项目中的软件开发过程,分别建立了集成库和开发库,保证了对项目过程的监控管理以及配置管理的有效实施。
该项目的集成库主要用来记录和存储项目管理文档、技术及评审文档、程序、数据、硬件配置表、软件工具、会议纪要及干系方的往来文件等配置项。集成库严格区分为工作库和成果库(发布库),所有文档在没有得到正式审批前存放在工作库,当文档得到正式审批后,将从工作库移动到成果库。其中,工作库由项目组负责维护管理,项目负责人负责相关配置项的入库、变更等工作。成果库由配置管理员负责维护管理,配置管理员负责执行配置项的发布及变更等活动。
开发库是用来记录和存储该项目微机监测系统软件开发过程中的各配置项,主要包括该软件产品生命周期中的各种文档、程序代码、数据、工具4部分。开发库按三级建设:工作库、受控库、发布库。开发库在软件开发团队内部设立,依据项目的配置管理计划建立项目配置项,由开发组负责维护;受控库是由开发区在里程碑处提交已经通过测试、评审后的基线;发布库由配置管理员统一管理、统一出入库,其内容来自于受控区中已通过系统和用户测试、评审后的基线。
3.2 配置库结构
设计集成库和开发库结构时,参照京沪高速铁路集中监测项目的工程实施特点,考虑分类原则、配置项粒度、是否适用于基线控制等因素,按两种方式来设计配置库结构:集成库目录结构根据集成项目工作流程来设计;开发库目录结构根据配置项的类型来设计。
3.2.1 集成库结构
本项目的集成库分为工作库和成果库,其总体结构如图1所示。
其中,工作库和集成库的详细目录结构是严格按照以下工作流程建立:项目启动→系统设计→系统实现→系统产品出厂→现场安装调试开通→售后服务。两个库的目录结构基本一致,图2为成果库的详细目录结构。
集成库对项目组成员开放读写权限,以项目的阶段结束点为时间节点,将该阶段的配置项以电子文档方式录入配置库,对于配置项无法以电子方式录入的,应在相应的位置放入说明文档。
3.2.2 开发库结构
根据该项目的软件开发特点,结合开发库的三级建立思想,开发库的一级目录设计分为开发主干库和分支库、测试库、发布库。
主干库主要用于存放程序主干代码及其他配置项。其二级目录按照配置项类型划分,分为代码库、文档库、工具库、数据库和基线库;三级目录又对二级目录进行细化分类,其中代码库按模块分类,文档库划分为管理类、设计类、说明类、质量类等。
分支库主要用于存放产品分支涉及的配置项,其创建及管理由主管研发的部门经理负责,其结构同主干库相应的机构及含义相同。
测试库用于存软件测试活动所涉及的配置项。其二级目录根据软件不同的测试阶段构建;其三级目录是按照每一测试阶段所涉及的配置项类别来划分,包括代码库、测试文档库、测试工具库、测试数据库和测试标签库。
发布库用于存放该产品所有发布结果。发布库由配置管理员管理维护,其他员工只有只读权限。其二级目录由不同阶段的软件产品名构建,主要以软件产品版本号区分;其三级目录是按照某一版本产品所涉及的配置项类别来划分,包括代码库、发布文档库、可执行程序库。
开发库的具体目录结构如表1所示。
表 1 开发库目录结构
4 项目配置管理的实施
4.1 人员角色分析
配置管理流程在本质上是一个管理流程。在这个过程中,参与的部门和人员比较复杂,因此,保证其正常运转的前提是明确各人员角色、职责和权限。本项目配置管理涉及的主要人员包括项目负责人、项目变更控制委员会、配置管理员、主管研发的经理、测试负责人等。
项目负责人负责组织制定配置管理计划并监督执行,组织执行项目组的配置审计,组织执行项目变更管理;项目变更控制委员会负责审核和批准业务变更;配置管理员根据配置管理计划执行各项管理任务,定期编制配置状态报告,执行配置审计;主管研发的经理负责软件发布、出库审核,负责软件需求变更、BUG的管理;测试负责人根据项目计划及测试方案,组织测试活动并提交测试报告。
4.2 配置管理流程
配置管理流程与配置管理角色是紧密联系的。保证配置管理流程的有效执行,是保证团队有效协作、项目顺利有序进行的前提。本项目配置管理流程图如图3所示。
基本步骤如下。
1)配置管理员制定配置管理计划,明确项目组人员角色、职责和权限。
2)配置管理员根据配置管理计划创建配置管理环境,搭建配置库。对项目组成员进行配置管理培训。
3)配置管理员进行配置管理,包括标识项目配置项、维护配置项状态,定期或事件驱动地发布配置状态报告;项目负责人协调配置管理工作,定期进行配置审计,以证实产品在其整个生命周期中,各配置项在技术上和管理上的一致性和完整性。
4)配置管理员建立、管理项目基线,并且管理控制项目变更。
5)产品发布: 开发项目的产品通过系统测试形成运行基线时,才具备产品发布的条件。产品完成发布时,配置管理员应发布报告,通过邮件的方式告知项目组成员及相关领导。
4.3 配置管理关键内容
在本项目的配置管理活动中,配置项识别、版本控制、变更控制、配置审计较为关键。
1)配置项识别
在本项目中,对软件至少识别到文件级别;对于项目文档,按照需求类、设计类、评审类等进行分类识别;对于数据文件至少识别到数据文件级别;项目所使用的工具,按软件开发、软件编译、测试、数据配置等进行分类识别。
2)版本控制
版本管理是配置管理的核心活动。项目文件及软件代码等由于需求、输入条件的变化,会进行相应的修改,形成不同版本,因此,必须对版本进行有效控制。对于文档型配置项,首先要做好配置项的标识,在此基础上,可以通过阶段性评审控制文档型配置项的质量;对于代码型配置项,项目负责人应对每次代码提交进行严格审查。此外,对共享文件服务器目录中的文件读取设置不同的权限,保留修改轨迹,对过程中各个版本进行标识和管理。
3)变更控制
本项目在软件产品需求变更、故障处理、新增功能的情况下实施变更控制,严格按照以下程序进行:变更请求→变更评估→变更实施→变更验证→变更确认和批准→变更发布→变更关闭的环节。
在变更实施过程中,具有权限的变更实施人员将需变更的配置项从受控库中导入工作库,变更实施后,需附上相应的变更说明,记录变更时间、变更原因和变更内容。变更后的软件需要进行回归测试,变更后的文档需要进行评审,相关的测试记录、评审记录录入配置库存档。
4)配置审计
配置审计的作用在于证实产品在其整个生命周期中,各配置项在技术上和管理上的一致性和完整性,并确保在基线发布之前,所有质量和配置活动都已经完成。若不进行配置审计,配置管理就有可能流于形式。
在项目进行过程中,以季度为周期,进行配置审计工作,审计工作包括功能配置审计和物理配置审计。项目组于产品测试阶段之前进行功能配置审计工作,从而确保配置项功能、性能等符合需求和设计规范;在产品交付系统测试或应用前进行物理配置审计工作,从而确保产品所有配置项是物理存在,所有配置项与配置版本信息保持一致且可追溯。
5 总结与展望
以上是对配置管理在京沪集中监测系统中实际应用的介绍。有效的配置管理对于软件的成功开发和项目的有序执行至关重要,在京沪集中监测项目建设期间,关于配置管理主要有以下的经验总结。
1)软件的配置管理应保证软件构件的重现。软件开发过程中,软件构件是软件复用的关键因素。为保证项目的如期有序进展,应保证软件构件的重现,从而方便研发人员在受控的情况下,从配置库提取软件模块,高效地进行软件开发以及软件变更活动。
2)严格细化配置权限。项目组成员较多、结构复杂,项目配置库的多级子库对于不同项目组成员要严格规定读、写权限,不能将配置库文件完全共享,否则会给配置库带来安全隐患。
3)与开发人员进行充分沟通。配置管理员工作侧重于对项目完备的过程以及完整的技术资料的要求,而开发人员更注重软件研发过程,因而在配置管理实施过程中,要避免简单强制地推行软件配置管理,应与开发人员进行充分沟通,避免冲突的产生,共同保证项目的有序进行。
4)通过实践和运作,该项目的配置管理取得一定成效,基本保证了项目有序执行及变更有效控制,希望本项目的配置管理模式能对其他项目提供借鉴。
[1] EN ISO10007: 2003 质量管理-配置管理指南[S].
[2] 王勇,张发勇,周顺平.CMM软件配置管理的理论与实践[J].计算机工程与应用,2004(23):102-104.