版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、JAVA開放源碼項目與工具在企業(yè)應(yīng)用開發(fā)中的運(yùn)用曲俊生內(nèi)容:資深顧問,Ion Global內(nèi)容:2003年5月13日企業(yè)應(yīng)用開發(fā)目前面臨的主要近兩年,開放源碼項目發(fā)展日益壯大,出現(xiàn)了很多有著廣闊用戶群體的項問題目與產(chǎn)品,它們在企業(yè)應(yīng)用開發(fā)中正在發(fā)揮著越來越大的作用。本文以基于J2EE架構(gòu)的企業(yè)應(yīng)用開發(fā)為例,探討了如何在項目中深入運(yùn)用JAVA開放源碼項目現(xiàn)狀 開發(fā)源碼項目與工具。企業(yè)應(yīng)用開發(fā)目前面臨的主要問題JAVA企業(yè)應(yīng)用開發(fā)目前面臨的主要問題JAVA開發(fā)源碼項目與丁具的 應(yīng)用企業(yè)應(yīng)用是指服務(wù)于商業(yè)目的,處理企業(yè)業(yè)務(wù)信息、數(shù)據(jù)的軟件系統(tǒng)。雖然隨著dot結(jié)論COM熱潮逐漸冷卻,企業(yè)開始謹(jǐn)慎考慮自
2、己在應(yīng)用系統(tǒng)開發(fā)方面的投入,但是畢竟企業(yè)的業(yè)務(wù)流程需要專門的信息系統(tǒng)處理,從而提高自動化程度、減少中間環(huán)節(jié)、參考資料加快信息處理速度。因此,目前國內(nèi)的企業(yè)應(yīng)用項目開發(fā)還是日益火爆,尤其在電關(guān)于作者子政務(wù)、CRM、SCM等領(lǐng)域更是如此。關(guān)于作者但是,不論企業(yè)應(yīng)用開發(fā)是采用自行開發(fā)或者委托系統(tǒng)集成商進(jìn)行開發(fā),都存在著對本文的評價 下面一些情況:大部分項目超時或者超出預(yù)算;項目在部署以后BUG很多,而且修改的周期比較長;訂develdeveloperWorks 時事通訊3.4.沒有統(tǒng)一的FRAMEWORK,每個項目都會重新設(shè)計ARCHITECTURE;3.4.項目開發(fā)過程的自動化程度和重復(fù)步驟不是很
3、多,人為引入的BUG很多;開放源碼項目現(xiàn)狀開放源碼運(yùn)動在90年代開始日益發(fā)展,目前已經(jīng)成為軟件業(yè)內(nèi)不可低估的一股勢力,比較著名的有Linux,、Apache、Tomcat、MySQL等。目前,開放源碼的潮流已經(jīng)超出了操作系統(tǒng)、數(shù)據(jù)庫管 理系統(tǒng)和WEB服務(wù)器等系統(tǒng)開發(fā)領(lǐng)域,開發(fā)在企業(yè)應(yīng)用開發(fā)中尋找新的領(lǐng)地。尤其是對于企業(yè)應(yīng)用開發(fā)的框架和 CASE工具,開放源碼項目都有很優(yōu)秀的解決方案。國外開放源碼項目的集中地有www apache org以及wwwsourceforgenet,其中,前者為大家奉獻(xiàn)了著名的Apache、Tomcat、Struts、Axis;而后者是最著名的開源項目中心。同時,國內(nèi)
4、自90年代末開始也有很多人投入 到開源項目的開發(fā),比較集中的網(wǎng)址是共創(chuàng)軟件聯(lián)盟()等等,他們除了提供各種CASE工具 以外,還有一些項目是專注于特定領(lǐng)域的解決方案開發(fā),如CRM等。JAVA開發(fā)源碼項目與工具的應(yīng)用對于目前企業(yè)應(yīng)用開發(fā)競爭日益激烈,需求變更頻繁,各個系統(tǒng)集成商都面臨巨大的生存壓力。其中有兩個方面表 現(xiàn)尤其突出:沒有統(tǒng)一的軟件開發(fā)過程或者照搬重量級的軟件開發(fā)過程,例如RUP等,但是往往由于時間等壓力的影 響,并不能切實執(zhí)行;大部分企業(yè)仍然沒有擺脫手工作坊期間的做法,每個項目或者產(chǎn)品由于管理人員或者團(tuán)隊的不同,重新設(shè) 計系統(tǒng)框架,浪費大量的時間在結(jié)構(gòu)驗證與調(diào)整上;企業(yè)應(yīng)用系統(tǒng)的開發(fā)中
5、,需求的變更是項目中唯一不變的東西,而且,為了保持開發(fā)的一致性和利益最大化,系統(tǒng) 集成商需要與客戶保持長期的合作。因此,采取演進(jìn)式敏捷軟件開發(fā),可以更好的保證項目質(zhì)量。在所有的敏捷軟 件開發(fā)方法中,XP是目前應(yīng)用最為廣泛的一種。它是一種高度動態(tài)的過程,它通過非常短的迭代周期來應(yīng)對需求 的變化;溝通、簡單、反饋和勇氣是它的四大核心價值。同時,它集中了業(yè)界的很多最佳實踐,目前已經(jīng)有18條 之多,XP強(qiáng)調(diào)通過嚴(yán)格執(zhí)行全部的最佳實踐來獲得極限效果。同時,出于復(fù)用和效率的考慮,尤其是對于系統(tǒng)集成商,企業(yè)應(yīng)用系統(tǒng)應(yīng)該具有自己的框架和結(jié)構(gòu)。擁有具有良好 性能、經(jīng)過項目驗證的系統(tǒng)框架,結(jié)合有效的軟件開發(fā)過程,
6、系統(tǒng)集成商可以快速、成功地開發(fā)企業(yè)應(yīng)用系統(tǒng)。為了更好的開發(fā)成功的系統(tǒng),系統(tǒng)集成商們可以試著從以下兩個方面著手解決問題:結(jié)合開源工具的支持,在組織內(nèi)部實施敏捷軟件開發(fā)方法;為核心業(yè)務(wù)領(lǐng)域建立靈活、有效的Framework;由于目前很多企業(yè)應(yīng)用是采用基于J2EE技術(shù)的網(wǎng)絡(luò)應(yīng)用程序開發(fā),因此,下面主要介紹基于JAVA的開源項目、 工具的應(yīng)用。1.開源工具與XPXP的12條最佳實踐,對于所有的企業(yè)應(yīng)用開發(fā)商而言,由于組織和文化的不同,不可能全部應(yīng)用,但是,下面幾 個實踐是有條件逐步實施的:代碼規(guī)范:CODE STANDARD測試驅(qū)動開發(fā):TEST-DRIVEN DEVELOPMENT日構(gòu)建:DAILY
7、 BUILDING持續(xù)集成:CONTINUOUS INTEGRATION小步發(fā)布:SMALL RELEASE每日晨會:DAILY MEETING每周40小時工作:40-HOURS A WEEK其中,CODE STANDARD 和 TDD 是 CONTINUOUS INTEGRATION、DAILY BUILDING 和 SMALL RELEASE 的 基礎(chǔ);而DAILY MEETING和40-HOURS A WORK是單獨的實踐過程,可以與其他的實踐想結(jié)合,增強(qiáng)項目小組的溝通,激發(fā)士氣。需要說明的是以上最佳實踐并非XP所獨有,而是被最多的軟件開發(fā)方法所應(yīng)用,其中日構(gòu)建就在微軟的軟件開發(fā) 方法中
8、正式出現(xiàn)過。代碼規(guī)范雖然大部分的企業(yè)在一定程度上推行代碼標(biāo)準(zhǔn)與規(guī)范,而且對于使用JAVA的應(yīng)用程序開發(fā),也有SUN 的推薦編碼規(guī)范,但是,實際的情況并不理想。主要的原因在于:一方面,開發(fā)人員的習(xí)慣勢力很大;另一方面,代碼審查的力度不夠。如果能夠借助工 具,從一定程度上幫助進(jìn)行代碼標(biāo)準(zhǔn)的執(zhí)行情況檢查,那么代碼審查就可以著重檢查程序的邏輯和性能等 方面。開源產(chǎn)品CheckStyle ( HYPERLINK /projects/checkstyle)%e5%8f%af%e4%bb%a5%e5%b8%ae%e5%8a%a9%e5%bc%80%e5%8f%91%e7%bb%84%e7%bb%87%e8%
9、a7%a3%e5%86%b3%e4%bb%a3%e7%a0%81%e6%a0%87%e5%87%86%e5%ae%a1%e6%9f%a5%e7%9a%84 /projects/checkstyle)可以幫助開發(fā)組織解決代碼標(biāo)準(zhǔn)審查的 問題。目前的最新版本為3.0,它提供了兩種運(yùn)行方式:一種是命令行;一種是與Ant結(jié)合(Ant自1.5以后提供 的OPTIONAL TASKS中有對于CheckStyle的支持)。同時,SourceForge中有對于JBuilder等流行IDE 的插件支持,可以定義Global、Project級別上的屬性文件,但是,目前只是支持2.42版本。在3.x版本之前,Che
10、ckStyle的配置信息寫在Property File中;而在3.x之后,配置信息為XML文件, 配置更加靈活。3.0的發(fā)布版本中提供了針對Sun Code Conventions的特定Check File,可以參考使用。建議執(zhí)行情況:o 手動執(zhí)行:開發(fā)人員在IDE中手動觸發(fā)CheckStyle檢查或者代碼審查時由審查者手動執(zhí)行;o自動執(zhí)行:將CheckStyle與源碼控制系統(tǒng)(CVS)結(jié)合,在源碼Checkin的時候進(jìn)行規(guī)則判斷,如果不符合,則不允許代碼進(jìn)入系統(tǒng)。測試驅(qū)動開發(fā)測試先行或者測試驅(qū)動是XP的基本實踐之一,同時測試在軟件開發(fā)中的重要作用正越來越得到人們的重 視。審查和測試作為系統(tǒng)確
11、認(rèn)和驗證的有效方式,是項目質(zhì)量保證的重要措施。下面按照一般的測試分類,介紹各個領(lǐng)域內(nèi)的開源測試工具:o 單元測試:JUnit ( HYPERLINK )JUnit 是由 Erich Gamma 和 Kent Beck 編寫的一個回歸測試框架(regression testing framework),用于Java開發(fā)人員編寫單元測試之用。下面介紹的開源測試工具,很多都是對于 JUnit的擴(kuò)展。它目前的版本為3.7,為編寫單元測試提供了主要的接口。目前主流的IDE都提供了對于JUnit 的支持。XP強(qiáng)調(diào)測試先行,尤其重視單元測試。系統(tǒng)集成商需要通過軟件開發(fā)過程的執(zhí)行,來強(qiáng)化JUnit的使用。目前
12、很多商業(yè)測試軟件都提供了與JUnit的聯(lián)合使用,例如獲得1999和2000年Jolt測試類工具 亞軍和生產(chǎn)率大獎的Jtest (ParaSoft公司產(chǎn)品,內(nèi)置200余條編碼規(guī)范,提供Java代碼靜態(tài)和 動態(tài)檢查,同時還可以自動生成簡單的測試用例等等)就可以導(dǎo)入和導(dǎo)出JUnit的測試用例。o 集成與功能測試: HttpUnit ( HYPERLINK ) & Cactus ( HYPERLINK /cactus/ /cactus/)HttpUnit是一套通過HTTP連接測試Web應(yīng)用程序的Java類。在結(jié)合JUnit的情況下,HttpUnit 可以作為一種創(chuàng)建測試程序的強(qiáng)大工具用來保證Web應(yīng)用
13、程序正常的端對端功能。雖然JUnit自身就可以通過編寫單一類的測試程序?qū)Ψ?wù)器端Java代碼進(jìn)行測試,不過,有了 HttpUnit的幫助,JUnit就可以擴(kuò)展為模擬Web瀏覽器-Web服務(wù)器的工作方式對整個Web程序 結(jié)構(gòu)進(jìn)行測試。Cactus為我們提供了一種測試SERVLET等WEB組件的有效手段。它是JUnit的一個擴(kuò)展,但 是它又和JUnit有一些不同。Cactus的測試分為三種不同的測試類別,JspTestCase, ServletTestCase,F(xiàn)ilterTestCase,而不是像 JUnit 就一種 TestCase。Cactus 的測試代碼有服 務(wù)器端和客戶端兩個部分,他們協(xié)
14、同工作。一般意義上,可以采用Cactus作集成測試;而使用HttpUnit做功能測試。雖然在集成與功能測試方面,有很多優(yōu)秀的開源工具,但是在實際應(yīng)用過程中,還是采用商業(yè)測 試軟件的比較多,對于復(fù)雜應(yīng)用更是如此。這是因為集成與功能測試大部分還是由專門的測試人 員進(jìn)行,而他們對于已有的商業(yè)軟件,例如Rational Robot、E-Test Suite、WinRunner等都比 較熟悉,同時商業(yè)軟件也提供了更為強(qiáng)大的功能。o 壓力與性能測試: JMeter ( HYPERLINK /jmeter/ /jmeter/)由于企業(yè)應(yīng)用越來越復(fù)雜,用戶數(shù)量也是越來越多,系統(tǒng)的性能參數(shù)以及眾多的非功能性需求
15、在 開發(fā)中獲得了越來越多的重視。因此,很多壓力與性能測試工具也開始出現(xiàn),這其中有一定影響 的是 Apache Software Foundation 的 JMeter。JMeter是100%的JAVA桌面應(yīng)用,用來測試系統(tǒng)的負(fù)載與性能。它最開始設(shè)計是用來測試WEB 應(yīng)用,后來加以擴(kuò)展,可以測試Http,F(xiàn)TP,支持JDBC的關(guān)系型數(shù)據(jù)庫的性能與壓力。同時, JMeter提供一定的定制功能,系統(tǒng)集成商可以自行開發(fā)針對EJB、CORBA或者SOAP的插件。壓力與性能測試方面,由于測試比較復(fù)雜,實際企業(yè)應(yīng)用測試中,也是采用商業(yè)測試軟件比較多, 例如 LoadRunner、JProbe Suite 以
16、及與 JBuilder8 同步發(fā)布的 OptimizerIT;3.日構(gòu)建在軟件開發(fā)的領(lǐng)域里有各種各樣的最佳實踐,它們經(jīng)常被人們談起,但是似乎很少有真正得到實現(xiàn)的。 這些實踐最基本、最有價值的就是:都有一個完全自動化的創(chuàng)建、測試過程,讓開發(fā)團(tuán)隊可以每天多次創(chuàng) 建他們的軟件。日創(chuàng)建也是人們經(jīng)常討論的一個觀點,McConnell在他的快速軟件開發(fā)中將日創(chuàng)建作為一個最佳實 踐來推薦,同時日創(chuàng)建也是微軟很出名的一項開發(fā)方法。但是,我們更支持XP社群的觀點:日創(chuàng)建只是 最低要求。一個完全自動化的過程讓你可以每天完成多次創(chuàng)建,這是可以做到的,也是完全值得的。Ant是Apache Jakarta的一個項目,是
17、不帶make缺點的make。Ant正在成為開放源代碼世界中實際 上的標(biāo)準(zhǔn)。原因很簡單:Ant是使用Java語言編寫的,這種語言可以讓創(chuàng)建過程在多種平臺上使用。Ant目前的版本為1.5,它的執(zhí)行是基于一個XML文件,配置文件由目標(biāo)樹構(gòu)成。每個目標(biāo)都包含了要執(zhí) 行的任務(wù),其中任務(wù)就是可以執(zhí)行的代碼。在下面給出的例子中,mkdir是目標(biāo)compile的任務(wù)。mkdir是 建立在Ant中的一個任務(wù),用于創(chuàng)建目錄。Ant帶有一套健全的內(nèi)置任務(wù),也可以通過擴(kuò)展Ant任務(wù)類 來添加自己的功能。Ant 內(nèi)置了對于 JUnit、CVS、ClearCase、Visual SourceSafe 以及 CheckSt
18、yle 的支持,通過于系統(tǒng)定時 功能,例如Windows的任務(wù)計劃”或者Linux/Unix的cron”,可以很方便的利用Ant來自動完成每日構(gòu)建 的工作。4.持續(xù)集成4.持續(xù)集成是XP的重要實踐之一,Martin Fowler在參考文獻(xiàn)6中有詳細(xì)的介紹,上述實踐都是它的基礎(chǔ)。開源項目中有一個著名的工具是用來幫助實現(xiàn)持續(xù)集成的:CruiseControl,其次,目前還有一款商業(yè)軟件 AntHill也為持續(xù)集成提供了很好的支持。o CruiseControl ( HYPERLINK / /)CruiseControl是著名的ThoughtWorks公司的產(chǎn)品,目前它的源碼已經(jīng)公開,它是一個持續(xù)集
19、成 的框架。它包含,但是并不局限于Email通知、Ant以及其他源碼控制工具。同時,它還提供了 WEB界面來查看當(dāng)前和已往Build的詳細(xì)信息。o AntHill ( HYPERLINK /projects/anthill/ /projects/anthill/)AntHill可以確保Build過程受控,同時,幫助組織內(nèi)部的知識共享。它在每次Build之前從源碼 控制系統(tǒng)(CVS、VisualSourceSafe、ClearCase等)中獲取最新的源碼,同時在Build完成之 后為源碼分配一個唯一的數(shù)字進(jìn)行標(biāo)定。同時,它還會在根據(jù)Build的情況,更新Intranet的信 息。5.小步發(fā)布有了
20、以上實踐的支持,小步發(fā)布就有了實現(xiàn)的可能。XP強(qiáng)調(diào)在非常短的周期內(nèi)以遞增的方式發(fā)布新版本, 從而可以很容易地估計每個迭代周期的進(jìn)度,便于控制工作量和風(fēng)險;同時,也可以及時處理用戶的反饋。為了成功的進(jìn)行應(yīng)用系統(tǒng)的版本發(fā)布,需要SCM,尤其是源碼控制程序的配合。在開源項目中,CVS (Concurrent Version System)是最著名的版本控制程序。目前CVS的版本為1.5.11,它是一個將一組文件放在層次目錄樹中以保持同步的系統(tǒng)。人們可以從CVS 服務(wù)器上更新他們的本地層次樹副本,并將修改的結(jié)果或新文件發(fā)回;或者刪除舊文件。CVS基于客戶端 /服務(wù)器的行為使得其可容納多用戶,構(gòu)成網(wǎng)絡(luò)也
21、很方便。這一特性使得CVS成為位于不同地點的人同時 處理數(shù)據(jù)文件(特別是程序的源代碼)時的首選。所有重要的免費軟件項目都使用CVS作為其程序員之間 的中心點,以便能夠綜合各程序員的改進(jìn)和更改。基于多個操作系統(tǒng)的CVS的客戶端軟件也很多,其中以WinCVS最為著名。2.開源項目與Framework:目前,對于基于J2EE的應(yīng)用程序開發(fā),有很多開源的Framework,例如Struts ( HYPERLINK /struts/ /struts/) WebWork等,都提供了利用J2EE技術(shù)的優(yōu)秀解決方案。其中,Struts是目前應(yīng)用最為廣泛和獲得關(guān)注最多的框架 之一。Struts目前的版本為1.1
22、,它是基于Model2的MVC實現(xiàn)框架。Struts的核心是基于Servlet、JavaBean、 ResourceBundles和XML技術(shù)的控制層。還有很多開源項目為Struts提供支持,例如:配置文件 GUI: Struts Console;Code Generator: Easy Struts;Unit-Test: StrutsTestCase獲得2002年JAVA IDE大獎的JBuilder 8更是內(nèi)置了對于Struts的支持,這也從另外一個側(cè)面體現(xiàn)了 Struts的重 要意義。同時,需要注意的是,Struts本身并沒有提供Persistence層的標(biāo)準(zhǔn)實現(xiàn),但是,目前這個方面的解決方案比較多, 系統(tǒng)集成開發(fā)商可以根據(jù)具體情況加以選擇。如果可以在Struts等Framework的基礎(chǔ)上,結(jié)合不同業(yè)務(wù)系統(tǒng)的專業(yè)知識,開發(fā)獨立的系統(tǒng)平臺,系統(tǒng)集成商的 項
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024服務(wù)合同格式參考
- 2024倉儲服務(wù)合同
- 2024標(biāo)的準(zhǔn)用工合同格式
- 高中學(xué)生宿舍樓選址分析
- 高效農(nóng)業(yè)信息化與智能化應(yīng)用可行性分析
- 2024貨物運(yùn)輸合同書正規(guī)范本
- S-R-R-VH032-CO-C3-CONH-C2-PEG3-OH-生命科學(xué)試劑-MCE
- SNF-9007-生命科學(xué)試劑-MCE
- 三年級數(shù)學(xué)計算題專項練習(xí)匯編及答案集錦
- 《臨床檢驗基礎(chǔ)》血液一般檢驗考試題庫(含答案)
- 中國鐵路國際有限公司招聘考試試卷2022
- 電子政務(wù)概論-形考任務(wù)5(在線測試權(quán)重20%)-國開-參考資料
- 古代小說戲曲專題-形考任務(wù)2-國開-參考資料
- 構(gòu)美-空間形態(tài)設(shè)計學(xué)習(xí)通課后章節(jié)答案期末考試題庫2023年
- 2023年高中學(xué)業(yè)水平合格考試英語詞匯表完整版(復(fù)習(xí)必背)
- 產(chǎn)萬噸高密度聚乙烯聚合工段工藝設(shè)計
- 醫(yī)院關(guān)鍵財務(wù)管理崗位定期輪換與交接制度
- [推薦考試復(fù)習(xí)資料]2020R1快開門式壓力容器操作考試及R1快開門式壓力容器操作實操考試視頻
- 黃豆芽的生長過程
- 計算機(jī)網(wǎng)絡(luò)課程設(shè)計(校園網(wǎng))
- 2021年中國上市公司市值管理研究報告
評論
0/150
提交評論