top
Loading...
用RationalRose和UML開發J2EE應用(二)
實現軟件

雖然分析模型可以幫助你解決問題提供了一個基礎,不過離實現還是很遠。在設計期間,你必須考慮到所采用的技術帶來的額外限制和需求,并且嘗試映射解決方案到最優化的實現。

在我們的例子中,假設我們正在建立一個基于Web的應用。實現這樣一個應用需要一個深思熟慮的方法。分析模型的作用是作為一個出發點,用來決定將不同的J2EE技術映射到方案。例如,<<control>> 類可很好地映射到Java Servlets或者Enterprise JavaBean (EJB) Session Beans。這個方法可以將J2EE層的實現模型和Sun的"Model 2"參考體系對應起來。

Rational Rose提供了一個簡化的接口來開發servlets和EJB Session Beans。圖5顯示了創建一個servlet的對話框。


****圖5 Servlet定義窗口*****

雖然EJB包含有多個接口和類,Rational Rose還是提供了創建EJB的便利接口。創建EJB的對話框如圖6所示。在這里,對話框顯示了需要創建一個無狀態Session Bean的設置。


****圖6****
創建一個無狀態Session Bean

得到的Session EJB如圖7所示。這是基于為EJB開發的UML模型,它是以Sun Java Community Process在JSR-26開發的。它顯示了構成EJB的各種元素之間的關系,特別是home和remote接口和EJB實現類。由于EJB并不真正實現home和remote接口(它們是通過配置工具自動產生的對象實現的),因此關系并不是實現home和remote接口而是分別產生<<EJBRealizeHome>>和<<EJBRealizeRemote>>。home和remote接口的依賴關系表明home接口實例化remote接口。


************圖7**********
一個無狀態Session Bean

<<boundary>>類粗略地映射到JSP、HTML和form,如果你正在開發一個傳統的基于客戶的應用,它映射到一個客戶應用的對話框。我們使用JSP作為呈現實體和系統交互的的一個手段。JSP實際上由兩個方面,也就是客戶端的表現和服務器端的行為,所以它的模型包含有一個客戶端頁面和服務器端的頁面,它們之間的關系是<<build>> 。一個例子如圖8所示。


***********圖8***********
JSP作為服務器端和客戶端頁面

創建一個JSP比EJB還簡單,你只需要在browser的菜單中選擇Web Modeler>New>Server Page就可以了,如圖9所示。


*************圖9***********
在Rational Rose中創建一個JavaServer Page

諸如Catalog, Order和Customer的<<entity>> 類可映射為Entity Bean。它們的創建如上面圖6所示。

J2EE應用中常利用的一個技術是使用JavaBean在servlets和JSPs之間傳送信息。在Rational Rose中要做到這一點是很簡單的,通過在一個Java類上創建attributes,并且通過如圖10中的attribute規范對話框來將attribute設置為屬性。


*************圖10***********
將一個attribute設置為屬性

在整體實現模型中,創建JSPs, servlets, JavaBeans和EJBs是非常有用的。Rational Rose可讓你很容易地模型化關系和告訴工程師其中的基本細節,不僅包括JSPs, servlets, EJBs和JavaBeans,還包括實現中涉及到的HTML頁面和Form。這些可以送給表現層開發者作進一步的處理,同時可與你的應用邏輯保持兼容性。

圖11是某個類框圖的一部分,它顯示了實現在線CD商店中涉及到的不同技術。該框圖展示了各個類以及它們如何與表現、商業邏輯和數據層排列在一起。這樣,客戶端的頁面在左邊,控制的servlet在中間,Entity Beans在右邊。


*************圖11**************
在線CD商店的部分實現模型

該框圖只顯示了付費和瀏覽CD細節用例中需要用到一些類。我們可以通過一個簡單的付費情景來嘗試“閱讀”該框圖。假定你已經瀏覽完畢,并且選擇了一些準備購買的CD,你在主頁(左邊的頂部)上選擇“checkout”的選項。這樣將會調用經由相關stereotyped <<link>>顯示的MainSerlet控制器。MainServlet由Order EJB中得到訂單的細節,構造一個Order JavaBean,并且將它設置為session的一個屬性,并且將請求向前送,如<<forward>>標識的一樣,直到一個Checkout JSP。Checkout JSP使用Order JavaBean,如JSP和Order JavaBean之間所示的<<Use Bean>>關系一樣,它會構造Checkout_Client頁面并且呈現給用戶。

很明顯,我們忽視了其中的一些細節。例如,在實際的項目中,你可能將使用購物車來跟蹤項目;控制的責任或許會更分散,而不只是用唯一一個MainServlet等。這里的主要觀點是告訴你,對于設計和開發復雜的J2EE應用,UML是一個強大的工具,通過上面的例子,你將會認識到這一點。
作者:http://www.zhujiangroad.com
來源:http://www.zhujiangroad.com
北斗有巢氏 有巢氏北斗