软件开发过程的持续集成

时间:2024-04-08 点赞:46006 浏览:89338 作者原创标记本站原创

本论文是一篇版本类毕业论文的前言,关于软件开发过程的持续集成相关毕业论文题目范文。免费优秀的关于版本及代码及工具方面论文范文资料,适合版本论文写作的大学硕士及本科毕业论文开题报告范文和学术职称论文参考文献下载。

【摘 要】目前软件开发越来越多采用敏捷开发方式,敏捷开发在软件工程领域中得到广泛应用,如何能在不断变化的需求中快速适应和保证软件的质量也显得尤为重要,持续集成在软件开发的应用能够快速提供版本和完成验证交付.

【关 键 词 】软件开发;持续集成;Jenkins

0.前言

持续集成是一种软件开发实践,对于提高软件开发效率并保障软件开发质量提供了理论基础.本文通过具体实例,介绍了如何借助持续集成工具提高软件生产力.

1.当前公司的版本发布工作

当前各个公司的版本发布工作差异很大,有些公司没有每日编译版本,等到正式发布时发布一下;有些公司则是写一个脚本每天晚上定时编译一下,第二天开发人员就可以使用前一晚上生成的版本;有些公司使用持续集成工具编译版本,代码有更改时就会触发编译;还有些公司根据每日编译的状态触发电子装备,亮红灯或绿灯来显示版本的状态,有些甚至利用发声装备发出导致版本编译失败的代码上传者的名字.

可见各个公司在持续集成方面的投入差异巨大,持续集成投入越多,软件版本交付能力就会越强,软件生产力也就越高.

2.持续集成的核心价值

(1)持续集成中的任何一个环节都是自动完成的无需太多的人工干预,有利于减少重复过程以节省时间、费用和工作量.

(2)持续集成保障了每个时间点上团队成员提交的代码是能成功集成的.换言之,任何时间点都能第一时间发现软件的集成问题,使任意时间发布可部署的软件成为了可能.

(3)持续集成还能利于软件本身的发展趋势,这点在需求不明确或是频繁性变更的情景中尤其重要,持续集成的质量能帮助团队进行有效决策,同时建立团队对开发产品的信心.

3.持续集成的原则包括

(1)需要版本控制软件保障团队成员提交的代码不会导致集成失败.常用的版本控制软件有IBM Rational ClearCase、CVS、SVN等.

(2)开发人员必须及时向版本控制库中提交代码,也必须经常性地从版本控制库中更新代码到本地.

(3)需要有专门的集成服务器来执行集成构建.根据项目的具体实际,集成构建可以被软件的修改来直接触发,也可以定时启动,如每1小时构建一次,还可以由上游项目编译成功后触发.

(4)必须保证构建的成功.如果构建失败,修复构建过程中的错误是优先级最高的工作.一旦修复,需要手动启动一次构建.

4.持续集成工具介绍

4.1持续集成工具主要分两大类,开源的和商用的

(1)开源工具.

CruiseControl、Hudson、LuntBuild

(2)商用工具.

TeamCity、AntHill Pro、Bamboo、QuickBuild

CruiseControl和LuntBuild在持续集成领域进入较早,Hudson作为OpenSource里持续集成的后起之秀,现在已经赶超了这两个前辈,目前恐怕是使用最多的一个CI Server了.国外使用商用的工具多些,而在国内用开源的多些,其中Hudson工具使用较为广泛,现在叫Jenkins,是基于Ja开发的一种持续集成工具,它主要包括:

(1)持续的软件版本发布/测试项目.

(2)监控外部调用执行的工作.

4.2 Jenkins具有以下突出的特点

(1)开源免费,容易安装,只需要执行Ja-jar jenkins.war即可.

(2)容易配置,可以通过友好的webGUI来配置,几乎每个配置都有帮助信息提示.

(3)跨平台,几乎支持所有的平台,例如Windows,Ubuntu/Debian,RedHat/Fedora/CentOS,MacOSX,openSUSE,FreeBSD,OpenBSD,Solaris/OpenIndiana.Gentoo.

(4)master/sle支持分布式的build,jenkins能够分发build/test的负载到多台机器,能够更好地利用硬件资源,提高build的时间.

(5)插件支持,已有200多个插件,可通过第三方的插件来扩展.


(6)Junit/TestNG测试报告,能够很好地显示各种测试的报告,且可以生成失败的趋向图.

5.应用举例

(1)某产品开发部有驱动、软件等小组,各小组的代码是各自管理的,但接口文件是共同的.假如软件小组的某个头文件修改的时候驱动小组也需要同步修改,该文件受软件小组管理,驱动小组需要同步,如果靠人工每天去看对方的头文件是否更改,比较费时,也容易漏掉.如果你使用Jenkins工具新建一线程,专门检测对方的接口文件,当然对方该部分代码需要给对方小组某成员开读权限,当检测到对方头文件有修改时则将该文件check到本地,然后再check自己的代码,将对方的接口文件上传到自己的库里.完成后再触发邮件系统将邮件发送到相关开发人员.这样开发人员能够把更多的精力花在关键事务上.

(2)上传代码到自动化测试一气呵成.某部门开发一套指纹识别项目,开发人员优化该项目时,由于优化过程是持续累积的过程,每天可能都能提高一点,当开发人员将阶段性的成果上传到代码库中,系统按设置的一定时间间隔完成编译并将编译库放到服务器,自动化测试程序也会每隔一定时间去取这个库,并运行程序,并将运行结果直接发送到开发人员工作信箱里.开发人员也能很快速方便地看到自己优化的结果.

6.结语

工欲善其事,必先利其器.软件开发也要借助于提高软件生产力的工具,持续集成工具能够把开发人员从繁琐的代码同步、版本发布、查找编译失败等工作中解脱出来,让开发人员把精力聚焦在核心业务上.

【参考文献】

[1]Jez Humble Did Farley.持续交付发布可靠软件的系统方法[M].北京:人民邮电出版社,2011:50-51.

相关论文

CMMI在汽车电子软件开发过程中的应用

本文是一篇汽车电子论文范文,关于汽车电子类毕业论文开题报告范文,关于CMMI在汽车电子软件开发过程中的应用相关在职研究生毕业论文范文。适。

软件测试在软件开发过程中的应用

本文是一篇软件测试论文范文,软件测试方面有关毕业论文开题报告范文,关于软件测试在软件开发过程中的应用相关研究生毕业论文开题报告范文。。

计算机软件开发过程质量的项目管理

本文是一篇计算机软件论文范文,关于计算机软件方面毕业论文格式范文,关于计算机软件开发过程质量的项目管理相关毕业论文格式范文。适合计算。

基于J2EE平台和构件的软件开发过程

本文是一篇软件开发论文范文,软件开发类毕业论文格式范文,关于基于J2EE平台和构件的软件开发过程相关学士学位论文范文。适合软件开发及数据。

软件开发过程实践

本文是一篇软件开发论文范文,软件开发类毕业论文格式范文,关于软件开发过程实践相关硕士毕业论文范文。适合软件开发及数据库及什么是方面的。

基于软件总线的软件开发方法过程

本文是一篇软件开发论文范文,软件开发类有关毕业论文开题报告,关于基于软件总线的软件开发方法过程相关硕士学位毕业论文范文。适合软件开发。