工具輔助: 在 Rational Rose 中建模 J2EE 應用程式的設計
這個工具輔助描述如何使用 Rational Rose 來塑造 J2EE 應用程式的設計。
工具: Rational Rose
關係
相關元素
主要說明

目的

您也會在 J2EE 架構內設計 J2EE 元件,並在 Rose 中以類別和類別的協同作業來表達。 

J2EE 應用程式通常會使用關聯式資料庫的服務。您可以設計資料庫的「資料模型」,然後在 Rose 中以 Rose Data Modeler 來呈現。 

若要在 Rose 中塑造 J2EE 應用程式,請執行下列步驟:

如需 J2EE 的相關資訊,請參閱概念:Java 2 Platform 企業版 (J2EE) 概觀。 

如需使用 J2EE 平台的元件式開發的概觀,請參閱概念:開發元件解決方案

另請參閱:

針對 J2EE 專案來設定 Rational Rose

請根據工具輔助:針對專案來設定 Rational Rose 來設定 Rational Rose。

此外,您必須啟用 Rose Java 外掛程式並配置專案的特殊設定。

如需配置 Rose Java 的詳細資訊,請參閱 Rational Rose 線上說明的說明書籍圖示 Rose Java > 如何 > 設定專案內容

組織設計模型

在設計模型中建立套件和層

工具輔助:使用 Rational Rose 來管理設計模型描述如何從 Rose 提供的 RUP 模型範本開始,在工作成果:設計模型中建立套件和層。此範本提供設計模型的綱要,包括在設計活動期間 (作業:使用案例設計作業:類別設計作業:subsystem_design_real-time_design) 應該建立的套件、子系統及圖型類型的位置保留區。   

另請參閱:

請注意,工作成果:設計模型中的套件結構不一定要符合工作成果:實作模型的套件結構。對 Java 類別進行正向工程時,「實作模型」中的套件結構會決定產生的 Java 類別的套件結構。

說明書籍圖示 如需套件的相關資訊,請參閱 Rational Rose 線上說明的套件主題。

新增 Java 語言套件

為了提供 J2EE 平台的服務,稱為系統層,您必須為 Java 和 J2EE 新增 Java 語言套件。當您在模型中建立自己的類別時會用到這些套件;比方說,如果類別定義的操作會傳回 Java 類型 String,則模型中必須存在含有類別 String 的 Java 語言套件 java.lang。

如需詳細資訊,請參閱下列 Rational Rose 線上說明主題: 

  • 說明書籍圖示 Rose Java > 概念 > 使用 Java 架構

  • 說明書籍圖示  Rose Java > 如何 > 在模型中載入 Java 類別庫

新增綱目套件

「綱目」套件包含應用程式中的資料庫表格的設計。如需相關資訊,請參閱工具輔助:使用 Rational Rose Data Modeler 來設計和建模資料庫

塑造 Java Bean 和 Java 類別

本節不討論如何塑造 EJB(請參閱塑造 EJB)或如何塑造呈現類別,例如 HTML 和 JSP 網頁(請參閱塑造呈現層)。

不探討如何塑造您在任何 Java 應用程式中通常會建立的其餘 Java Bean 和 Java 類別(例如公用程式類別)。如需詳細資訊,請參閱:

塑造 EJB

如需 EJB 的相關資訊,請參閱準則:Enterprise JavaBean (EJB)

以下是在 Rose 中塑造 EJB 所執行的步驟摘要:

建立 EJB 的設計子系統

EJB 通常會組合在設計子系統中。 

設計子系統用於封裝「套件」內的行為,提供明確而正式的介面,(根據慣例)但不公開內部任何內容。 

有關如何建立設計子系統的詳細資訊,請參閱工具輔助:使用 Rational Rose 來管理子系統

決定 EJB 類型及持續性機制

您必須先決定 EJB 類型,才能在 Rose 中建立 EJB - Entity Bean、Session Bean 或訊息驅動 Bean。若為 Entity Bean,您必須選擇儲存區管理的持續性或 Bean 管理的持續性。若為 Session Bean,您必須選擇 Bean 是 Stateful 或 Stateless。

請參閱準則:Enterprise JavaBean (EJB)

使用 Rose Java 來建立 EJB 類別

Rose Java 提供一組對話框,方便在 Rose 中建立和維護 EJB 類別。

  說明書籍圖示 如需相關資訊,請參閱 Rational Rose 線上說明的 Rose Java > 如何 > 使用 EJB 和 Servlet 主題。 

Rose Java 有下列用途:

  • 從頭開始建立全新的 EJB

  • 將模型中現有的類別轉換成 EJB - Rose Java 會將現有的類別轉換成 EJB 遠端介面,並為 Home 介面和 Bean 類別建立新的類別 

  • 在 EJB 中加入 finder 方法

  • 以 Bean 實作類別中定義的任何生命週期或 finder 方法來更新 Home 介面

  • 更新 EJB 的類別內容(例如 Home 介面的名稱)、持續性內容(例如是 Bean 管理的或儲存區管理的)及部署描述子內容(例如儲存區管理的欄位或環境登錄)。

以 Rose Java 建立的 Entity Bean 或 Session Bean 包含:

  • Home 介面類別

  • 遠端介面類別

  • Bean 類別

  • 定義通用 EJB 部署描述子 ejb-jar.xml 的內容,這些內容儲存為 EJB Bean 類別的內容

  • EJB 規格所需的操作和屬性(例如回呼方法)應該在 Home 介面、遠端介面及 Bean 類別中建立

以 Rose Java EJB 公用程式所建立的類別依據 Sun 標準 JSR-000026 UML/EJB 對映規格中規定的對映來塑造。說明書籍圖示 如需相關資訊,請參閱 Rational Rose 線上說明的 Rose Java > 概念 > 關於 Java 2 Platform 企業版 (J2EE) 的支援主題。 

如需 EJB 1.1 或 2.0 規格的相關資訊,請造訪 http://java.sun.com/,循著鏈結瀏覽至 Docs & Training > Java 2 Platform, Enterprise Edition > Enterprise JavaBeans Specification

定義操作和屬性

建立 EJB 類別之後,您可以自行增加操作(例如商業方法)和屬性。

Rose Java 提供一組對話框,方便在 Rose 中建立和維護 EJB 類別。

  說明書籍圖示 請參閱 Rational Rose 線上說明的 Rose Java > 如何 > 使用 EJB 和 Servlet > 將方法新增至 Bean 類別主題。

如需定義操作和屬性的相關資訊,請參閱:

塑造類別:關係

您在作業:類別設計中會建立類別圖,在此圖型上可以塑造類別之間的關係(例如關聯、相依性及繼承關係)。

Rational Unified Process Rose 隨附的模型範本可做為您建立類別圖的初步輪廓。

如需建模類別之間的關係的相關資訊,請參閱作業:類別設計

塑造類別:互動

作業:使用案例設計中,您會在序列圖上建立訊息,以描述設計物件之間的互動。對於「設計模型」中的每一個「使用案例實現」,請建立一組序列圖來描述主要和替代的事件流程。 

序列圖對於 EJB 設計師的用途包括:

  • 決定互動中涉及的類別的操作和操作引數

  • 指出在互動期間由類別呼叫的操作

  • 指出物件在收到訊息時的反應,例如,在訊息上附加 Script。 說明書籍圖示 如需相關資訊,請參閱 Rational Rose > 如何 > 在模型中建立和工作 > 在序列圖上使用 Script 說明主題

另請參閱:

塑造 EJB 持續性

實體 EJB 代表應用程式持續資料的物件導向觀點。將 EJB 類別建模為實體並將類別標示為「持續」,表示角色:資料庫設計師作業:資料庫設計期間,必須將 EJB 物件對映至資料模型

角色:資料庫設計師會在作業:資料庫設計中建立應用程式資料模型。

Rose 提供 Rational Rose Data Modeler 工具來支援資料庫設計,此工具可讓您在物件模型和資料模型之間來回轉換持續類別。

在資料模型表格 Rose 規格中,對映來源欄位記錄物件模型的類別至資料模型的表格之間的對映。

另請參閱工作成果:資料模型準則:資料模型

如需 Rose Data Modeler 的詳細資訊,請參閱工具輔助:使用 Rational Rose Data Modeler 來設計和建模資料庫

階段作業 EJB 的建模注意事項

Session Bean 可以讀取或寫入持續資料 - 請參閱準則:設計 Enterprise JavaBeans (EJB)- 直接存取與實體 EJB 的比較。  

在此情況下,您應該使用資料存取物件 (DAO) 類別,隱藏 EJB 以 javax.sql 介面執行資料庫連線和存取的細節。 

Bean 管理的實體 EJB 的建模注意事項

Bean 管理的 Entity Bean 會使用 JDBC API 來讀取和寫入資料庫表格。請利用 DAO 類別來隱藏 EJB 以 javax.sql 介面執行資料庫連線和存取的細節。 

儲存區管理的實體 EJB 的建模注意事項

對於儲存區管理的實體 EJB,您不必設計 DAO 類別,因為持續性由 EJB 儲存區來管理。

塑造交易

交易定義一組不可分割的作業呼叫 - 全部執行,不然就是都不執行。以持續性而言,交易定義一群物件的一批變更,同樣地也是全部執行,不然就是都不執行。交易提供一致性,確保物件群一致地改變狀態。

如需交易管理的概觀,請參閱概念:Java 2 Platform 企業版 (J2EE) 概觀 - 交易管理。

請根據「作業:使用案例設計 - 建模交易」來塑造 EJB 交易。在實作時,您必須根據設計模型,決定是否以宣告方式來區分交易 - 在部署描述子中,將 EJB 方法的交易屬性定義為 Required、RequiresNew、NotSupported、Supports、Mandatory 或 Never - 或在程式中以 Java Transaction API 來區分交易。

塑造安全

在設計時,請決定應用程式安全是否能夠以宣告方式來處理、使用 EJB 部署描述子中的安全角色和方法權限,或在程式中使用 J2EE 安全 API。

請以序列圖來考量安全狀況。必要的話,在序列圖中註明安全需求。

如需安全管理的概觀,請參閱概念:Java 2 Platform 企業版 (J2EE) 概觀 - 安全管理。

EJB 元件正向工程

您可以利用 Rose Java 執行正向工程來產生 EJB 的 Java 類別,請參閱工具輔助:使用 Rational Rose 從模型中產生元素。EJB Bean 類別經過正向工程會自動產生 EJB 部署描述子 ejb-jar.xml。

EJB 反推工程

您可以利用 Rose Java 在現有的 EJB 上執行反推工程,請參閱工具輔助:使用 Rational Rose 對程式碼執行反推工程。您必須在含有 EJB 類別和部署描述子的 .jar 檔案上執行反推工程,Rose Java 才能判斷執行反推工程的類別之間的關係(例如,哪一個類別是 Home 介面)。 

塑造使用者介面層

就像塑造任何 Web 應用程式一樣,塑造 J2EE 應用程式的使用者介面層。以 <<boundary>> 為模板的分析類別,通常很適合做為「使用者介面」層的類別和類別合作關係。界限類別可以實作為 JSP 網頁、Servlet、HTML 網頁或獨立式 Java 用戶端,視設計而定。

如需相關資訊,請參閱 

相關活動:

另請參閱:

呈現類別的正向和反推工程

您可以對呈現類別執行正向和反推工程。Rose Java 支援:

  • Web 應用程式 (.war) 的反推工程。說明書籍圖示 如需相關資訊,請參閱 Rational Rose 線上說明的 Rose Java > 如何 > 從 Java 原始程式反推到 Rose 主題。

  • 建立新的 Servlet 類別及適當的方法。說明書籍圖示如需相關資訊,請參閱 Rational Rose 線上說明的 Rose Java > 如何> 使用 EJB 和 Servlet 主題。