440 likes | 603 Views
物件互動行為塑模. 內容大綱. 導論 循序圖 循序圖之建構步驟與準則 循序圖建構案例 合作圖 合作圖之建構步驟與準則 合作圖建構案例 類別封裝 聚集與一般化的找尋 結論. 導論. 物件資料結構塑模主要以類別圖與物件圖表達物件間之靜態資料結構,分析師會對每一個使用個案建立一個對應的類別圖。 然而,類別圖無法表達類別之物件間訊息的傳遞。. 導論 (c.2). 物件互動行為塑模主要以 互動圖 來表達物件間動態之互動行為。 互動圖包含 循序圖 和 合作圖 ,主要描述一個使用個案內物件間之互動行為: 循序圖著重以時間發生順序來表達物件間的訊息傳遞與處理之程序;
E N D
內容大綱 導論 循序圖 循序圖之建構步驟與準則 循序圖建構案例 合作圖 合作圖之建構步驟與準則 合作圖建構案例 類別封裝 聚集與一般化的找尋 結論
導論 • 物件資料結構塑模主要以類別圖與物件圖表達物件間之靜態資料結構,分析師會對每一個使用個案建立一個對應的類別圖。 • 然而,類別圖無法表達類別之物件間訊息的傳遞。
導論 (c.2) • 物件互動行為塑模主要以互動圖來表達物件間動態之互動行為。 • 互動圖包含循序圖和合作圖,主要描述一個使用個案內物件間之互動行為: • 循序圖著重以時間發生順序來表達物件間的訊息傳遞與處理之程序; • 合作圖著重表達物件間之連結結構,並能同時展現物件間的訊息傳遞與處理之程序。
循序圖 • 基本上,物件互動行為塑模需對每一個使用個案之類別圖建構一個對應的循序圖,循序圖主要表達類別圖中各類別之物件間的訊息傳遞及操作。
循序圖(c.2) • 循序圖基本上是由下列元件所組成: • 物件、 • 訊息、 • 操作、 • 生命線、 • 控制焦點、 • 框架 (UML 2 加入)。 • 物件 • 循序圖之物件是類別圖上類別之物件,其表達之方式是在類別之名稱下劃一底線。
循序圖(c.3) • 訊息 • 循序圖之訊息(Message)或刺激(Stimuli)是由某一物件送至另一物件以啟動操作。在循序圖中, 訊息是以水平之箭頭表示,且箭頭起始於送訊息之區域(也就是下面所介紹之控制焦點), 終止於接受訊息之區域。 • 操作與操作描述 • 循序圖之操作(Operation)在於描述循序圖中, 某一物件接到另一物件送達的訊息時,接收端之物件為了執行發送端物件送來之要求,所提供因應處理該訊息之方法。
循序圖(c.4) • 生命線 • 循序圖之生命線(Lifeline)是劃在物件底下與物件垂直之虛線,用予表達物件在某時段之存在,例如從物件接收到訊息或被新創出來開始到其被刪除為止。 • 控制焦點 • 循序圖之控制焦點(Focus of Control)表達物件執行某動作之時段,包括由其執行或透過其附屬程式。控制焦點用高且瘦的矩形(長條圖) 表示,且與該物件之生命線重疊。
循序圖(c.6) • 框架 • 框架(Frame)是一種圖示標記,用以表達循序圖中,某一區段範圍內的一連串訊息與操作組合之控制流程、輸入、輸出等,簡稱組合區段(Combined Fragment)。 • 框架之表達是以矩形且在其左上角搭配一個類似折角的小長方形表示,長方形內標示框架之名稱,矩行內表達框架之內容。
循序圖(c.7) • 在循序圖中,框架之表達並非必須,使用者可依情況自行決定是否要表達。 • 以下介紹六種常見之框架方式:
循序圖(c.8) • 多選一(Alternative)
循序圖(c.9) • 自由選擇 (Option)
循序圖(c.10) • 迴圈 (Loop)
循序圖(c.11) • 終止 (Break)
循序圖(c.12) • 平行 (Parallel)
循序圖(c.13) • 參考 (Referencing)
循序圖之建構步驟與準則 • 循序圖之建構必須由類別圖或活動圖中確認: • 類別之物件 • 物件間傳遞之訊息 • 物件之操作等 然後,再進一步繪製循序圖。
循序圖之建構步驟與準則(c.2) • 確認物件 • 循序圖中之物件來自類別圖。 • 循序圖中放置物件的法則 • 以物件出現順序或按時間發生之順序排列。 • 兩個物件間表達訊息之水平線距離愈短越好。 • 應用上述參考準則於物件位置之判定,有助於各物件間訊息傳遞之表達,或讓循序圖看起來較清晰易懂。
循序圖之建構步驟與準則(c.3) • 假設有三個物件分別稱為A、B、C,且其訊息傳遞關係為A傳遞給B,B傳遞給C,也就是A→B→C。因為物件A、B、C間有順序關係,所以將三個物件放置如左圖時,其水平線之長度遠較右圖之圖形來得短,且圖形亦較單純,因此左圖之表達方式較右圖為佳。
循序圖之建構步驟與準則(c.4) • 系統邊界 • 真實系統都存在一個 系統邊界(System Border),以作為系統與外界溝通之介面,常被擺在循序圖上最左邊第一個物件之左側。
循序圖之建構步驟與準則(c.5) • 操作描述法則 • 任何一個操作會有一個訊息對應。 • 操作描述放置於循序圖的最左邊,並按發生之時間順序由上而下排列,操作之內容主要來自使用個案之情節描述。 • 每一個物件所屬之操作都需沿該物件之生命線劃控制焦點。 • 為了讓操作能清楚表達各物件之動作,可以一條水平虛線隔開不同之操作描述。 • 操作之表達以文字描述為主,可使用結構化文字(Structured Text)敘述,例如PDL(Program Design Language)或虛擬程式碼(Pseudo-Code)。
循序圖之建構步驟與準則(c.7) • 訊息描述法則 • 將訊息之參數數目減到最少,如此才有利於再利用,如果該訊息所需要的參數確實很多時,可將該訊息再拆成數個訊息。 • 相同或類似的訊息,其命名應該相同,因為從相同之訊息命名,可以瞭解物件間相似的訊息傳遞 。 • 命名時,應能從名稱上反應出物件間訊息傳遞的作用、訊息的內容或意義。
循序圖之建構步驟與準則(c.8) • 循序圖之呈現架構 • 集中式 • 階梯式
循序圖之建構步驟與準則(c.9) • 集中式 • 集中式(Fork)架構之特徵是所有的物件訊息傳遞皆由一個物件負責。 • 以下圖為例,訊息皆由物件A傳遞到物件B、C與D,因此物件A可以視為控制物件。
循序圖之建構步驟與準則(c.10) • 階梯式 • 階梯式(Stair)架構之特徵是物件訊息傳遞不全然由某一物件負責,每一物件均可涉及訊息之傳遞,但只負責處理本身之操作,此種架構下系統設計之複雜度可分散到每一個物件上。 • 以下圖為例,物件A有訊息傳遞至物件B,物件B有訊息傳遞至物件C,物件C有訊息傳遞至物件D等,並不像上圖,所有之訊息全由物件A來傳遞。
循序圖之建構步驟與準則(c.11) • 繪製循序圖之步驟 1 將物件置於循序圖之上方,並依物件間訊息傳送╱接收發生之時間順序等原則,安排物件之順序。 2 在物件下劃與物件垂直之生命線,再標示物件間傳送╱接收之訊息與相關之操作。 3 再依每一物件執行某動作之時段劃控制焦點。
循序圖建構案例 • 以「送貨處理」使用個案的新增送貨單為例,說明如何建構循序圖。 • 確認物件 • 由類別圖可以得知該使用個案有業務部、送貨單、客戶、送貨明細、成品、稅率等六個類別,但業務部類別之物件不與其他物件互動,因此該五個類別之物件就是循序圖中之物件。 • 確認物件間之訊息與操作 – 依據使用個案描述找出每個物件所啟動的訊息,以及該訊息屬於哪個物件的操作。
循序圖建構案例(c.2) • 該使用個案情節如下: 1. 新增送貨單編號與日期 2. 輸入客戶資料(編號、名稱、地址與電話) 3. 輸入客戶之送貨資料(成品編號、品名、規格、數量、單價) 4. 更新成品庫存量 5. 查詢稅率 6. 計算送貨單各項金額 7. 儲存送貨單
合作圖 • 合作圖主要用於描述許多物件在單一使用個案中之互動行為,但不太適用於對這些行為的精準定義。本單元將介紹合作圖之元件、建構步驟與準則。
合作圖(c.2) • 合作圖基本上是由下列元件所組成: • 物件 – 連結 – 訊息 • 物件 – 合作圖之物件與循序圖之物件相同,均是來自於類別圖上類別之物件,其表達之方式是在類別之名稱下劃一底線。
合作圖(c.3) • 連結 – 合作圖之連結(Link)是用予表示一個物件如何與另一個物件連接,以直線來表示。合作圖上之連結也就是物件間訊息傳送╱接收之路徑(Path)。 • 訊息 – 合作圖之訊息(Message)包含兩物件間之訊息傳送╱接收內容與操作,並且將這些訊息伴隨著一個箭頭來表示,訊息之發生順序可在訊息前面加一個序數來表示。
合作圖之建構步驟與準則 • 合作圖與循序圖均表達一個使用個案內, 許多物件間之互動行為,兩者均由相同的資料中推演出,因此兩種圖在語意上是相同的。 • 您可以從循序圖轉換成合作圖,也可以從合作圖轉換成循序圖, 轉換中不應有資訊遺失(Booch 等人, 1999)。
合作圖之建構步驟與準則(c.2) • 循序圖轉成合作圖之步驟 1. 合作圖中之物件與循序圖中之物件是相同的。 2. 合作圖中之連結是來自於循序圖中兩物件間有訊息傳送╱接收者。 3. 合作圖中之訊息及操作與循序圖也是相同的, 只不過在表達時循序圖是依時間順序來表達發生順序,而合作圖是以數字來表達發生順序。
合作圖建構案例 • 以下將以「送貨處理」使用個案的新增送貨單為例,說明如何建構合作圖: 1. 合作圖中之物件與循序圖中之物件是相同的,因此該使用個案之合作圖的物件有送貨單、客戶、送貨明細、成品與稅率五個類別之物件。 2. 若在循序圖中兩物件間有訊息傳送╱接收者,則在合作圖中這兩物件間必有一連結。
合作圖建構案例(c.2) 3. 循序圖中之訊息傳遞與操作依時間發生之順序為: • 產生送貨單編號 • 查詢客戶資訊 • 新增送貨明細 • 查詢成品資訊 • 更新成品庫存 • 查詢稅率 • 計算各項金額 • 儲存送貨單
結論 • 互動圖(循序圖與合作圖)是物件導向分析與設計的主要工具之一,主要應用來表達一個使用個案內物件間之互動行為。 • 基本上,每一個類別圖需建構一個互動圖, 建構互動圖所需之資訊主要來自於使用個案圖或類別圖及與使用者之互動。