練習 2.3:建立 PiggyBank 領域模型圖

在這個練習中,您會建立 Account Operations 功能範圍以及 PiggyBank 領域模型圖。領域模型圖會利用類別圖(可顯示系統中的主要類別)來說明 PiggyBank 系統的領域。

分析模型是建置在您在「模組 1」中識別的 Account Operations 功能範圍之上。 Account Operations 套件包含 Account Operations Analysis Elements 子套件, 以及 Display Balance、Transfer Money 和 Cash Check 等使用案例實現。Account Operations Analysis Elements 子套件包含您在為模型靜態結構建立模型時,所建立的 Rational Unified Process® (RUP®) 分析元素。這個套件也包含 Account Operations 分析元素圖, 它可以用來作為建立領域層次圖型的工作區。

領域圖型是一種類別圖型,可顯示 PiggyBank 線上銀行系統的主要類別。簡式類別圖會顯示您在先前的練習所識別的主要類別、 類別的屬性,以及類別之間的任何關係。領域模型只會說明系統的領域, 而不會說明應用程式本身的任何詳細資料。為了完成這個步驟,領域模型只會為系統的實體類別及其關係建立模型。領域圖型是靜態的, 因為它只會為系統的結構建立模型。在這個練習中,您將建立實體類別以及為它們的屬性建立模型。當您為每一個使用案例建立序列圖的時候, 您可以識別每一個實體的作業並為其建立模型。

建模是一種反覆的程序。當您探索您要建模的系統的詳細資訊時, 您的領域模型也會隨之變更。在這個指導教學中,您將勾勒出基本的領域圖型, 並且為每一個實體的所有屬性建立模型。

建立功能範圍

由於分析模型是建置在使用案例模型之上, Account Operations 功能範圍會儲存 PiggyBank 分析元素以及使用案例實現。您必須在模型的根中建立新的 Account Operations 功能範圍。

建立 Account Operations 功能範圍:
  1. 模型瀏覽器視圖中, 展開分析模型,展開 «ModelLibrary» Analysis Building Blocks,用滑鼠右鍵按一下 ${functional.area} 套件; 然後按一下複製
  2. 用滑鼠右鍵按一下根分析模型套件; 然後按一下貼上
  3. 用滑鼠右鍵按一下 ${functional.area}; 然後按一下尋找/取代
  4. 尋找目標欄位中,輸入 ${functional.area},然後按一下取代
  5. 取代為欄位中,輸入 Account Operations,然後按一下確定

新增 Display Balance 使用案例實現至 Account Operations 功能範圍:
  1. 模型瀏覽器視圖中, 展開分析模型,展開 «ModelLibrary» Analysis Building Blocks,用滑鼠右鍵按一下 ${use.case} 套件;然後按一下複製
  2. 用滑鼠右鍵按一下 Account Operations 套件; 然後按一下貼上
  3. 用滑鼠右鍵按一下 ${use.case};然後按一下 尋找/取代
  4. 尋找目標欄位中,輸入 ${use.case},然後按一下取代
  5. 取代為欄位中,輸入 Display Balance,然後按一下確定
新增 Transfer 使用案例實現至 Account Operations 功能範圍:
  1. 模型瀏覽器視圖中, 展開分析模型,展開 «ModelLibrary» Analysis Building Blocks,用滑鼠右鍵按一下 ${use.case} 套件;然後按一下複製
  2. 用滑鼠右鍵按一下 Account Operations 套件; 然後按一下貼上
  3. 用滑鼠右鍵按一下 ${use.case};然後按一下 尋找/取代
  4. 尋找目標欄位中,輸入 ${use.case},然後按一下取代
  5. 取代為欄位中,輸入 Transfer Money ,然後按一下確定
新增 Cash Check 使用案例實現至 Account Operations 功能範圍:
  1. 模型瀏覽器視圖中, 展開分析模型,展開 «ModelLibrary» Analysis Building Blocks,用滑鼠右鍵按一下 ${use.case} 套件;然後按一下複製
  2. 用滑鼠右鍵按一下 Account Operations 套件; 然後按一下貼上
  3. 用滑鼠右鍵按一下 ${use.case};然後按一下 尋找/取代
  4. 尋找目標欄位中,輸入 ${use.case},然後按一下取代
  5. 取代為欄位中,輸入 Cash Check,然後按一下確定

Account Operations 功能範圍包含 PiggyBank 分析模型的使用案例實現和分析元素。 Account Operations Analysis Elements 子套件包含專案的所有分析元素。您可以使用 Account Operations Analysis Classes 類別圖作為建置 PiggyBank 領域圖型的工作區。

建立領域模型圖型

您可以在 Account Operations 功能範圍中建立領域模型圖, 然後將已視覺化的模型元素複製到分析模型範本的 «perspective» Overviews 套件中。 Account Operations Analysis Classes 圖型是用來建立圖型的工作區, 而 «perspective» Overviews 套件只包含圖型的最終複本,而不包含類別。

建立領域圖型:
  1. 模型瀏覽器視圖中, 展開分析模型,然後展開 Account Operations
  2. Account Operations Analysis Elements 套件中, 按兩下 Account Operations Analysis Classes

您現在已經建立 PiggyBank Analysis Elements 圖型。這個圖型是一個工作區, 可讓您建立和視覺化功能範圍結構內的類別。您應該在這個套件中建立您的領域層次類別圖型, 然後將完整的圖型拖曳到 «perspective» Overviews 套件中來完成模型。

建立 Account 類別

Account 類別代表 PiggyBank 使用者帳戶。 Account 類別說明與 Account 類別相關聯的功能作業,例如 getBalance 和 findForCustomer。

建立 Account 類別的模型:
  1. 在「選用區」中,按兩下類別,然後將類別命名為 Account
  2. 在圖型編輯器中,按一下 Account 類別, 然後在「內容」視圖的造型頁面上, 按一下新增造型
  3. 套用造型視窗中,選取實體勾選框,然後按一下確定
  4. 在圖型編輯器中,用滑鼠右鍵按一下 Account 類別; 然後按一下新增 UML > 屬性,然後將屬性命名為 Balance
  5. 在圖型編輯器中,在 Account 類別中, 按一下 Balance 屬性,然後在內容視圖的一般頁面上,按一下選取類型
  6. 選取元素視窗中,展開 UML2, 按一下 Integer,然後按一下確定
  7. 在圖型編輯器中,用滑鼠右鍵按一下 Account 類別; 然後按一下新增 UML > 屬性,然後將屬性命名為 number
  8. 在圖型編輯器中,在 Account 類別中, 按一下 number 屬性。
  9. 在「內容」視圖的一般頁面中, 按一下選取類型
  10. 選取元素視窗中,展開 UML2, 按一下字串,然後按一下確定
您現在已經建立 Account 類別的模型。
附註:「分析模型」範本包含空白的類別, 它們是使用 RUP 分析元素造型來建立造型。您不需要建立新的類別並且將造型套用至類別上, 您可以將分析元素複製到功能範圍中,然後重新命名它們。如果要使用現有的 RUP 分析元素,請在模型瀏覽器視圖的 «ModelLibrary» Building Blocks 套件中,用滑鼠右鍵按一下分析元素;然後按一下複製。用滑鼠右鍵按一下您的功能範圍;然後按一下貼上

建立 Transfer 類別

Transfer 類別說明當客戶從某個帳戶轉帳到另一個帳戶時所發生的交易。Transfer 類別與 Account 類別有兩個關聯處。

建立 Transfer 類別的模型:
  1. 在「選用區」中,按兩下類別,然後將類別命名為 Transfer
  2. 在圖型編輯器中,按一下 Transfer 類別, 然後在「內容」視圖的造型頁面上, 按一下新增造型
  3. 套用造型視窗中, 選取實體勾選框,然後按一下確定
  4. 在圖型編輯器中,用滑鼠右鍵按一下 Transfer 類別; 然後按一下新增 UML > 屬性,然後將屬性命名為 amount
  5. 在圖型編輯器中,在 Transfer 類別中, 按一下 amount 屬性。
  6. 在「內容」視圖的一般頁面中, 按一下選取類型
  7. 選取元素視窗中,展開 UML2, 按一下 Integer,然後按一下確定

您現在已經建立 Transfer 類別的模型。

建立 Transfer-Account 關係的模型

Transfer 類別必須相依於 Account 類別。

建立 Transfer-Account 關係的模型:
  1. 在「選用區」中的相依關係旁, 按向下箭頭,然後按一下用法
  2. 在圖型編輯器中,將游標放置到 Transfer 類別上面, 然後將它拖曳到 Account 類別。

您現在已經建立 Transfer 類別的關係模型。您的圖型看起來應該與下圖類似:

Account 和 Transfer 的關係。

建立 Check 類別

Check 類別說明在 PiggyBank 兌現的支票。

建立 Check 類別的模型:
  1. 在「選用區」中,按兩下類別,然後將類別命名為 Check
  2. 在圖型編輯器中,按一下 Check 類別。
  3. 在「內容」視圖的造型頁面中, 按一下新增造型
  4. 套用造型視窗中, 選取實體勾選框,然後按一下確定
  5. 在圖型編輯器中,用滑鼠右鍵按一下 Check 類別; 然後按一下新增 UML > 屬性,然後將屬性命名為 amount
  6. 在圖型編輯器中,在 Check 類別中, 按一下 amount 屬性。
  7. 在「內容」視圖的一般頁面中, 按一下選取類型
  8. 選取元素視窗中,展開 UML2, 按一下 Integer,然後按一下確定
  9. 在圖型編輯器中,在 Check 類別中, 按一下 amount 屬性。
  10. 在「內容」視圖的一般頁面中, 在可見性旁,按一下 Public
  11. 在圖型編輯器中,用滑鼠右鍵按一下 Check 類別; 然後按一下新增 UML > 屬性,然後將屬性命名為 reference
  12. 在圖型編輯器中,在 Check 類別中, 按一下 reference 屬性。
  13. 在「內容」視圖的一般頁面中, 按一下選取類型
  14. 選取元素視窗中,展開 UML2, 按一下 String,然後按一下確定
  15. 在圖型編輯器中,在 Check 類別中, 按一下 reference 屬性。
  16. 在「內容」視圖的一般頁面中, 在可見性旁,按一下 Public

您現在已經建立 Check 類別的模型。您的圖型看起來應該與下圖類似:

顯示 Check 和 reference 兩個屬性的 Check 類別

建立 Check-Account 關係的模型

Check 類別必須相依於 Account 類別。

建立 Check-Account 關係的模型:
  1. 在「選用區」中,按一下用法
  2. 在圖型編輯器中,將游標放置到 Check 類別上面, 然後將它拖曳到 Account 類別。

您現在已經建立 Check 類別的關係模型。

建立 Customer 類別

Customer 類別說明 PiggyBank 客戶。

建立 Customer 類別的模型:
  1. 在「選用區」中,按兩下類別,然後將類別命名為 Customer
  2. 在圖型編輯器中,按一下 Customer 類別。
  3. 在「內容」視圖的造型頁面中, 按一下新增造型
  4. 套用造型視窗中, 選取實體勾選框,然後按一下確定
  5. 在圖型編輯器中,用滑鼠右鍵按一下 Customer 類別; 然後按一下新增 UML > 屬性,然後將屬性命名為 loginId
  6. 在圖型編輯器中,在 Customer 類別中, 按一下 loginId 屬性。
  7. 在「內容」視圖的一般頁面中, 按一下選取類型
  8. 選取元素視窗中,展開 UML2, 按一下 String,然後按一下確定
  9. 在圖型編輯器中,在 Check 類別中, 按一下 loginId 屬性。
  10. 在「內容」視圖的一般頁面中, 在可見性旁,按一下 Public
  11. 在圖型編輯器中,用滑鼠右鍵按一下 Check 類別; 然後按一下新增 UML > 屬性,然後將屬性命名為 name
  12. 在圖型編輯器中,在 Check 類別中, 按一下 name 屬性。
  13. 在「內容」視圖的一般頁面中, 按一下選取類型
  14. 在「選取元素」視窗中,展開 UML2, 按一下 String,然後按一下確定
  15. 在圖型編輯器中,在 Check 類別中, 按一下 name 屬性。
  16. 在「內容」視圖的一般頁面中, 在可見性旁,按一下 Public

您現在已經建立 Customer 類別的模型。

建立 Account-Customer 關係的模型

Account 類別必須相依於 Customer 類別。

建立 Account-Customer 關係的模型:
  1. 在「選用區」中,按一下用法
  2. 在圖型編輯器中,將游標放置到 Account 類別上面, 然後將它拖曳到 Customer 類別。

您現在已經建立 Customer 類別的關係模型。您也已經完成領域圖型的基本概要。您的圖型看起來應該與下圖類似:

PiggyBank 領域圖型的基本概要。

圖型會為系統的基本領域建立模型, 方法是說明系統主要類別的結構以及它們之間的關係。 例如,用唯一登入 ID 和名稱來識別的客戶可以擁有一個以上的帳戶, 但是一個帳戶不能同時屬於多個客戶。

建立領域模型總覽圖

您現在要在 «perspective» Overviews 套件中建立 PiggyBank 領域模型圖。這是最終的圖型版本,可提供概觀和導覽資訊。

建立 PiggyBank 領域總覽圖:
  1. 模型瀏覽器視圖中, 展開分析模型,展開 «perspective» Overviews,用滑鼠右鍵按一下 ${project} Domain Model; 然後按一下尋找/取代
  2. 尋找目標欄位中,輸入 ${project},然後按一下取代
  3. 取代為欄位中,輸入 PiggyBank,然後按一下確定
  4. 按兩下 PiggyBank 領域模型圖。
  5. 模型瀏覽器視圖中,展開 Account Operations, 然後展開Account Operations Analysis Elements
  6. 模型瀏覽器視圖中, 按一下 Customer 分析元素,然後將它拖曳到圖型中。
  7. 模型瀏覽器視圖中, 按一下 Account 分析元素,然後將它拖曳到圖型中。
  8. 模型瀏覽器視圖中, 按一下 Transfer 分析元素,然後將它拖曳到圖型中。
  9. 模型瀏覽器視圖中, 按一下 Check 分析元素,然後將它拖曳到圖型中。

您已經在 «perspective» Overviews 套件中建立 PiggyBank 領域模型圖。這是圖型的最終版本。您可以使用 Account Operations Analysis Classes 圖作為大略的工作區, 來建立使用案例參與者圖型。

使用條款 | 意見
(C) Copyright IBM Corporation 2004, 2005. All Rights Reserved.