国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

JAVA開放源碼項目與工具在企業(yè)應用開發(fā)中的運用

2019-11-18 13:07:17
字體:
來源:轉載
供稿:網(wǎng)友

  近兩年,開放源碼項目發(fā)展日益壯大,出現(xiàn)了很多有著廣闊用戶群體的項目與產(chǎn)品,它們在企業(yè)應用開發(fā)中正在發(fā)揮著越來越大的作用。本文以基于J2EE架構的企業(yè)應用開發(fā)為例,探討了如何在項目中深入運用java開發(fā)源碼項目與工具。
  
  一.企業(yè)應用開發(fā)目前面臨的主要問題
  企業(yè)應用是指服務于商業(yè)目的,處理企業(yè)業(yè)務信息、數(shù)據(jù)的軟件系統(tǒng)。雖然隨著dot COM熱潮逐漸冷卻,企業(yè)開始謹慎考慮自己在應用系統(tǒng)開發(fā)方面的投入,但是究竟企業(yè)的業(yè)務流程需要專門的信息系統(tǒng)處理,從而提高自動化程度、減少中間環(huán)節(jié)、加快信息處理速度。因此,目前國內的企業(yè)應用項目開發(fā)還是日益火爆,尤其在電子政務、CRM、SCM等領域更是如此。
  
  但是,不論企業(yè)應用開發(fā)是采用自行開發(fā)或者委托系統(tǒng)集成商進行開發(fā),都存在著下面一些情況:
  
  大部分項目超時或者超出預算;
  項目在部署以后BUG很多,而且修改的周期比較長;
  對于系統(tǒng)集成商來說,下面的情況更是比較普遍:
  
  沒有統(tǒng)一的FRAMEWORK,每個項目都會重新設計ARCHITECTURE;
  項目開發(fā)過程的自動化程度和重復步驟不是很多,人為引入的BUG很多;
  
  二.開放源碼項目現(xiàn)狀
  開放源碼運動在90年代開始日益發(fā)展,目前已經(jīng)成為軟件業(yè)內不可低估的一股勢力,比較聞名的有linux,、Apache、Tomcat、MySQL等。目前,開放源碼的潮流已經(jīng)超出了操作系統(tǒng)數(shù)據(jù)庫治理系統(tǒng)和WEB服務器等系統(tǒng)開發(fā)領域,開發(fā)在企業(yè)應用開發(fā)中尋找新的領地。尤其是對于企業(yè)應用開發(fā)的框架和CASE工具,開放源碼項目都有很優(yōu)秀的解決方案。
  
  國外開放源碼項目的集中地有www.apache.org以及www.sourceforge.net,其中,前者為大家奉獻了聞名的Apache、Tomcat、Struts、Axis;而后者是最聞名的開源項目中心。同時,國內自90年代末開始也有很多人投入到開源項目的開發(fā),比較集中的網(wǎng)址是 "共創(chuàng)軟件聯(lián)盟"(www.cosoft.org.cn) 等等,他們除了提供各種CASE工具以外,還有一些項目是專注于特定領域的解決方案開發(fā),如CRM等。
  
  三.JAVA開發(fā)源碼項目與工具的應用
  對于目前企業(yè)應用開發(fā)競爭日益激烈,需求變更頻繁,各個系統(tǒng)集成商都面臨巨大的生存壓力。其中有兩個方面表現(xiàn)尤其突出:
  
  沒有統(tǒng)一的軟件開發(fā)過程或者照搬重量級的軟件開發(fā)過程,例如RUP等,但是往往由于時間等壓力的影響,并不能切實執(zhí)行;
  大部分企業(yè)仍然沒有擺脫手工作坊期間的做法,每個項目或者產(chǎn)品由于治理人員或者團隊的不同,重新設計系統(tǒng)框架,浪費大量的時間在結構驗證與調整上;
  企業(yè)應用系統(tǒng)的開發(fā)中,需求的變更是項目中唯一不變的東西,而且,為了保持開發(fā)的一致性和利益最大化,系統(tǒng)集成商需要與客戶保持長期的合作。因此,采取演進式靈敏軟件開發(fā),可以更好的保證項目質量。在所有的靈敏軟件開發(fā)方法中,XP是目前應用最為廣泛的一種。它是一種高度動態(tài)的過程,它通過非常短的迭代周期來應對需求的變化;溝通、簡單、反饋和勇氣是它的四大核心價值。同時,它集中了業(yè)界的很多最佳實踐,目前已經(jīng)有18條之多,XP強調通過嚴格執(zhí)行全部的最佳實踐來獲得"極限"效果。
  
  同時,出于復用和效率的考慮,尤其是對于系統(tǒng)集成商,企業(yè)應用系統(tǒng)應該具有自己的框架和結構。擁有具有良好性能、經(jīng)過項目驗證的系統(tǒng)框架,結合有效的軟件開發(fā)過程,系統(tǒng)集成商可以快速、成功地開發(fā)企業(yè)應用系統(tǒng)。
  
  為了更好的開發(fā)成功的系統(tǒng),系統(tǒng)集成商們可以試著從以下兩個方面著手解決問題:
  
  結合開源工具的支持,在組織內部實施"靈敏軟件開發(fā)方法";
  為核心業(yè)務領域建立靈活、有效的Framework;
  由于目前很多企業(yè)應用是采用基于J2EE技術的網(wǎng)絡應用程序開發(fā),因此,下面主要介紹基于JAVA的開源項目、工具的應用。
  
  開源工具與XP
  XP的12條最佳實踐,對于所有的企業(yè)應用開發(fā)商而言,由于組織和文化的不同,不可能全部應用,但是,下面幾個實踐是有條件逐步實施的:
  
  代碼規(guī)范:CODE STANDARD
  測試驅動開發(fā):TEST-DRIVEN DEVELOPMENT
  日構建:DAILY BUILDING
  持續(xù)集成:CONTINUOUS INTEGRATION
  小步發(fā)布:SMALL RELEASE
  每日晨會:DAILY MEETING
  每周40小時工作:40-HOURS A WEEK
  其中,CODE STANDARD和TDD是CONTINUOUS INTEGRATION、DAILY BUILDING和SMALL RELEASE的基礎;而DAILY MEETING和40-HOURS A WORK是單獨的實踐過程,可以與其他的實踐想結合,增強項目小組的溝通,激發(fā)士氣。
  
  需要說明的是以上最佳實踐并非XP所獨有,而是被最多的軟件開發(fā)方法所應用,其中"日構建"就在微軟的軟件開發(fā)方法中正式出現(xiàn)過。
  
  代碼規(guī)范
  雖然大部分的企業(yè)在一定程度上推行代碼標準與規(guī)范,而且對于使用JAVA的應用程序開發(fā),也有SUN的推薦編碼規(guī)范,但是,實際的情況并不理想。
  
  主要的原因在于:一方面,開發(fā)人員的習慣勢力很大;另一方面,代碼審查的力度不夠。假如能夠借助工具,從一定程度上幫助進行代碼標準的執(zhí)行情況檢查,那么代碼審查就可以著重檢查程序的邏輯和性能等方面。
  
  開源產(chǎn)品CheckStyle (http://sourceforge.net/PRojects/checkstyle) 可以幫助開發(fā)組織解決代碼標準審查的問題。
  
  目前的最新版本為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的發(fā)布版本中提供了針對Sun Code Conventions的特定Check File,可以參考使用。
  
  建議執(zhí)行情況:
  
  手動執(zhí)行:開發(fā)人員在IDE中手動觸發(fā)CheckStyle檢查或者代碼審查時由審查者手動執(zhí)行;
  自動執(zhí)行:將CheckStyle與源碼控制系統(tǒng)(CVS)結合,在源碼Checkin的時候進行規(guī)則判定,假如不符合,則不答應代碼進入系統(tǒng)。
  測試驅動開發(fā)
  測試先行或者測試驅動是XP的基本實踐之一,同時測試在軟件開發(fā)中的重要作用正越來越得到人們的重視。審查和測試作為系統(tǒng)確認和驗證的有效方式,是項目質量保證的重要措施。
  
  下面按照一般的測試分類,介紹各個領域內的開源測試工具:
  
  單元測試:JUnit (http://www.junit.org)
  JUnit是由 Erich Gamma 和 Kent Beck 編寫的一個回歸測試框架(regression testing framework),用于Java開發(fā)人員編寫單元測試之用。下面介紹的開源測試工具,很多都是對于JUnit的擴展。
  
  它目前的版本為3.7,為編寫單元測試提供了主要的接口。目前主流的IDE都提供了對于JUnit的支持。
  
  XP強調測試先行,尤其重視單元測試。系統(tǒng)集成商需要通過軟件開發(fā)過程的執(zhí)行,來強化JUnit的使用。
  
  目前很多商業(yè)測試軟件都提供了與JUnit的聯(lián)合使用,例如獲得1999和2000年Jolt測試類工具亞軍和生產(chǎn)率大獎的Jtest (ParaSoft公司產(chǎn)品,內置200余條編碼規(guī)范,提供Java代碼靜態(tài)和動態(tài)檢查,同時還可以自動生成簡單的測試用例等等)就可以導入和導出JUnit的測試用例。
  
  集成與功能測試:HttpUnit (http://unit.sourceforge.net) & Cactus (http://jakarta.apache.org/cactus/)
  HttpUnit是一套通過HTTP連接測試Web應用程序的Java類。在結合JUnit的情況下,HttpUnit可以作為一種創(chuàng)建測試程序的強大工具用來保證Web應用程序正常的端對端功能。
  
  雖然JUnit自身就可以通過編寫單一類的測試程序對服務器端Java代碼進行測試,不過,有了HttpUnit的幫助,JUnit就可以擴展為模擬Web瀏覽器-Web服務器的工作方式對整個Web程序結構進行測試。
  
  Cactus為我們提供了一種測試SERVLET等WEB組件的有效手段。它是JUnit的一個擴展,但是它又和JUnit有一些不同。Cactus的測試分為三種不同的測試類別,jspTestCase, ServletTestCase, FilterTestCase, 而不是像JUnit就一種TestCase。Cactus的測試代碼有服務器端和客戶端兩個部分,他們協(xié)同工作。
  
  一般意義上,可以采用Cactus作集成測試;而使用HttpUnit做功能測試。
  
  雖然在集成與功能測試方面,有很多優(yōu)秀的開源工具,但是在實際應用過程中,還是采用商業(yè)測試軟件的比較多,對于復雜應用更是如此。這是因為集成與功能測試大部分還是由專門的測試人員進行,而他們對于已有的商業(yè)軟件,例如Rational Robot、E-Test Suite、WinRunner等都比較熟悉,同時商業(yè)軟件也提供了更為強大的功能。
  
  壓力與性能測試: JMeter (http://jakarta.apache.org/jmeter/)
  由于企業(yè)應用越來越復雜,用戶數(shù)量也是越來越多,系統(tǒng)的性能參數(shù)以及眾多的非功能性需求在開發(fā)中獲得了越來越多的重視。因此,很多壓力與性能測試工具也開始出現(xiàn),這其中有一定影響的是Apache Software Foundation的JMeter。
  
  JMeter是100%的JAVA桌面應用,用來測試系統(tǒng)的負載與性能。它最開始設計是用來測試WEB應用,后來加以擴展,可以測試Http,F(xiàn)TP,支持JDBC的關系型數(shù)據(jù)庫的性能與壓力。同時,JMeter提供一定的定制功能,系統(tǒng)集成商可以自行開發(fā)針對EJB、CORBA或者SOAP的插件。
  
  壓力與性能測試方面,由于測試比較復雜,實際企業(yè)應用測試中,也是采用商業(yè)測試軟件比較多,例如LoadRunner、JProbe Suite以及與JBuilder8 同步發(fā)布的OptimizerIT;
  
  日構建
  在軟件開發(fā)

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 平南县| 顺昌县| 瑞昌市| 容城县| 湟中县| 沂源县| 体育| 曲阳县| 舟山市| 花垣县| 恩平市| 百色市| 同江市| 突泉县| 镇沅| 金华市| 泰宁县| 灵台县| 红安县| 满城县| 邵阳市| 中西区| 大同县| 日喀则市| 报价| 福州市| 浦北县| 舒城县| 芜湖市| 太仆寺旗| 泾川县| 武功县| 谷城县| 永顺县| 哈密市| 邢台县| 晋州市| 阜平县| 韩城市| 安乡县| 运城市|