软件项目的配置管理


  摘 要:我作为项目经理参与了某航空公司航空票务系统项目的开发,主要负责系统的组织规划实施开发与项目管理,该系统具有严格的安全,稳定,时实高效和可靠性能要求,由票务管理系统和呼叫中心系统两部分组成,呼叫中心系统主要实现电话,传真和短信业务,票务管理系统是整个系统的核心,采用了struts+hibernate+spring主流WEB应用框架,实现了WEB应用服务器websphere与协作应用服务器lotus domino 的高度集成。随着软件系统的日益复杂化和用户需求,软件更新的频繁化,配置管理在软件项目中显得越来越重要了。本文以该项目为例,结合作者时间,主要通过在项目前期,做好需求调研,总体设计和详细设计并制定完整的配置管理计划。
  关键词:稳定;可靠;提供;覆盖
  我作为项目经理开始参与某航空公司航空票务系统项目的开发,主要负责系统的组织规划实施开发与项目管理,当然还做一些编码工作,主要是公用基础代码和核心代码的编写与维护。航空票务系统是将呼叫中心系统和票务管理系统有效的结合起来,采用先进的CTI技术和语音板卡技术,充分利用电话,短信,传真,因特网等信息化手段,解决航空公司的机票销售问题,规范了业务流程,强化了内部管理,与电子商务的完美结合,使应用系统功能更加完善,提高了整个航空业务的工作效率。其中,票务管理系统包括:客户管理,机票管理,票证管理,销售管理,财务结算,调度管理,远程营业部(代理商/分销商)管理,系统管理八大功能模块,并统一于服务器端软件模块。呼叫中心系统由电话呼叫系统,短信分发系统,传真呼叫系统三部分组成。票务管理系统是整个系统的核心,采用了struts+hibernate+spring主流WEB应用框架,实现了WEB应用服务器websphere与协作应用服务器lotus domino 的高度集成,在本次开发中,我把它视为整个项目的重点
  由于考虑到寒假和春运期间将会是旅客的高峰期,客户要求系统必须在12月底前交付,项目开发周期为6个月,为此我做了如下安排:前4個月主要集中精力用于开发票务管理系统,后两个月主要完成票务管理系统和呼叫中心系统的集成以及项目收尾工作。
  随着软件系统的日益复杂化和用户要求,软件更新的频繁化,配置管理逐渐成为软件生命周期中的主要控制过程。在软件开发过程中,扮演越来越重要的角色。一个好的配置管理过程能覆盖软件开发和维护的各个方面,同时对软件开发过程的客观管理,即项目管理也有重要的支持作用。在该系统项目中,我主要使用intersolv公司的pvcs配置管理工具,并通过在项目前期作好需求调研,总体设计和详细设计并制定完整的配置管理计划。在项目全过程规范化配置管理,注意员工培训并加强沟通与协调等方法和策略来实施配置管理。
  项目前期做好要求调研,总体设计和详细设计,并制定完整的配置管理计划。
  项目计划阶段,我对需求分析,总体设计和详细设计这三项活动工期安排如下:需求分析12天,总体设计和详细设计总共20天,时间尽量充足。在做需求调研的时候,我要求一定要和客户充分沟通,深入挖掘客户的隐性需求。不仅要实现客户需求的功能,在界面上也要让客户满意,为此我们作出了航空系统的虚拟界面,让客户对系统 有一个感官上的整体了解,在需求分析完成工作之后,我们还通过小组会议的形式进行了确认和评审。并邀请客户方代表参与。最终的《需求规格说明》我们也要求客户方代表一定要签字确认。在总体设计和详细设计过程中,我们尽量使用适合本项目团队特点的工具和技术,并充分考虑其先进性和成熟性。在设计完成之后,我们仍旧对其进行了评审,总结和讨论,对争议比较大的地方交公司资深专家审核评定。
  配置管理计划的制定也使配置管理中不可少的一步,它能有效的指导后期配置管理工作。在本项目中,配置管理计划由配置管理员完成,我只做一些审核工作,软件资源配置管理计划,配置项目计划,交付计划,备份计划,CCB审批计划等....总之,我认为项目前期做好以上铺垫工作可以减少变更,对后面一些工作可以说是水到渠成。同时,一个比较完整的计划,也可以避免不必要的项目反工,而且项目管理员的工作也会比较好做一些。
  项目全过程规范化配置管理。
  开发过程中,对文档修改非常麻烦,在配置管理中,对任何一配置项的修改都可能导致版本的变化。因此,对配置管理规范化势在必行,在本项目中,我要求配置标识一定要规范,必须独立命名配置项,配置对象的标识要充分考虑命名对象间存才联系。在配置管理中,项目组成员要各司其职,不得越权操作,同时还要根据自己的权限操作配置项。我的工作在配置管理中主要是:定制开发子系统,定制访问控制,制定常用策略,制定集成里程碑,进行系统集成.....而配置管理员的职责主要是:创建配置序,为项目成员分配权限,对存储库进行日常备份恢复等...软件开发人员主要根据项目的开发配管理策略,创建,修改和测试工件等。软件生存期内全部软件配置是软件产品的真正代表,必须保持精确,软件工程中某一阶段的变更都会引起软件配置的变更,对这种变更也必须做到严格规范的控制和管理。为此,我做了如下规定:处于工作状态的产品开发人员可对其修改,而作为基线进入配置库的产品,则不允许开发人员对其进行修改。在本项目中,我们还成立了临时CCB,由项目经理,用户代表,软件质量控制人员,配置管理员5人组成。我们要求对于用户提出的变更请求要严格按照变更控制流程处理。在用户提交更多请求后,开发人员对其进行评价,并产生变更报告。在由变更控制委员会〈CCB〉作出决定是否进行变更。通过批准,就重新检出变更的配置项,建立测试基准程序,并执行质量保证和测试活动,必须通过CCB的鉴定审批后,方可实施变更。
  注意员工培训并加强协调与沟通。
  项目组成员大多来自不同部门,对项目环境还不熟悉,为了能实施配置管理系统,我建议公司对项目组成员进行相关培训。针对配置管理员,我们要求他学习配置管理工具管理相关的内容。针对开发人员,主要学习配置管理工具与开发相关的常用操作。针对全体人员,要让他们了解配置管理策略和流程,以及如何与开发管理,项目管理相结合。同时,我要求项目组成员要加强协调和沟通。可以使用PVCS,通过ressionmanger文档共享和连锁机制。Tracker与电子邮件的集成,加强项目成员之间的沟通,做到有问题及时发现,及时修改,及时通知,但又不额外增加很多的工作量,这样有助于营造一个和谐,公平,竞争的气氛和环境。
  航空票务系统在2017年12月下旬正式上线,提前完成了项目,目前系统运行正常,受到客户和有关部门的一致好评,对项目的满意度较高。重新回顾该项目也存在一些问题不足,比如:项目初期,大多数成员对版本管理一点都不重视,总是敷衍了事。代码编写人员编写得代码也混乱不堪,给测试人员和维护人员带来了很大不便,一些没多大用的垃圾资料也被放置到配置服务器上,给配置管理人员带了很多麻烦。因此我建议在项目一开始,就要让项目成员认识到版本管理的好处。对源码的管理,要保证书写代码的规范性,强化注释力度,还应作好build和relase工作.
  作者简介
  吴义芝,男,1977年10月出生,广州工商学院讲师,主要研究方向:分布式计算,网络,信息系统项目管理。
  (作者单位:广州工商学院)