五、逐步完善分支创建方式
1、依据开发需要,创建平台分支
由管理层次决定的分支是一个主分支一个集成分支,但随着开发活动的深入,系统平台开发和应用开发之间出现互相牵制问题,平台程序变更后在没有与应用程序联调之前,会影响到应用程序的开发,严重时会使应用程序开发工作无法正常进行,为了查找原因,有时需要花上一两天时间,影响了开发进度。鉴于这种情况,新创建了系统平台分支,系统平台子项目组在该分支开发集成,待测试通过并与应用联调后再利用分支归并功能,将程序归并到集成分支,既达到了程序控制的目的,又不影响开发进度,有效的提高了开发效率。这一分支方式说明了通过科学管理可以出效率。
2、为了方便管理,建立链接分支
平台分支和集成分支应用一段时间后,又出现了新的问题,平台的变更,需要通过应用程序进行测试。但是,系统平台分支上的应用程序不能时时更新,除非将集成分支的应用合并到平台分支,这样给管理带来许多麻烦,为了解决该问题,利用FireflyV3.0版本中提供的链接功能,在系统分支上创建了链接,链接到集成分支的应用部分,这样,平台分支可以随时得到应用系统变更的文件,大大方便了测试版本的制作。(图5链接点)。
开发过程中系统分支和应用集成分支以及链接的应用,使平台开发和应用开发可以有序进行,消除了平台变更对应用开发带来的影响,促进了开发进度,有效地控制了平台和应用的变更,为开发阶段版本管理和控制起到了很好的作用。
javascript:return big(this)" hspace=0 src="https://www.ltesting.net/attachments/2009/06/54376_200906290954375V3sh.gif" onload="javascript:if(this.width>498)this.style.width=498;" align=baseline border=0>
图5 链接点
3、为发布产品,启用主干分支
在项目开发阶段基本结束,进入产品发布阶段后,除了建立产品基线外,启用了主干分支为发布分支,集成分支上测试通过的程序,及时合并到发布分支制作发布版本。在产品发布初期,用户和试生产发现问题比较多,程序变更频繁,每周要集成一个新版本,为了标示不同时间编译的版本,除了版本号之外,附加了BuildNumber来标示,如图4所示的标签。
六、依据测试阶段,集成软件版本
从软件工程化和保证产品质量出发,软件测试采用三级测试方式:单元测试、集成测试和生产性测试(试生产),由于项目开发时间紧,不能一级测试结束,再开始下一级测试,而均采用滚动开发测试方式进行,多数情况下是同时进行,这给版本控制和集成带来很大困难,为此,建立了三种集成环境。三个版本的版本控制和集成是通过分支、测试基线、分支合并来完成。
1、单元测试
单元测试由开发人员在相对稳定的系统开发平台上进行,其中,相对稳定的系统平台需要集成一个系统平台版本。
2、集成测试
集成测试是将各个子系统组成一个可运行系统的重要阶段。由于一体化软件是系统平台与应用系统几乎同时开发的项目,系统平台内部、应用系统内部,以及平台与应用之间的组装都需在集成测试阶段完成。
3、生产测试
生产测试要求集成测试后比较稳定的版本,该版本利用标签进行标示。
4、版本回溯
在测试中,经常出现新修改的程序版本有问题,需要回溯到上一个版本,这是,使用配置管理系统提供的版本管理功能非常方便地回到任意一个程序版本。
七、完善和改进配置管理体系
在两年来的开发管理和版本控制中,有成功也有教训,最初使用配置管理系统时,对其功能和使用方式不熟悉,出现了许多问题,对项目开发产生了一些影响,一度出现了放弃配置管理工具的念头,最终在各方面人员的支持下,使得配置管理系统得以继续在管理中发挥作用。
1、改进管理层次
在系统集成阶段使用配置管理系统进行版本控制,解决了许多问题,促进了开发效率,为项目按期完成提供了有利保证。但是,在管理层次中,开发人员的开发活动没有纳入统一的控制之中,这种方式容易造成修改的版本不是最终版本问题。
针对上述现象和两年来的使用经验,在项目开发进入一个新的阶段时(开发2.0版本),将版本控制范围扩大到每一位开发人员,使每个开发人员的开发活动始终处于版本控制之中,管理层次如图6所示。
2、增加子分支
为达到上述目的,子系统配置管理员也应该是分支管理员,为此,在集成分支下创建应用子系统的子分支,子分支分别由子系统配置管理员管理并设置用户权限,进行子系统集成,然后再归并到集成分支。
3、本地工作区
每位开发人员的工作空间都使用与配置管理系统相连的本地工作区,开发活动始终处于受控之中。
八、经验与体会
在版本控制和管理方面的经验主要体现以下几个方面:
1、创建以“版本控制”为中心的大规模软件配置管理体系
对于一体化系统这样前所未有的超大规模、且开发周期仅两年的软件开发项目,如何保证软件开发在有序与受控方式下进行,是项目成功开发要解决的关键问题。
首先,要制定一套体现项目特点的软件配置管理体系,才能使开发处于受控之中。据此,项目组决定引进配置管理系统进行配置管理和版本控制,这也是首次在如此大规模的软件项目中使用配置管理系统。由于是初次使用,基于过去软件开发的经验,结合本项目的特点和软件配置管理的现状,制定了适合本项目的版本控制层次结构(见图1),分支策略和权限控制。
2、依据软件开发的需要,创建配置管理体系
在项目开发过程中,依据每个开发阶段的具体运作实践,对版本控制层次结构和分支策略进行完善与实用化改进。配置管理体系的建立,使开发机构的开发模式逐步迈入工程化开发管理的新时期。
九、结束语
通过两年项目开发实践,许多开发人员对版本控制的概念有了新的认识,从最初的抵触情绪到后来主动要求要使用配置管理系统,基本形成了软件工程化的开发氛围。
两年来,在项目长、各级子项目长和项目部主管领导的支持下,一体化系统配置管理体系得到了有史以来的发展和完善,管理人员和开发人员的观念得到了转变,初步形成了一套适合大规模应用软件项目开发的版本控制与管理体系,积累了比较丰富的技术与管理经验。配置管理体系的建立,增强了开发团队对大规模软件开发的版本控制能力,为开发团队的可持续发展奠定了技术基础,积累了软件财富。
有效地记录并控制软件开发过程产品版本演化进程,是搞好过程控制的基础。软件配置管理体系的有效实施,使软件开发活动合理有序,为进一步搞好软件项目管理和开发管理奠定了基础。建立开发、测试受控库,确定受控基线,对源程序、运行环境进行严格的版本管理与变更控制,确保项目过程产品的一致性、正确性和安全性,有效地降低了开发风险,缩短了产品的开发周期。因此,配置管理体系作为开发管理的主要过程之一,对处理、解释一体化系统的开发成功起到了不可替代的作用。
文章来源于领测软件测试网 https://www.ltesting.net/