基于J2EE架构敏捷开发的研究
2017-05-18欧利松
欧利松,徐 毅
(大连民族大学 理学院,辽宁 大连 116600)
基于J2EE架构敏捷开发的研究
欧利松,徐 毅
(大连民族大学 理学院,辽宁 大连 116600)
针对互联网项目在开发过程中的一系列繁琐问题,采用快速响应的敏捷开发模式,搭建敏捷开发平台,解决自动化与持续集成的问题。实践表明,基于J2EE 架构敏捷开发不仅提升软件的质量,而且降低项目开发的成本,具有较高的可行性和应用价值。
敏捷开发;持续集成;J2EE 架构
瀑布型的传统开发是以文档驱动的开发方法,要求有详细的项目计划和文档,部署、QA测试和交付过程严谨,不仅集成周期时间长,而且开发成本较高、不易维护。而敏捷方法的优点则体现在能够快速和短周期的迭代开发,强调的是人员在整各开发过程的作用。
本文研究了敏捷开发方法的工作流程以及其特点和优势,引入基于J2EE架构敏捷开发平台,详细阐述了其原理和开发架构,并在此平台上进行实践研究。
1 敏捷开发方法
敏捷开发强调个人与交互重于开发过程与工具:以人为核心,团队的交流、反馈和协作重要性高于工具和方法,从而提高工作效率;它强调可用的软件重于复杂的文档:面面俱到的文档既不满足客户的需求,也不能代表软件可用性,而软件开发的主要任务是创建可以工作的软件,因此要减少对文档的依赖;它强调客户的合作重于合同谈判:迅捷开发方法利用短期迭代,寻求客户沟通交流并响应,避免出现后期合同谈判时对双方均不利的局面;它强调响应变化重于遵循计划:软件开发应有“适应性”而不是“预设性”,对变化进行响应的价值胜于始终遵循固定的计 。敏捷开发工作流程如图1所示。
图1 敏捷开发流程
敏捷方法指快速响应变化的开发模式,主要有:XP(极限编程)、Scrum、Lean Development(精益开发)、ASD(自适应软件开发)、DSDM(动态系统开发方法)等。如何选择一种敏捷方法需要考虑团队的情况、方法的复杂度、工具实用性等因素。敏捷方法正如其本身一样具有可变性,是不断演进的过程。因此,每个采用敏捷开发的团队需要考量诸多因素选择最适合的开发方法。敏捷开发思想不断更新并渗透于软件项目中,而开发平台基于其思想得到良好的运用与实现。
2 敏捷开发平台的实现
敏捷开发平台基于敏捷开发思想与技术工具集成的快速开发应用平台,主要开发J2EE架构模型(Model)、视图(View)、控制器(Controller)模式的Web项目。架构主要由开发环境、源代码仓库、Web服务器等组成,包括由Web浏览器以及应用客户端等组成的客户层;表现层为JSP、Servlet、Javabean等Web容器;业务逻辑层包括实体EJB或消息驱动Bean。敏捷开发平台流程如图2所示。
图2 敏捷开发平台结构
敏捷开发平台充分运用了敏捷开发迭代、循序渐进的思想,如图3所示。首先配置平台开发环境, 如Eclipse所需的JDK及其插件、Struts和Hibernate环境等,从源代码仓库(Subversion)获取新的源代码,这时需要对新代码进行管理以及单元测试,目的就是确保代码能够正常编译运行,并且保证所有单元测试成功,然后将改正的新代码提交到源代码仓库[2]。
图3 敏捷开测试过程
持续集成服务器由Cruise Control、JUnit、Ant及代码检验模块Check Style构成,Cruise Control为持续集成工具,实现对源代码以及管理模块进行检测;Ant 是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,如果代码发生变化,就由Ant通过调用Target树,即可执行各种Task。每个Task实现了特定接口对象,初始化目标目录以及清空初始化环境再而建立新的目录,然后Check Style工具帮助Java开发人员完成代码规范检查,由Check Style检测规范的代码编译源程序生成Target Class,并调用JUnit测试框架进行单元测试。如果上述测试检验全部通过,即可将整个应用打包发布到Web服务器[5]。
3 敏捷开发平台的的应用
3.1 敏捷开发环境的搭建
首先需要集中FTP服务器和SVN服务器。SubVersion服务器用于保存版本代码库以及历史修改记录和开发人员的协同,SVN服务器部署配置完成,客户端在Checkout下就可以与SVN服务器同步。File Transfer Protocol Server适用文件传输以及文件存储达到信息共享的目的,并且可以在预览服务器进行预览。
后台环境由Eclipse、Tomcat插件或者Jetty对 Class、JSP的调试;由Maven集中管理Jar包,Ant则负责本地打包以及对包的拷贝,Tomcat插件快速部署进行开发。最后把分支版本在上述环境中进行集成测试。
测试环境同样依赖集成测试、集成环境的同一套Jar包,并且Nexus 、Maven、Tomcat服务器发挥了不可缺少的作用。整个过程中,需求阶段需要验收与确认的验收测试,规格说明需要系统测试,概要设计需要集成测试,详细设计需要单元测试,一系列测试通过后即可发布到外网。
3.2 测试体系架构
敏捷开发框架是基于SOA的软件开发模式设计并基于J2EE技术实现的应用程序开发框架。该系统综合利用了ESB技术、EIP设计模式、IOC模式、构件设计、管理、组装技术以及数据集成和数据交换等关键技术,具有良好的与其他软件开发管理系统接口的能力[4]。
图4 测试系统架构
该系统支持集中与分布式部署,内置高性能均衡服务器;工具类使用Mantis做Bug Tracker,Git做版本控制,Enkins做发布,Review Board做Code review;Selenium做网页自动测试,Atrium做Wiki。基于敏捷开发平台的继承者,敏捷开发思想作用于开发人员,提供快速迭代的运行平台,该工具方便便捷,开发者专注于研发过程,用户也得到很好的体验。基于敏捷开发平台开发的应用程序不仅持续集成,而且灵活性、松散耦合、可重构的系统需求也得到较好的满足。
3.3 持续集成
在敏捷开发中,持续集成是整个流程的关键。持续集成是前期开发周期中团队成员进行持续不断地进行集成与反馈,目的是为了避免在后期开发时再发现Bug导致难以修改。该敏捷开发平台在持续集成模块中不断的编译测试,在开发过程不断得到反馈最终形成一个可用版本。
持续集成周期的流程:首先持续集成服务器对源码库进行监视,并持续的从版本控制服务器检测代码更新状态;如若有代码更新,集成服务器对进行自动化编译与单元测试;安装部署可执行文件验证测试,最后进行代码分析,产生可执行的软件提供给测试人员进行测试[6]。
持续集成的核心思想是切分任务,缩短每次迭代的间隔(对应的是细小任务,同时也是对应的细小时间),然后持续集成的必要条件是要用自动化的方式替代重复劳动,包括测试、部署、分析等。CruiseControl架了集成环境,其中包括自动发布、自动升级、日单元测试、每日日代码检查的机制,浪费在Build、FTP上传和Run Unit Test的时间大幅缩小。
4 结束语
敏捷开发方法不仅应用于很多互联网公司的开发,而且已渗透入其它行业运作模式。而一个互联网项目的敏捷开发,需要完善的敏捷开发基础,涉及软件开发的分析、设计、实现和测试等一系列过程,还需要对应的基础平台、项目管理以及开发辅助工具才能构成一个完整的开发体系。基于J2EE 架构敏捷开发架构,不仅能实现代码规范、测试驱动并发,而且测试自动化、持续集成,大幅提高了工作效率与软件质量。但在测试自动化方面仍需进一步研究。
[1] Craig Larman.敏捷迭代开发管理者指南[M].北京:中国电力出版社,2004.
[2] Robert C Martin.敏捷软件开发:原则、模式与实践[M].北京:清华大学出版社,2003.
[3] 戴建国,郭理,曹传东.JUnit 框架剖析[J]. 计算机与数字工程,2008,36(8):43-45.
[4] 赵强.基于开源软件的J2EE企业级应用开发[M].北京:电子工业出版社,2007.
[5] 肖卓程,荆金华.持续集成在 Evain中的实现[J].计算机工程与设计,2006,27(14):2362-2364.
[6] 秦保华,张永进,孙毅.基于 MVC 设计模式和 J2EE 架构的 Web 信息系统框架研究[J].电子信息工程,2006(9):151-157.
[7] Willian C Wake.重构手册[M].北京:中国电力出版社,2004.
[8] Martin Fowler.重构:改善既有代码的设计[M].北京:中国电力出版社,2004.
[9] Wisly R F.Anne mette jonassen hass, configuration management principles and[M].NY,USA:Practice Addison Wesley Professional, 2003.
[10] 王庆育.软件工程[M].北京:清华大学出版社,2004.
[11] Paul M Duvall,Steeve Matyas,Andrew Glover.持续集成软件质量改进和风险降低之道[M].北京:机械工业出版社,2008.
[12] Kent Beck.测试驱动开发[M].北京:中国电力出版社,2004.
欢迎订阅《电子科技》
邮发代号:52-246
Research on Agile Development Based on the J2EE Architecture
OU Lisong,XU Yi
(School of Science, Dalian Minzu University, Dalian 116600, China)
For the internet project in the development process of a series of tedious problems, the rapid response agile development model is adopted to build an agile development platform for automation and continuous integration. Practice shows that agile development based on J2EE architecture not only improves the quality of the software, but also reduces the cost of project development.
agile development; continuous integration; J2EE architecture
2016- 06- 05
欧利松(1992-),男,硕士研究生。研究方向:人脸识别。
10.16180/j.cnki.issn1007-7820.2017.05.044
TP311.52
A
1007-7820(2017)05-162-03