企业级应用开拓中的JAVA开源项目
当前位置:以往代写 > JAVA 教程 >企业级应用开拓中的JAVA开源项目
2019-06-14

企业级应用开拓中的JAVA开源项目

企业级应用开拓中的JAVA开源项目

副标题#e#

对付今朝企业应用开拓竞争日益剧烈,需求改观频繁,各个系统集成商都面对庞大的保留压力。个中有两个方面表示尤其突出: 没有统一的软件开拓进程可能照搬重量级的软件开拓进程,譬喻RUP等,可是往往由于时间等压力的影响,并不能切实执行;大部门企业仍然没有挣出手事情坊期间的做法,每个项目可能产物由于打点人员可能团队的差异,从头设计系统框架,挥霍大量的时间在布局验证与调解上。

企业应用系统的开拓中,需求的改观是项目中独一稳定的对象,并且,为了保持开拓的一致性和洽处最大化,系统集成商需要与客户保持恒久的相助。因此,采纳演进式火速软件开拓,可以更好的担保项目质量。在所有的火速软件开拓要领中,XP是今朝应用最为遍及的一种。它是一种高度动态的进程,它通过很是短的迭代周期来应对需求的变革;相同、简朴、反馈和勇气是它的四大焦点代价。同时,它会合了业界的许多最佳实践,今朝已经有18条之多,XP强调通过严格执行全部的最佳实践来得到"极限"结果。

同时,出于复用和效率的思量,尤其是对付系统集成商,企业应用系统应该具有本身的框架和布局。拥有具有精采机能、颠末项目验证的系统框架,团结有效的软件开拓进程,系统集成商可以快速、乐成地开拓企业应用系统。

为了更好的开拓乐成的系统,系统集成商们可以试着从以下两个方面着手办理问题: 团结开源东西的支持,在组织内部实施"火速软件开拓要领";为焦点业务规模成立机动、有效的Framework。

由于今朝许多企业应用是回收基于J2EE技能的网络应用措施开拓,因此,下面主要先容基于JAVA的开源项目、东西的应用。

1、开源东西与XP

XP的12条最佳实践,对付所有的企业应用开拓商而言,由于组织和文化的差异,不行能全部应用,可是,下面几个实践是有条件慢慢实施的:

代码类型:CODE STANDARD

测试驱动开拓:TEST-DRIVEN DEVELOPMENT

日构建:DAILY BUILDING

一连集成:CONTINUOUS INTEGRATION

小步宣布:SMALL RELEASE

逐日晨会:DAILY MEETING

每周40小时事情:40-HOURS A WEEK

个中,CODE STANDARD和TDD是CONTINUOUS INTEGRATION、DAILY BUILDING和SMALL RELEASE的基本;而DAILY MEETING和40-HOURS A WORK是单独的实践进程,可以与其他的实践想团结,加强项目小组的相同,引发士气。

需要说明的是以上最佳实践并非XP所独占,而是被最多的软件开拓要领所应用,个中"日构建"就在微软的软件开拓要领中正式呈现过。

1)代码类型

固然大部门的企业在必然水平上奉行代码尺度与类型,并且对付利用JAVA的应用措施开拓,也有SUN的推荐编码类型,可是,实际的环境并不抱负。

主要的原因在于:一方面,开拓人员的习惯势力很大;另一方面,代码审查的力度不足。假如可以或许借助东西,从必然水平上辅佐举办代码尺度的执行环境查抄,那么代码审查就可以着重查抄措施的逻辑和机能等方面。

开源产物CheckStyle (http://sourceforge.net/projects/checkstyle) 可以辅佐开拓组织办理代码尺度审查的问题。

今朝的最新版本为3.0,它提供了两种运行方法:一种是呼吁行;一种是与Ant团结(Ant自1.5今后提供的OPTIONAL TASKS中有对付CheckStyle的支持)。同时,SourceForge中有对付JBuilder等风行IDE的插件支持,可以界说Global、Project级别上的属性文件, 可是,今朝只是支持2.42版本。

在3.x版本之前,CheckStyle的设置信息写在Property File中;而在3.x之后,设置信息为XML文件,设置越发机动。3.0的宣布版本中提供了针对Sun Code Conventions的特定Check File,可以参考利用。

发起执行环境:

手动执行:开拓人员在IDE中手动触发CheckStyle查抄可能代码审查时由审查者手动执行;

自动执行:将CheckStyle与源码节制系统(CVS)团结,在源码Checkin的时候举举措则判定,假如不切合,则不答允代码进入系统。


#p#副标题#e#

2)测试驱动开拓

测试先行可能测试驱动是XP的根基实践之一,同时测试在软件开拓中的重要浸染正越来越获得人们的重视。审查和测试作为系统确认和验证的有效方法,是项目质量担保的重要法子。

下面凭据一般的测试分类,先容各个规模内的开源测试东西:

单位测试:JUnit (http://www.junit.org)

JUnit是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression testing framework),用于Java开拓人员编写单位测试之用。下面先容的开源测试东西,许多都是对付JUnit的扩展。

它今朝的版本为3.7,为编写单位测试提供了主要的接口。今朝主流的IDE都提供了对付JUnit的支持。

XP强调测试先行,尤其重视单位测试。系统集成商需要通过软件开拓进程的执行,来强化JUnit的利用。

#p#分页标题#e#

今朝许多贸易测试软件都提供了与JUnit的连系利用,譬喻得到1999和2000年Jolt测试类东西亚军和出产率大奖的Jtest (ParaSoft公司产物,内置200余条编码类型,提供Java代码静态和动态查抄,同时还可以自动生成简朴的测试用例等等)就可以导入和导出JUnit的测试用例。

集成与成果测试:HttpUnit (http://unit.sourceforge.net) & Cactus(http://jakarta.apache.org/cactus/)

HttpUnit是一套通过HTTP毗连测试Web应用措施的Java类。在团结JUnit的环境下,HttpUnit可以作为一种建设测试措施的强大东西用来担保Web应用措施正常的端对端成果。

固然JUnit自身就可以通过编写单一类的测试措施对处事器端Java代码举办测试,不外,有了HttpUnit的辅佐,JUnit就可以扩展为模仿Web欣赏器-Web处事器的事情方法对整个Web措施布局举办测试。

Cactus为我们提供了一种测试SERVLET等WEB组件的有效手段。它是JUnit的一个扩展,可是它又和JUnit有一些差异。Cactus的测试分为三种差异的测试种别,JspTestCase, ServletTestCase, FilterTestCase, 而不是像JUnit就一种TestCase。Cactus的测试代码有处事器端和客户端两个部门,他们协同事情。

一般意义上,可以回收Cactus作集成测试;而利用HttpUnit做成果测试。

固然在集成与成果测试方面,有许多优秀的开源东西,可是在实际应用进程中,照旧回收贸易测试软件的较量多,对付巨大应用更是如此。这是因为集成与成果测试大部门照旧由专门的测试人员举办,而他们对付已有的贸易软件,譬喻Rational Robot、E-Test Suite、WinRunner等都较量熟悉,同时贸易软件也提供了更为强大的成果。

压力与机能测试: JMeter (http://jakarta.apache.org/jmeter/)

由于企业应用越来越巨大,用户数量也是越来越多,系统的机能参数以及浩瀚的非成果性需求在开拓中得到了越来越多的重视。因此,许多压力与机能测试东西也开始呈现,这个中有必然影响的是Apache Software Foundation的JMeter。

JMeter是100%的JAVA桌面应用,用来测试系统的负载与机能。它最开始设计是用来测试WEB应用,厥后加以扩展,可以测试Http,FTP,支持JDBC的干系型数据库的机能与压力。同时,JMeter提供必然的定制成果,系统集成商可以自行开拓针对EJB、CORBA可能SOAP的插件。

压力与机能测试方面,由于测试较量巨大,实际企业应用测试中,也是回收贸易测试软件较量多,譬喻LoadRunner、JProbe Suite以及与JBuilder8 同步宣布的OptimizerIT;

3)日构建

在软件开拓的规模里有各类百般的"最佳实践",它们常常被人们谈起,可是好像很少有真正获得实现的。这些实践最根基、最有代价的就是:都有一个完全自动化的建设、测试进程,让开拓团队可以天天多次建设他们的软件。

"日建设"也是人们常常接头的一个概念,McConnell在他的《快速软件开拓》中将日建设作为一个最佳实践来推荐,同时日建设也是微软很着名的一项开拓要领。可是,我们更支持XP社群的概念:日建设只是最低要求。一个完全自动化的进程让你可以天天完成多次建设,这是可以做到的,也是完全值得的。

Ant是Apache Jakarta的一个项目,是"不带 make 缺点的 make"。Ant 正在成为开放源代码世界中实际上的尺度。原因很简朴:Ant是利用 Java 语言编写的,这种语言可以让建设进程在多种平台上利用。

Ant今朝的版本为1.5,它的执行是基于一个XML文件,设置文件由方针树组成。每个方针都包括了要执行的任务,个中任务就是可以执行的代码。在下面给出的例子中,mkdir是方针compile的任务。mkdir是成立在Ant中的一个任务,用于建设目次。Ant 带有一套健全的内置任务,也可以通过扩展 Ant 任务类来添加本身的成果。

Ant内置了对付JUnit、CVS、ClearCase、Visual SourceSafe以及CheckStyle的支持,通过于系统按时成果,譬喻Windows的"任务打算"可能Linux/Unix的"cron",可以很利便的操作Ant来自动完成逐日构建的事情。

#p#副标题#e#

4)一连集成

一连集成是XP的重要实践之一,Martin Fowler在参考文献[6]中有具体的先容,上述实践都是它的基本。

开源项目中有一个著名的东西是用来辅佐实现一连集成的:CruiseControl,其次,今朝尚有一款贸易软件AntHill也为一连集成提供了很好的支持。

CruiseControl (http://cruisecontrol.sourceforge.net/)

#p#分页标题#e#

CruiseControl是著名的ThoughtWorks公司的产物,今朝它的源码已经果真,它是一个一连集成的框架。它包括,可是并不范围于Email通知、Ant以及其他源码节制东西。同时,它还提供了WEB界面来查察当前和过去Build的具体信息。

AntHill (http://www.urbancode.com/projects/anthill/)

AntHill可以确保Build进程受控,同时,辅佐组织内部的常识共享。它在每次Build之前从源码节制系统 (CVS、VisualSourceSafe、ClearCase等)中获取最新的源码,同时在Build完成之后为源码分派一个独一的数字举办标定。同时,它还会在按照Build的环境,更新Intranet的信息。

5)小步宣布

有了以上实践的支持,小步宣布就有了实现的大概。XP强调在很是短的周期内以递增的方法宣布新版本,从而可以很容易地预计每个迭代周期的进度,便于节制事情量和风险;同时,也可以实时处理惩罚用户的反馈。

为了乐成的举办应用系统的版本宣布,需要SCM,尤其是源码节制措施的共同。在开源项目中,CVS (Concurrent Version System)是最著名的版本节制措施。

今朝CVS的版本为1.5.11,它是一个将一组文件放在条理目次树中以保持同步的系统。人们可以从CVS处事器上更新他们的当地条理树副本,并将修改的功效或新文件发回;可能删除旧文件。CVS 基于客户端/处事器的行为使得其可容纳多用户,组成网络也很利便。这一特性使得 CVS 成为位于差异所在的人同时处理惩罚数据文件(出格是措施的源代码)时的首选。所有重要的免费软件项目都利用 CVS 作为其措施员之间的中心点,以便可以或许综合各措施员的改造和变动。

基于多个操纵系统的CVS的客户端软件也许多,个中以WinCVS最为著名。

2、开源项目与Framework:

今朝,对付基于J2EE的应用措施开拓,有许多开源的Framework,譬喻Struts (http://jakarta.apache.org/struts/)、WebWork等,都提供了操作J2EE技能的优秀办理方案。个中,Struts是今朝应用最为遍及和得到存眷最多的框架之一。

Struts今朝的版本为1.1,它是基于Model2的MVC实现框架。Struts的焦点是基于Servlet、JavaBean、ResourceBundles和XML技能的节制层。

尚有许多开源项目为Struts提供支持,譬喻:

设置文件GUI:Struts Console;

Code Generator:Easy Struts;

Unit-Test:StrutsTestCase;

得到2002年JAVA IDE大奖的JBuilder 8更是内置了对付Struts的支持,这也从别的一个侧面浮现了Struts的重要意义。

同时,需要留意的是,Struts自己并没有提供Persistence层的尺度实现,可是,今朝这个方面的办理方案较量多,系统集成开拓商可以按照详细环境加以选择。

假如可以在Struts等Framework的基本上,团结差异业务系统的专业常识,开拓独立的系统平台,系统集成商的项目开拓速度和质量城市有很大的提高。

    关键字:

在线提交作业