• 沒有找到結果。

案例: ATM 自動櫃員機系統 2

然後再加上帳戶、支票帳戶和存款帳戶的一般關 係來建立 ATM 自動櫃員機系統的領域模型,如下 圖所示:

10-3 指定責任建立概念模型

10-3-1 CRC 卡的基礎

10-3-2 CRC 卡的基本分析流程

10-3-3 使用 CRC 卡找出類別責任

10-3-1 CRC 卡的基礎 - 說明

CRC 卡( Class,Responsibility,and Collaboration Card

)是在 1989 年的 OOPSLA ,由 Kent Beck 和 Ward Cunningham 發表的方法,其主要目的是教授物件 導向設計,到了 1995 年 CRC 卡已經廣泛使用在早 期的物件導向系統開發。

CRC 卡可以識別和定義類別的特性,雖然 CRC 卡 不是 UML 認可的官方方式,但是仍然廣泛使用在 物件導向分析階段。

10-3-1 CRC 卡的基礎 - 圖例

CRC 卡是一張尺寸約 3-in X 5-in 的卡片,如下圖所示:

10-3-2 CRC 卡的基本分析流程

1033 使用 CRC 卡找出類別責任 -CRC

卡 1

現在,我們就可以使用 CRC 卡找出 ATM 自動櫃員 機系統的類別責任,然後更新領域模型,指定類 別責任來建立概念模型。

在領域模型的【 ATM 】和【銀行】類別,其 CRC 卡如下圖所示:

1033 使用 CRC 卡找出類別責任 -CRC

卡 2

因為一位銀行客戶可以擁有 1~2 個帳戶和一張金 融卡,我們可以使用金融卡卡號取得此位客戶的 所有帳戶清單,所以需要一個【銀行客戶】新類 別(請注意!使用 ATM 的客戶和銀行開戶的銀行 客戶不見的是同一人),如下圖所示:

1033 使用 CRC 卡找出類別責任 -CRC

卡 3

在領域模型的【帳戶】和【交易】類別,其 CRC 卡如下圖所示:

1033 使用 CRC 卡找出類別責任

-建立概念模型

10-4 分析類別與強韌圖的基礎

10-4-1 分析類別

10-4-2 強韌圖

1041 分析類別

-實體類別

實體類別( Entity Classes )是軟體 系統中需要長期保存資訊的類別,

主要是源至概念模型的類別,或一 些暫時實體類別( Transient Entity Classes ),這是一種在使用案例結 束後就消滅的物件,例如:搜尋結 果的實體類別。

一般來說,實體類別常常是直接對 應資料庫的資料表或檔案。在 UML 類別圖是使用 <<entity>> 模版來表 示它是實體類別,如右圖所示:

1041 分析類別

-邊界類別 ( 說明 )

邊界類別( Boundary Classes )也稱為介面類別,

它是負責使用介面的類別,扮演動作者和系統之 間的橋樑,通常就是 GUI 圖形使用介面元件的視 窗或網頁表單。在 UML 類別圖是使用

<<boundary>> 模版來表示它是邊界類別。

對於小型軟體系統來說,因為類別不多,我們可 以直接在實體類別建立使用介面,但是對於中大 型軟體系統來說,這種作法,一旦更改使用介面

,就需要大幅修改系統類別,因為使用介面和實 體類別已經緊密的結合在一起。

1041 分析類別

-邊界類別 ( 圖例 )

為了避免上述問題,我們可以使用邊界類別來分 割使用介面和實體類別,系統的使用者直接面對 的是邊界類別,它是系統與使用者互動的類別,

如下圖所示:

1041 分析類別

-邊界類別 ( 範例 )

例如: ATM 自動櫃員機系統的提款本來是在【 ATM 】類 別提供使用介面和【銀行】類別合作來完成提款行為,我 們可以加入【提款使用介面】類別來處理使用介面和提款

,讓它直接和【銀行】類別合作,如下圖所示:

1041 分析類別

-控制類別 ( 說明 )

在系統中的控制類別( Control Classes )是扮演協 調角色的類別,也稱為管理類別,它是連接邊界 類別和實體類別的一種類別,負責管理行為和控 制流程的執行,在 UML 類別圖是使用 <<control>>

模版表示它是控制類別。

1041 分析類別

-控制類別 ( 範例 )

例如:在上述 ATM 自動櫃員機系統的邊界類別除 了使用介面外,也分擔提款的流程控制,對於簡 單流程還沒有關係,如果是複雜的流程控制,此 時的邊界類別可能就太過複雜,我們可以再將流 程控制獨立成控制類別,如下圖所示:

10-4-2 強韌圖 - 說明

強韌圖( Robustness Diagram )並不是 UML 標準 圖形,它最早是由 Ivar Jacobson 在 1992 年提出,

其目的是用來分析軟體系統的三種物件(即分析 類別),和描述物件之間的互動連接,幫助我們 建立物件導向設計所需的初始架構,和第 11 章的 通訊圖與循序圖。

10-4-2 強韌圖 - 符號 1

UML 工具 SIM 支援繪製強韌圖,強韌圖的符號除 了橢圓形的使用案例(同 UML 使用案例圖)外,

就只有三種:邊界物件、控制物件和實體物件,

如下圖所示:

10-4-2 強韌圖 - 符號 2

在動作者和三種物件之間可以建立通訊結合關係

( Communication Association )來傳遞訊息,例 如:從動作者傳遞訊息給購物車介面,也就是執 行購物車介面的行為,箭頭表示傳遞方向,如下 圖所示:

10-4-2 強韌圖 - 連接規則 ( 說明 )

強韌圖的連接規則就是三種物件和動作者之間傳 遞訊息的規則,共有四條規則,如下所示:

• 動作者只允許與邊界物件連接。

• 邊界物件只允許與控制者和動作者連接。

• 實體物件只允許與控制物件連接。

• 控制物件允許和邊界、實體和其他控制物件連接。

10-4-2 強韌圖 - 連接規則 ( 圖例 )

10-4-2 強韌圖 - 範例

客戶登入使用案例擁有一個登入表單的邊界物件

、認證使用者身份規則的控制物件和儲存會員資 料的實體物件(來自概念模型),我們可以建立 客戶登入的強韌圖,如下圖所示:

10-5 找出分析類別建立分析模型

10-5-1 從使用案例情節建立活動圖

10-5-2 將活動圖轉換成強韌圖的轉換規則

10-5-3 找出分析類別建立分析模型

1051 從使用案例情節建立活動圖

1051 從使用案例情節建立活動圖

1051 從使用案例情節建立活動圖

1051 從使用案例情節建立活動圖

相關文件