【IT168 技术文章】
一. 引言:
随着计算机应用范围的日益广泛深入,应用软件的规模及复杂程度日趋大型化、复杂化,这就导致软件开发的方式也从早期的单兵作战式或手工作坊式渐渐转变为集团化、工厂流水线式的团队协作开发方式。在这种开发模式中会遇到一些非常棘手的问题:
1. 需要将整个软件版本恢复到以前的某一时间的状态。
2. 控制某一程序在同一时间只能一个开发人员修改。
3. 限制随意修改程序。
4. 对每个开发人员编写的程序质量进行评估...
如何解决上述问题,管理好项目的每一步运作,成为每一位项目主管亟待解决的课题。
二.在软件开发过程中引入版本控制软件
通过我们的实践,发现在开发过程中采用版本控制软件能较好的解决上述问题。目前,一些版本控制软件能够与各种流行的开发工具进行无缝的连接,它们有机地结合在一起,能够完整地保存开发中对应用程序每一个源文件所有的修改记录,因此充分地利用版本控制软件能够对软件开发进行卓有成效的管理,其具体表现有以下几个方面。
1. 随时将程序回复到以前某一时间点
版本控制软件可以将某一程序恢复到以前的某一时间的状态,甚至将整个软件版本恢复到以前的某一时间的状态。它能比较程序的不同版本,方便地识别出被修改、删除或插入的具体行,可以将两个不同版本的修改合并到一个新文件中,如果一段重要的代码被删除了,它可以迅速恢复这段代码。
2. 实现程序的互斥性修改
版本控制软件能够实现某一程序在同一时间只能一个开发人员修改。其具体实现方式是:需要修改程序的开发人员从源文件存放处提出(Chink-out)一个程序,这时其他开发人员就不可以再Chink-out同一个程序了,只有当第一个开发人员修改测试完成后,将更新版本的代码做放入(Chink-in)操作,其他开发人员才能Chink-out同一个程序。
当然,如果有必要,现在有些版本控制软件也可以配置成允许多人修改,即同时Chink-out同一个程序,最后可以将不同版本的修改合并到一个新程序中。
3. 对程序修改进行有效的管理
在版本控制软件中可以将用户分为管理员和程序员两种角色,只有管理员可以将程序冻结(Freeze)和解冻(Unfreeze),被冻结的程序是不允许修改的。修改程序的流程为:
(1) 用户提交需求书,程序员提交程序设计说明书,项目主管审核通过后,管理员将程序解冻。
(2) 由程序员Chink-out程序。
(3) 程序员修改程序。
(4) 修改完成后程序员提交测试请求给测试小组,测试小组进行测试;如果测试不通过,转向第(3)步。
(5) 测试通过以后程序员填写本次修改解释,然后Chink-in程序。
(6)管理员将程序冻结。
至此完成一次程序的修改。在软件开发后期或者软件正式投入使用时,这种方式对保证软件的稳定运行能起到非常重要的作用。
4. 将开发环境与测试环境、运行环境进行有效的隔离
比较大型的软件开发项目都有专门的测试小组。采用版本控制软件后,开发人员有自己单独的开发环境,测试人员有自己的测试环境,其具体实现方法见第三部分的说明。
项目进行到一定阶段,可随时用版本控制软件生成一个新的版本,投入运行。生成运行版本时可以选择丢弃以前所有的修改记录。
5. 评估软件开发人员编写的程序质量,控制软件开发的进度。
版本控制软件完整地保存开发中对应用程序每一个源文件所有的修改记录,这些记录包括完成修改程序的开发人员,修改的时间,所进行的具体修改以及对本次修改的解释。项目主管通过调阅这些记录,对程序修改的次数,修改原因和修改情况进行统计,就能够对每一个程序员编写的程序质量进行综合评估。这些记录还能使项目主管对整个项目的进度,程序的编写修改情况有一个整体的了解。
6. 管理文档
版本控制软件不仅为各种开发软件提供了存放对象的接口,还能存放任意类型的文件,这样我们可以在版本控制软件中建立专门的文件夹,用来存放软件开发过程中生成的各种文档,对于每个文档可以存放它的多个版本,供随时查阅。