Java2企業(yè)版(J2EE)平臺由四個關(guān)鍵部分構(gòu)成:規(guī)格說明、參考實現(xiàn)、兼容性測試套件和藍圖
(BluePrint)計劃。藍圖描繪了分布式組件架構(gòu)最好的實踐和設(shè)計指導(dǎo)方針。本文基于Rational統(tǒng)一過程和BluePrint示例程序介紹一
個八步驟J2EE開發(fā)方法學(xué)。 通過閱讀這篇文章,你可以了解許多重要的J2EE架構(gòu)的話題,并且能夠擴展和修改這個簡單的方法來解決自己 特有的業(yè)務(wù)問題。在商業(yè)世界里,我們使用Java2企業(yè)版(J2EE)解決業(yè)務(wù)問題、開發(fā)商業(yè)軟件或者提供轉(zhuǎn)包服務(wù)。如果一家公司想使用多層體系結(jié)構(gòu)建造 一個電子商務(wù)網(wǎng)站,通常在整個開發(fā)生命周期中需要涉及到管理者、架構(gòu)師,設(shè)計人員、編程人員、測試人員和數(shù)據(jù)庫專家。為了使不同部門能高效率地工作,他們 經(jīng)常需要一個軟件開發(fā)過程。一些經(jīng)典的開發(fā)過程包括瀑布模型、快速應(yīng)用開發(fā)(RAD)和極限編程(XP)。 本文我們將集中于一個流行的軟件工程過程,即Rational統(tǒng)一過程(RUP)。RUP提供了一個給角色分配任務(wù)和責(zé)任的嚴格方法。它的目標是保證我們在預(yù)期的進度和預(yù)算內(nèi)開發(fā)出滿足用戶需求的高質(zhì)量軟件。 在J2EE 開發(fā)中使用RUP出于以下三個原因。首先,RUP以架構(gòu)為中心;在將資源分配給全面開發(fā)之前,它先開發(fā)一個可執(zhí)行的架構(gòu)原型。其次,RUP是迭代并基于構(gòu) 件的。該架構(gòu)基線通常包括一個框架或基礎(chǔ)設(shè)施以便于通過迭代增加構(gòu)件,在不影響系統(tǒng)其他部分的前提下定制和擴展一個系統(tǒng)的功能。最后,RUP利用一門工業(yè) 標準語言--UML,可視化建模系統(tǒng)的架構(gòu)和構(gòu)件。RUP有四個不同的開發(fā)階段:初始、細化、構(gòu)造和移交。然而,本文從技術(shù)角度覆蓋了J2EE開發(fā)的八個 必要活動,主要集中在系統(tǒng)架構(gòu)。 1、需求分析需求分析描述系統(tǒng)應(yīng)該做什么或不應(yīng)該做什么使得開發(fā)者和客戶可以簽署一份原始的商業(yè)合同。可 以使用業(yè)務(wù)概念、領(lǐng)域術(shù)語、用例和用戶界面(UI)模型形成功能需求文檔。對于非功能需求,如性能和事務(wù),可以在需求文檔附件中詳細說明。根據(jù)參與項目深 度的不同,確定在紙上還是使用HTML建造高層UI模型。 在一個典型電子商務(wù)系統(tǒng)中的兩個用例。查看訂單(viewOrder)用例告訴 我們一個用戶通過Web界面登陸系統(tǒng)、查看訂單列表,點擊鏈接查看特定訂單的詳細信息。增加訂單項(addLineItem)用例告訴我們?yōu)g覽產(chǎn)品列表、 選擇感興趣的產(chǎn)品并將它們添加到購買訂單中。 2、面向?qū)ο蠓治龇治鋈藛T構(gòu)造問題領(lǐng)域模型:類、對象和交互。分析應(yīng)該與技術(shù)和實現(xiàn)細節(jié)無 關(guān),并包含一個理想的模型。對象分析可以幫助理解問題并獲得關(guān)于問題領(lǐng)域的知識。因為業(yè)務(wù)過程的改變比信息技術(shù)的改變要慢得多,所以必須要維持一個不含技 術(shù)細節(jié)的純領(lǐng)域模型。這兩個步驟--需求分析和面向?qū)ο蠓治?-不是J2EE特有的;對許多面向?qū)ο蠓椒▽W(xué)來說,它們都非常通用。 一個寵 物店示例程序的高層對象分析模型。它用圖例說明了我們從需求分析用例中識別的主要概念。我們把這些概念建模成對象并標識它們的關(guān)系。為了開發(fā)架構(gòu),可以選 擇一個縱向聯(lián)合部分(verticalpiece)--經(jīng)常是關(guān)鍵部分,如訂單領(lǐng)域?qū)ο竽P?-進行對象設(shè)計、實現(xiàn)、測試和部署。(縱向聯(lián)合部分,一個 RUP概念,是指系統(tǒng)的一小部分。起始點是圖1所示的用例子集和圖3所示的領(lǐng)域分析模型。一個縱向聯(lián)合部分的實現(xiàn)結(jié)果是一個全功能的微小系統(tǒng),包括UI層 的JSP,中間層業(yè)務(wù)對象如EJB和后端數(shù)據(jù)庫。)可以將從原型中獲得的經(jīng)驗應(yīng)用于領(lǐng)域?qū)ο蟛⒆鳛閷ο笤O(shè)計階段的指導(dǎo)。 3、架構(gòu)規(guī)格說明 經(jīng)過前面兩個步驟,業(yè)務(wù)領(lǐng)域問題和需求應(yīng)該比較明確了?,F(xiàn)在,我們將工作集中在技術(shù)策略和架構(gòu)上。架構(gòu)是指所有構(gòu)件組合定義系統(tǒng)的一個藍圖:結(jié)構(gòu)、接口和 通訊機制。我們可以進一步將架構(gòu)分為企業(yè)級和應(yīng)用級架構(gòu)。企業(yè)級系統(tǒng)架構(gòu)企業(yè)級系統(tǒng)架構(gòu)包括硬件和軟件基礎(chǔ)設(shè)施、網(wǎng)絡(luò)布局、開發(fā)、測試、生產(chǎn)環(huán)境等等。它 反映了一個企業(yè)的長期投資。開發(fā)前,需要評估已存在的軟件和硬件基礎(chǔ)設(shè)施,如果不完全支持J2EE的話,增加新構(gòu)件更新已存在系統(tǒng)。你需要徹底地評估硬 件,包括計算機、路由器、網(wǎng)絡(luò)轉(zhuǎn)換器和網(wǎng)絡(luò)布局,因為它們都影響到系統(tǒng)的性能和可靠性。 4企業(yè)級架構(gòu):一個多層企業(yè)級架構(gòu)包括以下幾個主 要構(gòu)件:一個Web瀏覽器客戶端,可能在也可能不在客戶端組織的防火墻內(nèi)一個HTTP服務(wù)器,是一個對公眾開放的Web服務(wù)器。它通常位于一個稱作DMZ 的子網(wǎng)內(nèi)Web容器主表示層和可能的業(yè)務(wù)邏輯構(gòu)件應(yīng)用程序容器主業(yè)務(wù)邏輯構(gòu)件關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)和數(shù)據(jù)庫主數(shù)據(jù)、數(shù)據(jù)邏輯你使用的系統(tǒng)架構(gòu) 類型依賴于安全、性能和可靠性的需求,也依賴于組織的財政狀況。在缺少經(jīng)驗的情況下,也可以適當?shù)貜囊粋€修理廠電話訂購一臺簡單地二手計算機。 Internet 上有許多開放源代碼的操作系統(tǒng)、Web服務(wù)器、應(yīng)用程序服務(wù)器和數(shù)據(jù)庫管理系統(tǒng)。得到這些系統(tǒng)的代價只是幾百美元和熬幾個通宵。象許多華爾街金融機構(gòu)這樣 的高端客戶也許需要一個連續(xù)支持安全、高吞吐量交易和不可預(yù)料網(wǎng)絡(luò)通訊的系統(tǒng)。在這種情況下,為了容錯,通常需要將Web服務(wù)器和應(yīng)用程序服務(wù)器集群配置 成一個n層架構(gòu)。還需要評估軟件基礎(chǔ)設(shè)施,包括Web服務(wù)器、安全管理軟件、應(yīng)用程序服務(wù)器、域名管理服務(wù)器、數(shù)據(jù)庫管理系統(tǒng)和第三方軟件構(gòu)件。如果還沒 有購買應(yīng)用程序服務(wù)器,選擇一個J2EE供應(yīng)商將是評估過程的一個重要方面。應(yīng)該注意到不同的供應(yīng)商對J2EE的實現(xiàn)程度是不同的,一些供應(yīng)商只支持老的 J2EE版本。 另外,一些Web容器或應(yīng)用程序容器可能比其他的速度要快。除了實現(xiàn)J2EE規(guī)范外,許多供應(yīng)商還出售J2EE基礎(chǔ)構(gòu)件或 框架。選擇一個穩(wěn)定的提供支持的J2EE供應(yīng)商也非常關(guān)鍵。你可以在系統(tǒng)基礎(chǔ)設(shè)施層面上購買或開發(fā)的通用功能包括:事務(wù)國際化和本地化集群和對象分布應(yīng)用 程序性能度量和剖析通訊工作流管理入口和個性化管理層對層通訊協(xié)議安全和防火墻應(yīng)用架構(gòu)應(yīng)用架構(gòu)參考一個特定的項目和規(guī)范建立在企業(yè)級系統(tǒng)架構(gòu)的上層。在 基礎(chǔ)設(shè)施完成后,架構(gòu)師研究怎樣構(gòu)造一個特定的應(yīng)用。如果你的企業(yè)級架構(gòu)僅部分支持老的J2EE版本,可以先升級你的系統(tǒng)。如果由于預(yù)算或時間關(guān)系不能升 級,那么必須在更老版本規(guī)定的技術(shù)范圍內(nèi)開展工作。雖然構(gòu)造企業(yè)級重用構(gòu)件非常重要,但是必須首先要能夠使用。這里的最終目標是滿足客戶的需求--一次一 個項目。 架構(gòu)師不是設(shè)計師;架構(gòu)和設(shè)計是完全不同。一個應(yīng)用架構(gòu)的范圍包括系統(tǒng)的主要結(jié)構(gòu)、架構(gòu)設(shè)計模式和可以在上面增加構(gòu)件的框架。架 構(gòu)主要關(guān)注的是非功能性方面,而設(shè)計關(guān)注應(yīng)用業(yè)務(wù)用例將領(lǐng)域?qū)ο竽P娃D(zhuǎn)換成技術(shù)對象模型。應(yīng)用架構(gòu)是項目的結(jié)構(gòu),一個特殊的應(yīng)用程序。通過應(yīng)用架構(gòu)開發(fā), 你通常必須要做的應(yīng)用架構(gòu)決定包括:層之間進行功能劃分領(lǐng)域?qū)ο蠼RWo的遺留系統(tǒng)要購買的軟件構(gòu)件要開發(fā)的構(gòu)件怎樣集成第三方構(gòu)件圖3的訂單領(lǐng)域?qū)ο? 說明了怎樣對領(lǐng)域?qū)ο筮M行建模。利用當前的Java技術(shù),可以將領(lǐng)域?qū)ο蠓植荚谧鳛殚_發(fā)者管理持續(xù)性對象的Web容器中、應(yīng)用程序服務(wù)器的EJB中或者作 為RDBMS宿主的Java存儲過程中。在寵物店藍圖中,我們將訂單對象設(shè)計成一個實體bean,一個詳細對象和一個數(shù)據(jù)訪問對象,如圖5和后面的圖6所 示。當你看到這個的時候,你應(yīng)該意識到架構(gòu)的重要性。為什么分析模型中的一個領(lǐng)域?qū)ο笥成涑蛇@么多對象?如果改變設(shè)計,會出現(xiàn)什么問題?你也許聽說過 EJB的好處,但是要注意不同供應(yīng)商的性能是不同的。當一種新技術(shù)到來的時候,你需要在投入全面設(shè)計之前進行一些研究。你可以經(jīng)常地將設(shè)計和實現(xiàn)領(lǐng)域?qū)ο? 模型縱向聯(lián)合部分的經(jīng)驗應(yīng)用到其他許多領(lǐng)域?qū)ο笾小_@就是架構(gòu)開發(fā)的內(nèi)容。 對象設(shè)計在架構(gòu)規(guī)范的指導(dǎo)下,設(shè)計從技術(shù)上擴展和修改了分析結(jié) 果。雖然分析階段的領(lǐng)域?qū)ο蠼?yīng)該與技術(shù)細節(jié)無關(guān),但是對象設(shè)計完全依賴于技術(shù)因素,包括平臺、語言的類型和架構(gòu)開發(fā)階段選擇的供應(yīng)商。分析時,抬頭望 著星星,但在設(shè)計階段,則要腳踏實地。理論上,為了維持業(yè)務(wù)對象的基本屬性和行為,除非絕對必要,不應(yīng)該破壞它們。在架構(gòu)結(jié)果的指導(dǎo)下,詳細設(shè)計工作應(yīng)該 說明所有類的規(guī)格,包括必須實現(xiàn)的屬性、它們的詳細接口和偽代碼或操作的純文本描述。規(guī)格說明應(yīng)該足夠詳細使得和模型圖結(jié)合時,它可以提供所有必須的編碼 信息。在許多自動化軟件生產(chǎn)過程中,我們可以從面向?qū)ο髨D生成代碼框架。注意樁(stub)和框架(skeleton)在圖中經(jīng)常是不可見的,因為它們對 設(shè)計人員和編程員來說是透明的。 Java2企業(yè)版(J2EE)平臺由四個關(guān)鍵部分構(gòu)成:規(guī)格說明、參考實現(xiàn)、兼容性測試套件和藍圖 (BluePrint)計劃。藍圖描繪了分布式組件架構(gòu)最好的實踐和設(shè)計指導(dǎo)方針。本文基于Rational統(tǒng)一過程和BluePrint示例程序介紹一 個八步驟J2EE開發(fā)方法學(xué)。 通過閱讀這篇文章,你可以了解許多重要的J2EE架構(gòu)的話題,并且能夠擴展和修改這個簡單的方法來解決自己 特有的業(yè)務(wù)問題。在商業(yè)世界里,我們使用Java2企業(yè)版(J2EE)解決業(yè)務(wù)問題、開發(fā)商業(yè)軟件或者提供轉(zhuǎn)包服務(wù)。如果一家公司想使用多層體系結(jié)構(gòu)建造 一個電子商務(wù)網(wǎng)站,通常在整個開發(fā)生命周期中需要涉及到管理者、架構(gòu)師,設(shè)計人員、編程人員、測試人員和數(shù)據(jù)庫專家。為了使不同部門能高效率地工作,他們 經(jīng)常需要一個軟件開發(fā)過程。一些經(jīng)典的開發(fā)過程包括瀑布模型、快速應(yīng)用開發(fā)(RAD)和極限編程(XP)。 本文我們將集中于一個流行的軟件工程過程,即Rational統(tǒng)一過程(RUP)。RUP提供了一個給角色分配任務(wù)和責(zé)任的嚴格方法。它的目標是保證我們在預(yù)期的進度和預(yù)算內(nèi)開發(fā)出滿足用戶需求的高質(zhì)量軟件。 在J2EE 開發(fā)中使用RUP出于以下三個原因。首先,RUP以架構(gòu)為中心;在將資源分配給全面開發(fā)之前,它先開發(fā)一個可執(zhí)行的架構(gòu)原型。其次,RUP是迭代并基于構(gòu) 件的。該架構(gòu)基線通常包括一個框架或基礎(chǔ)設(shè)施以便于通過迭代增加構(gòu)件,在不影響系統(tǒng)其他部分的前提下定制和擴展一個系統(tǒng)的功能。最后,RUP利用一門工業(yè) 標準語言--UML,可視化建模系統(tǒng)的架構(gòu)和構(gòu)件。RUP有四個不同的開發(fā)階段:初始、細化、構(gòu)造和移交。然而,本文從技術(shù)角度覆蓋了J2EE開發(fā)的八個 必要活動,主要集中在系統(tǒng)架構(gòu)。 1、需求分析需求分析描述系統(tǒng)應(yīng)該做什么或不應(yīng)該做什么使得開發(fā)者和客戶可以簽署一份原始的商業(yè)合同??? 以使用業(yè)務(wù)概念、領(lǐng)域術(shù)語、用例和用戶界面(UI)模型形成功能需求文檔。對于非功能需求,如性能和事務(wù),可以在需求文檔附件中詳細說明。根據(jù)參與項目深 度的不同,確定在紙上還是使用HTML建造高層UI模型。 在一個典型電子商務(wù)系統(tǒng)中的兩個用例。查看訂單(viewOrder)用例告訴 我們一個用戶通過Web界面登陸系統(tǒng)、查看訂單列表,點擊鏈接查看特定訂單的詳細信息。增加訂單項(addLineItem)用例告訴我們?yōu)g覽產(chǎn)品列表、 選擇感興趣的產(chǎn)品并將它們添加到購買訂單中。 2、面向?qū)ο蠓治龇治鋈藛T構(gòu)造問題領(lǐng)域模型:類、對象和交互。分析應(yīng)該與技術(shù)和實現(xiàn)細節(jié)無 關(guān),并包含一個理想的模型。對象分析可以幫助理解問題并獲得關(guān)于問題領(lǐng)域的知識。因為業(yè)務(wù)過程的改變比信息技術(shù)的改變要慢得多,所以必須要維持一個不含技 術(shù)細節(jié)的純領(lǐng)域模型。這兩個步驟--需求分析和面向?qū)ο蠓治?-不是J2EE特有的;對許多面向?qū)ο蠓椒▽W(xué)來說,它們都非常通用。 一個寵 物店示例程序的高層對象分析模型。它用圖例說明了我們從需求分析用例中識別的主要概念。我們把這些概念建模成對象并標識它們的關(guān)系。為了開發(fā)架構(gòu),可以選 擇一個縱向聯(lián)合部分(verticalpiece)--經(jīng)常是關(guān)鍵部分,如訂單領(lǐng)域?qū)ο竽P?-進行對象設(shè)計、實現(xiàn)、測試和部署。(縱向聯(lián)合部分,一個 RUP概念,是指系統(tǒng)的一小部分。起始點是圖1所示的用例子集和圖3所示的領(lǐng)域分析模型。一個縱向聯(lián)合部分的實現(xiàn)結(jié)果是一個全功能的微小系統(tǒng),包括UI層 的JSP,中間層業(yè)務(wù)對象如EJB和后端數(shù)據(jù)庫。)可以將從原型中獲得的經(jīng)驗應(yīng)用于領(lǐng)域?qū)ο蟛⒆鳛閷ο笤O(shè)計階段的指導(dǎo)。 3、架構(gòu)規(guī)格說明 經(jīng)過前面兩個步驟,業(yè)務(wù)領(lǐng)域問題和需求應(yīng)該比較明確了?,F(xiàn)在,我們將工作集中在技術(shù)策略和架構(gòu)上。架構(gòu)是指所有構(gòu)件組合定義系統(tǒng)的一個藍圖:結(jié)構(gòu)、接口和 通訊機制。我們可以進一步將架構(gòu)分為企業(yè)級和應(yīng)用級架構(gòu)。企業(yè)級系統(tǒng)架構(gòu)企業(yè)級系統(tǒng)架構(gòu)包括硬件和軟件基礎(chǔ)設(shè)施、網(wǎng)絡(luò)布局、開發(fā)、測試、生產(chǎn)環(huán)境等等。它 反映了一個企業(yè)的長期投資。開發(fā)前,需要評估已存在的軟件和硬件基礎(chǔ)設(shè)施,如果不完全支持J2EE的話,增加新構(gòu)件更新已存在系統(tǒng)。你需要徹底地評估硬 件,包括計算機、路由器、網(wǎng)絡(luò)轉(zhuǎn)換器和網(wǎng)絡(luò)布局,因為它們都影響到系統(tǒng)的性能和可靠性。 4企業(yè)級架構(gòu):一個多層企業(yè)級架構(gòu)包括以下幾個主 要構(gòu)件:一個Web瀏覽器客戶端,可能在也可能不在客戶端組織的防火墻內(nèi)一個HTTP服務(wù)器,是一個對公眾開放的Web服務(wù)器。它通常位于一個稱作DMZ 的子網(wǎng)內(nèi)Web容器主表示層和可能的業(yè)務(wù)邏輯構(gòu)件應(yīng)用程序容器主業(yè)務(wù)邏輯構(gòu)件關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)和數(shù)據(jù)庫主數(shù)據(jù)、數(shù)據(jù)邏輯你使用的系統(tǒng)架構(gòu) 類型依賴于安全、性能和可靠性的需求,也依賴于組織的財政狀況。在缺少經(jīng)驗的情況下,也可以適當?shù)貜囊粋€修理廠電話訂購一臺簡單地二手計算機。 Internet 上有許多開放源代碼的操作系統(tǒng)、Web服務(wù)器、應(yīng)用程序服務(wù)器和數(shù)據(jù)庫管理系統(tǒng)。得到這些系統(tǒng)的代價只是幾百美元和熬幾個通宵。象許多華爾街金融機構(gòu)這樣 的高端客戶也許需要一個連續(xù)支持安全、高吞吐量交易和不可預(yù)料網(wǎng)絡(luò)通訊的系統(tǒng)。在這種情況下,為了容錯,通常需要將Web服務(wù)器和應(yīng)用程序服務(wù)器集群配置 成一個n層架構(gòu)。還需要評估軟件基礎(chǔ)設(shè)施,包括Web服務(wù)器、安全管理軟件、應(yīng)用程序服務(wù)器、域名管理服務(wù)器、數(shù)據(jù)庫管理系統(tǒng)和第三方軟件構(gòu)件。如果還沒 有購買應(yīng)用程序服務(wù)器,選擇一個J2EE供應(yīng)商將是評估過程的一個重要方面。應(yīng)該注意到不同的供應(yīng)商對J2EE的實現(xiàn)程度是不同的,一些供應(yīng)商只支持老的 J2EE版本。 另外,一些Web容器或應(yīng)用程序容器可能比其他的速度要快。除了實現(xiàn)J2EE規(guī)范外,許多供應(yīng)商還出售J2EE基礎(chǔ)構(gòu)件或 框架。選擇一個穩(wěn)定的提供支持的J2EE供應(yīng)商也非常關(guān)鍵。你可以在系統(tǒng)基礎(chǔ)設(shè)施層面上購買或開發(fā)的通用功能包括:事務(wù)國際化和本地化集群和對象分布應(yīng)用 程序性能度量和剖析通訊工作流管理入口和個性化管理層對層通訊協(xié)議安全和防火墻應(yīng)用架構(gòu)應(yīng)用架構(gòu)參考一個特定的項目和規(guī)范建立在企業(yè)級系統(tǒng)架構(gòu)的上層。在 基礎(chǔ)設(shè)施完成后,架構(gòu)師研究怎樣構(gòu)造一個特定的應(yīng)用。如果你的企業(yè)級架構(gòu)僅部分支持老的J2EE版本,可以先升級你的系統(tǒng)。如果由于預(yù)算或時間關(guān)系不能升 級,那么必須在更老版本規(guī)定的技術(shù)范圍內(nèi)開展工作。雖然構(gòu)造企業(yè)級重用構(gòu)件非常重要,但是必須首先要能夠使用。這里的最終目標是滿足客戶的需求--一次一 個項目。 架構(gòu)師不是設(shè)計師;架構(gòu)和設(shè)計是完全不同。一個應(yīng)用架構(gòu)的范圍包括系統(tǒng)的主要結(jié)構(gòu)、架構(gòu)設(shè)計模式和可以在上面增加構(gòu)件的框架。架 構(gòu)主要關(guān)注的是非功能性方面,而設(shè)計關(guān)注應(yīng)用業(yè)務(wù)用例將領(lǐng)域?qū)ο竽P娃D(zhuǎn)換成技術(shù)對象模型。應(yīng)用架構(gòu)是項目的結(jié)構(gòu),一個特殊的應(yīng)用程序。通過應(yīng)用架構(gòu)開發(fā), 你通常必須要做的應(yīng)用架構(gòu)決定包括:層之間進行功能劃分領(lǐng)域?qū)ο蠼RWo的遺留系統(tǒng)要購買的軟件構(gòu)件要開發(fā)的構(gòu)件怎樣集成第三方構(gòu)件圖3的訂單領(lǐng)域?qū)ο? 說明了怎樣對領(lǐng)域?qū)ο筮M行建模。利用當前的Java技術(shù),可以將領(lǐng)域?qū)ο蠓植荚谧鳛殚_發(fā)者管理持續(xù)性對象的Web容器中、應(yīng)用程序服務(wù)器的EJB中或者作 為RDBMS宿主的Java存儲過程中。在寵物店藍圖中,我們將訂單對象設(shè)計成一個實體bean,一個詳細對象和一個數(shù)據(jù)訪問對象,如圖5和后面的圖6所 示。當你看到這個的時候,你應(yīng)該意識到架構(gòu)的重要性。為什么分析模型中的一個領(lǐng)域?qū)ο笥成涑蛇@么多對象?如果改變設(shè)計,會出現(xiàn)什么問題?你也許聽說過 EJB的好處,但是要注意不同供應(yīng)商的性能是不同的。當一種新技術(shù)到來的時候,你需要在投入全面設(shè)計之前進行一些研究。你可以經(jīng)常地將設(shè)計和實現(xiàn)領(lǐng)域?qū)ο? 模型縱向聯(lián)合部分的經(jīng)驗應(yīng)用到其他許多領(lǐng)域?qū)ο笾?。這就是架構(gòu)開發(fā)的內(nèi)容。 對象設(shè)計在架構(gòu)規(guī)范的指導(dǎo)下,設(shè)計從技術(shù)上擴展和修改了分析結(jié) 果。雖然分析階段的領(lǐng)域?qū)ο蠼?yīng)該與技術(shù)細節(jié)無關(guān),但是對象設(shè)計完全依賴于技術(shù)因素,包括平臺、語言的類型和架構(gòu)開發(fā)階段選擇的供應(yīng)商。分析時,抬頭望 著星星,但在設(shè)計階段,則要腳踏實地。理論上,為了維持業(yè)務(wù)對象的基本屬性和行為,除非絕對必要,不應(yīng)該破壞它們。在架構(gòu)結(jié)果的指導(dǎo)下,詳細設(shè)計工作應(yīng)該 說明所有類的規(guī)格,包括必須實現(xiàn)的屬性、它們的詳細接口和偽代碼或操作的純文本描述。規(guī)格說明應(yīng)該足夠詳細使得和模型圖結(jié)合時,它可以提供所有必須的編碼 信息。在許多自動化軟件生產(chǎn)過程中,我們可以從面向?qū)ο髨D生成代碼框架。注意樁(stub)和框架(skeleton)在圖中經(jīng)常是不可見的,因為它們對 設(shè)計人員和編程員來說是透明的。 |
|
來自: ShangShujie > 《j2ee》