• 沒有找到結果。

第11章:互動圖 – 循序、通訊、互動概觀與時序圖

N/A
N/A
Protected

Academic year: 2021

Share "第11章:互動圖 – 循序、通訊、互動概觀與時序圖"

Copied!
73
0
0

加載中.... (立即查看全文)

全文

(1)

第 11 章

互動圖

– 循序、通訊、時序與互動概觀 圖  11-1 互動圖的基礎11-2 循序圖11-3 通訊圖11-4 時序圖11-5 互動概觀圖11-6 繪製互動圖11-7 綜合練習

(2)

11-1 互動圖的基礎 - 說明

互動圖( Interaction Diagrams )如同其名是用來描述模型 中不同元素之間的互動,即描述系統的動態行為,可以清 楚呈現系統與使用者操作之間的互動;一組物件之間如何 使用訊息互動來合作完成指定的行為。  互動圖可以用來呈現 4+1 觀點軟體系統模型的邏輯觀點, 如下圖所示:

(3)

11-1 互動圖的基礎 - 種類

循序圖( Sequence Diagrams ):使用時間軸方式描述物 件之間的互動,強調物件之間訊息傳遞的時間順序。  通訊圖( Communication Diagrams ):描述物件的互動, 強調物件之間的關係、訊息流向和控制流程,在 1.x 版稱 為合作圖( Collaboration Diagrams )。

時序圖( Timing Diagrams ): UML 2.0 版支援的圖形,描

述詳細的時間資訊,互動元素之間的條件資訊和狀態改變 。

互動概觀圖( Interaction Overview Diagrams ): UML 2.0

版支援的圖形,使用循序、通訊和時序圖以高階方式描述 系統發生的重要互動。

(4)

11-1 互動圖的基礎 - 目的

 互動圖的主要目的是使用視覺化方式顯示系統的 互動行為,因為視覺化顯示互動是一件困難的工 作,所以我們需要建立不同觀點的互動圖來描述 系統的行為。基本上,互動圖的主要目的為: • 捕捉系統的動態行為。 • 描述系統物件之間的訊息流程。 • 描述系統物件的結構化組織。 • 描述一組物件之間訊息傳遞的互動。

(5)

11-2

循序圖

11-2-1 循序圖的基本符號11-2-2 循序圖的訊息

11-2-3 框架

(6)

11-2 循序圖 - 說明

循序圖( Sequence Diagram )是使用時間軸來描 述物件之間的互動,強調物件之間訊息傳遞的時 間順序,請注意是時間順序,而不是花費的時間 ,關於花費時間部分可以使用時序圖來描述。  在循序圖的垂直軸是時間,可以顯示時間順序的 訊息傳送;水平軸是隨著訊息傳送,從一個參與 者物件旅行至另一個參與者物件的互動過程。

(7)

11-2 循序圖 - 範例

例如:圖書銷售系統( Book Sales System )產生圖書銷售

(8)

11-2-1 循序圖的基本符號 - 參與者

參與者( Participants )簡單的說就是物件,它是使用方框 表示,也可以使用演員符號,參與者是位在循序圖上方且 從左至右依序排列,在方框中是參與者名稱,其基本語法 如下所示: 名稱 : 類別名稱  上述語法的「 : 」分號前是物件名稱;之後是類別名稱, 如下圖所示:

(9)

11-2-1 循序圖的基本符號 - 時間與生命線

 在參與者下方垂直的虛線 稱為「生命線」( Lifeline ),代表互動發生順序的 時間軸,時間是由上而下 增加,如右圖所示:

(10)

11-2-1 循序圖的基本符號 - 訊息 ( 說明 )

訊息( Messages )是從來源參與者(或稱送出參與者)

的生命線送到目的參與者(或稱接收參與者)的生命線, 可以讓接收訊息的參與者進入啟動棒來執行所需操作,如 下圖所示:

(11)

11-2-1 循序圖的基本符號 - 訊息 ( 種類 )

 在循序圖的訊息可以分為兩種,如下所示: • 同步訊息( Synchronous Messages ):當參與者送出同 步訊息,必須等到回應後才會繼續執行,同步訊息是 使用實心三角形箭頭線來表示,例如:上述循序圖的 第 1 個訊息和前述 gen: 報表產生器物件送給 report: 圖 書報表物件的 setCreateDate() 就是同步訊息。 • 非同步訊息( Asynchronous Messages ):參與者送出 非同步訊息,並不需要等到回應就可以繼續執行。非 同步訊息是使用箭頭來表示,例如:上述循序圖的第 2 個訊息。

(12)

11-2-1 循序圖的基本符號 - 訊息 ( 語法 )

 循序圖的訊息基本語法,如下所示: 傳回值 = 訊息名稱 ( 參數列 ) : 傳回型態  上述訊息語法依序是傳回值、訊息名稱(通常是 類別的方法名稱)、參數列和傳回型態。一些訊 息的範例,如下所示: 送出訂單 () setCreateDate(date) d = getReportDescription(id) d = getReportDescription(id) : ReportDescription

(13)

11-2-2 循序圖的訊息 - 呼叫訊息

呼叫訊息( Call Message )是循序圖最常用的訊息,它是

呼叫目標參與者的操作,例如:客人( Customer )在自 動販賣機面板投錢操作的循序圖,如下圖所示:

(14)

11-2-2 循序圖的訊息 - 回傳訊息

 回傳訊息是表示呼叫訊息的傳回值,一般來說,它並非必 須符號,因為可以使用啟動棒結束來隱含代表。循序圖的 回傳訊息是使用虛線→表示呼叫訊息的操作結束,在上方 是傳回值的描述。  例如:客戶在自動販賣機的面板投錢後,操作面板送出檢 查金額 () 訊息至記錄器物件,可以傳回可選擇產品的清單 ,如下圖所示:

(15)

11-2-2 循序圖的訊息 - 巢狀訊息

巢狀訊息( Nested Message )就是當呼叫訊息送至目的參 與者後,就會進一步觸發目的參與者送出更多的訊息,這 些訊息稱為原觸發訊息的巢狀訊息。  例如:當客戶在自動販賣機的面板投錢後,在操作面板可 以顯示可購買的產品,以便讓客戶選擇購買的產品,如下 圖所示:

(16)

11-2-2 循序圖的訊息 - 自身訊息

自身訊息( Self Message )就是送出呼叫訊息給 自己,以 Java 語言來說 ,就是呼叫同一個物件 的方法(通常是一些宣 告成 private 的工具方法 )。例如:旅館 aHotel 物件送出自身訊息檢查 指定日期是否有空房間 ,如右圖所示:

(17)

11-2-2 循序圖的訊息 - 遞迴訊息

 訊息還可以遞迴將訊 息傳送至物件自己的 同一個操作,稱為遞 迴訊息( Recursion Messages )。例如: 計算階層 N! Factorial 物件 f ,如 右圖所示:

(18)

11-2-2 循序圖的訊息 - 產生訊息與消滅訊息

在循序圖的物件可以送出產生訊息 <<create>> 建立其他實

例( Instances );或送出消滅訊息 <<destroy>> 表示物件 生命周期的結束。例如:從購物車新增和刪除訂單項目的 循序圖,如下圖所示:

(19)

11-2-3 框架

UML 2.x 版的框架( Frame )提供 UML 圖形一個

圖形邊界,它是一個大型的長方形框,在框架左 上角顯示框架名稱,實際 UML 圖形是位在長方形 框的範圍之內,如下圖所示:

(20)

1124 複雜互動的互動片斷

-說明

對於循序圖複雜互動的條件與迴圈,舊版 UML 1.x

版在此部分並沒有明確的定義,所以可以使用多 種表示方法來呈現。

UML 2.0 版是使用組合片斷( Combined Fragment

)來處理複雜互動,它是由一至多個互動片斷 ( Interaction Fragment )組成,通常我們是將組 合片斷置於一個框架中。

(21)

1124 複雜互動的互動片斷

(22)

1124 複雜互動的互動片斷

-互動運算子

UML 2.x 版常用的互動運算子,如下表所示:

互動運算子 說明

opt 當防衛條件為真 true 時才執行;偽 false 就不執行此框架的互 動,相當於 Java 語言的 if 條件

alt 指防衛條件為互斥選擇條件( Mutually Exclusive Choice ), 相當於 Java 語言的 if/else 、 if/else if 或 switch 的二選一或多選

一條件敘述

loop 當防衛條件為真 true 時就重複執行此片斷的互動,我們可以 指明 loop(n) 表示執行 n 次迴圈,相當於 Java 語言的 for 迴圈

ref 參考其他互動的 sd 互動片斷(即循序圖片斷) par 並行執行的互動片斷

(23)

1124 複雜互動的互動片斷

-Opt 片斷

Opt 片斷是建立條件訊息,只有當防衛條件為真

true 時,才執行互動運算元。例如:使用者從 ATM 自動櫃員機提款的循序圖,如下圖所示:

(24)

1124 複雜互動的互動片斷

-Alt 片斷

Alt 片斷是互斥條件的訊息,可以依據防衛條件,執行其 中之一的互動運算元,例如:繼續之前的 ATM 提款範例 ,如果通過驗證,就可以送出現金;反之顯示錯誤訊息, 如下圖所示:

(25)

1124 複雜互動的互動片斷

-Loop 片斷

Loop 片斷就是迴圈,可以重複執行片斷的互動運算元,例 如:繼續之前的 ATM 提款範例, ATM 會重複送出 3 次驗 證請求,如果都無法通過驗證,才會顯示錯誤訊息,如下 圖所示:

(26)

1124 複雜互動的互動片斷

-Ref 片斷 ( 說明 )

Ref 片斷可以參考其他互動的 sd 框架,以便在複 雜循序圖中,簡化部分循序圖來強調所需的互動 ,另一種 Ref 片斷的應用如同函數,可以讓我們 在循序圖重複使用 sd 框架。

(27)

1124 複雜互動的互動片斷

-Ref 片斷 ( 範例 1)

 例如:在網站選擇建立不同種類帳戶的循序圖, 此循序圖分為兩部分,如下所示: • Ref 片斷:在循序圖參考名為選擇帳戶種類的循序圖, 如下圖所示:

(28)

1124 複雜互動的互動片斷

-Ref 片斷 ( 範例 2)

• Sd 框架:一個框架的循序圖,它是被 Ref 片斷參考的 循序圖,如下圖所示:

(29)

11-3 通訊圖

11-3-1 通訊圖的基本符號11-3-2 通訊圖的訊息

(30)

11-3 通訊圖 - 說明

通訊圖( Communication Diagrams )可以描述物 件之間的互動,不過,通訊圖強調的是物件之間 的關係和訊息流向,可以顯示多個物件如何一起 合作來完成指定工作的行為。  通訊圖和循序圖的主要差異,在於循序圖是以時 間軸顯示物件之間的訊息傳遞;通訊圖則是以空 間角度顯示物件之間訊息傳遞的路徑,換句話說 ,相同資訊的循序圖可以轉換成通訊圖。

(31)

11-3 通訊圖 - 範例

將第 11-2-1 節循序圖轉換成通訊圖,如下圖所示

(32)

11-3-1 通訊圖的基本符號 - 參與者

通訊圖的參與者( Participants )符號是長方形, 中間是名稱,其基本語法如下所示: 名稱 : 類別名稱  上述語法的「 : 」分號前是物件名稱;之後是類 別名稱,和循序圖相同,我們也可以省略之前的 名稱來建立匿名物件。

(33)

11-3-1 通訊圖的基本符號 - 連接

在通訊圖的連接( Links )是一條沒有箭頭的直線

,可以連接 2 位參與者,表示之間擁有傳送訊息 的管道,可以傳送訊息;反之如果沒有建立連接 ,就表示這 2 位參與者之間不允許傳送訊息。

(34)

11-3-1 通訊圖的基本符號 - 訊息

 通訊圖的訊息格式和循序圖相似,其基本語法如下所示: 循序編號 : 訊息名稱 ( 參數列 ): 傳回型態  在第一層的第 1 個訊息編號是 1 ,第 2 個是 2 、 3 、 4 , 依序增加代表其時間順序,如下所示: 1: 2: 3: 4:  下一層訊息擁有相同字首編號,訊息編號 1 的下一層循序 編號擁有字首 1. ,每一個 . 小數點代表一個階層,依序為 1.1 、…、 1.4 ,如下所示: 1.1: 1.2: 1.3: 1.4:

(35)

1132 通訊圖的訊息

-建立物件實例的訊息

在通訊圖建立物件實例的訊息是 create() ,當訊息名稱為

create 時,就表示它是建立物件實例的訊息,我們也可以 使用模版 <<create>> 來表示,如下圖所示:

(36)

1132 通訊圖的訊息

-同步訊息

同步訊息在循序圖需要使用 Par 片斷來建立,通

訊圖就只需在循序編號加上英文字母的字尾來表 示是同步訊息,如下圖所示:

(37)

1132 通訊圖的訊息

-重複訊息

 在通訊圖的訊息後方可以加上防衛條件表示當條 件成立時,就重複送出訊息,如下圖所示:

(38)

1132 通訊圖的訊息

-條件訊息

在通訊圖的訊息後加上防衛條件( Guard

Condition )就成為條件訊息,只有當防衛條件為 真 true 時才送出訊息,如下圖所示:

(39)

1132 通訊圖的訊息

-將訊息送給自己

 如同循序圖,通訊圖也可以將訊息傳送給自己, 如下圖所示:

(40)

11-3-3 將循序圖轉換成通訊圖 - 循序圖

將第 11-2 節範例的循序圖一步一步轉換成通訊圖

。例如: Loop 片斷洗車服務的循序圖,如下圖所 示:

(41)

11-3-3 將循序圖轉換成通訊圖 - 步驟一

Step 1 :將循序圖的

參與者一一新增至通 訊圖,如右圖所示:

(42)

11-3-3 將循序圖轉換成通訊圖 - 步驟二

Step 2 :建立參與者

之間的連接,如右圖 所示:

(43)

11-3-3 將循序圖轉換成通訊圖 - 步驟三 ( 訊

息 )

Step 3 :新增參與者之間傳送的訊息,如下表所示: 參與者 層數 訊息 說明 使用者 -> 洗車服務 1 1: 洗車 ( 方式 ) 第 1 層只有 1 個訊息所以是 1 ,如有 2 個,就是 1 和 2 , 以此類推 洗車服務 -> 車 2 1.1: 洗車 ( 方式 ) 在第 2 層也只有 1 個訊息, 所以是 1.1 ,如有 2 個,就是 1.1 和 1.2 ,以此類推 車 -> 水洗 3 1.1.1a 洗車 ( 車 ) 在第三層有 2 個訊息,正常 的編號是 1.1.1 和 1.1.2 ,不 過因為是互斥選擇條件,所 以是同步訊息 1.1.1a 和 1.1.1b 車 -> 泡沫洗 3 1.1.1b 洗車 ( 車 ) 其說明同上

(44)

11-3-3 將循序圖轉換成通訊圖 - 步驟三 ( 圖

(45)

11-3-3 將循序圖轉換成通訊圖 - 步驟四

Step 4 :最後在訊息

上加上重複和互斥選 擇條件訊息的防衛條 件,如右圖所示:

(46)

11-4 時序圖 - 說明

時序圖( Timing Diagrams )是 UML 2.x 版新增的

圖形,可以顯示一段時間內,參與者狀態或值的 改變,和進一步標示互動的持續限制與什麼事件 驅動狀態的改變。  當使用循序圖和通訊圖描述的互動有時間限制時 ,例如:互動需要在 5 秒之內完成,和訊息需要 在不超過互動時間 1/3 來回傳等,我們就可以使 用時序圖來進一步描述互動的時間限制。

(47)

11-4 時序圖 - 生命線與時間刻記

 時序圖的生命線 ( Lifeline )和循序 圖相同,它是參與者 參與互動的時間軸, 通常是從左至右增加 ,在時序圖是使用長 方形框架來表示,同 一個框架中允許多個 參與者的生命線,如 右圖所示:

(48)

11-4 時序圖 - 狀態生命線

狀態生命線( State Lifeline )顯示生命線的狀態因時間而 改變,在時序圖的 Y 軸是狀態清單, X 軸顯示時間,以時 間刻記為單位來增加。例如:洗衣機洗衣服時有 4 個狀態 :浸泡、洗滌、洗淨和脫水,使用狀態生命線建立的時序 圖,如下圖所示:

(49)

11-4 時序圖 - 值生命線

值生命線( Value Lifeline )顯示項目值因時間而改變, X 軸顯示的時間如同狀態生命線,它是使用一對水平線交叉 來表示值的改變。例如:洗衣機洗衣服時有 4 個狀態:浸 泡、洗滌、洗淨和脫水,使用值生命線建立的時序圖,如 下圖所示:

(50)

11-4 時序圖 - 持續限制與事件

持續限制( Duration Constraints )是在描述這部分的互動

會持續多久,我們也可以延著時間線( Timeline )上,標 示驅動狀態改變的事件( Event ),如下圖所示:

(51)

11-5 互動概觀圖

11-5-1 互動概觀圖的基本符號11-5-2 互動概觀圖的範例

(52)

11-5 互動概觀圖

互動概觀圖( Interaction Overview Diagram )可以

描述高階控制流程和之間的互動,它是一種活動 圖的特殊版本,只是將活動圖中的動作改為互動 圖來呈現。  互動概觀圖類似活動圖都可以視覺化呈現活動的 流程,只不過互動概觀圖的每一個動作是一個互 動圖,包含:循序、通訊、時序和互動概觀圖。

(53)

11-5-1 互動概觀圖的基本符號 - 互動使用

互動使用( Interaction Use )如同觸發動作,它是

參考已經存在的互動圖,使用名為 ref 的框架,在 中間顯示名稱,這就是對應的互動圖名稱,如下 圖所示:

(54)

11-5-1 互動概觀圖的基本符號 - 內建互動

內建互動( Inline Interaction )或稱為互動元素

( Interaction Element ),也可以直接稱為互動, 它是一個使用框架包圍的互動圖,我們可以替框 架命名或使用匿名,如下圖所示:

(55)

11-5-2 互動概觀圖的範例

 學生選課的互動概 觀圖是從選擇科系 開始,然後選擇課 程且檢查是否擋修 ,如果允許選課, 就可以選擇哪一位 老師開的課,和檢 查開課是否已經額 滿,如果沒有,就 建立選課資料;否 則加入等待清單, 如右圖所示:

(56)

11-6 繪製互動圖

11-6-1 繪製循序圖11-6-2 繪製通訊圖11-6-3 繪製時序圖

(57)

11-6-1 繪製循序圖 - 新增參與者

SIM 的生命線代表循序圖中參與互動的參與者,

請從「工具箱」視窗拖拉【生命線】至編輯區域 來新增參與者,如下圖所示:

(58)

11-6-1 繪製循序圖 - 建立訊息

 在循序圖新增生命線且調整生命線長度後,就可以在生命 線之間建立訊息。請在「工具箱」視窗選擇訊息種類,然 後從開始的生命線按一下,拖拉至結束生命線且放開滑鼠 按鍵,就可以建立訊息,如下圖所示:

(59)

11-6-1 繪製循序圖 - 輸入訊息內容

 在循序圖上按二下訊息的箭頭線,可以輸入訊息內容,因 為 SIM 預設靠左對齊,基於編排考量,可以在之前加上一 些空白字元。另一種方式是選訊息,開啟「屬性」對話方 塊來輸入訊息,如下圖所示:

(60)

11-6-1 繪製循序圖 - 產生與消滅訊息

在 SIM 建立產生訊息仍然需要先建立欲建立物件的生命線 ,然後在「工具箱」視窗選【產生訊息】,即可拖拉建立 產生訊息,消滅訊息的建立稍有不同,請先選【消滅訊 息】,然後拖拉至欲消滅物件生命線上,可以建立一個大 X 符號,如下圖所示:

(61)

11-6-1 繪製循序圖 - 組合片斷

循序圖的組合片斷是由互動運算子和運算元組成,在 SIM

是先從「工具箱」視窗拖拉長方形的片斷框,例如: Alt 片斷,如下圖所示:

(62)

11-6-2 繪製通訊圖 - 參與者

 在通訊圖新增參與者是從「工具箱」視窗拖拉【 生命線】至編輯區域,如下圖所示:

(63)

11-6-2 繪製通訊圖 - 連接

 在通訊圖的參與者之間建立連接,就是在「工具 箱」視窗選【連接】,如果訊息是從參與者 A 傳 遞至參與者 B ,在建立連接時請從參與者 A 拖拉 至參與者 B ,如下圖所示:

(64)

11-6-2 繪製通訊圖 - 訊息

 在通訊圖的連接新增訊息有兩種方式,一是按下 方【新增循序訊息】鈕,如下圖所示:

(65)

1163 繪製時序圖

-建立時序圖框架

 在「工具箱」視窗拖拉【框架】項目,就可以建 立時序圖的框架,如下圖所示:

(66)

1163 繪製時序圖

-建立時間刻記

 按二下框架,可以在「屬性」對話方塊【一般】 標籤的名稱欄輸入名稱,選【時間刻記值】標籤 可以輸入時間刻記的標籤值,如下圖所示:

(67)

1163 繪製時序圖

-新增生命線

選框架,按下方第 1 個按鈕可以建立狀態生命線

(68)

1163 繪製時序圖

-輸入持續限制與事件

 在「屬性」對話方塊選【事件】標籤,可以在【 持續限制】和【事件】欄輸入持續限制與事件。

(69)

1164 繪製互動概觀圖

-新增互動使用

 在「工具箱」視窗拖拉【互動使用】項目,可以 建立名為 ref 的框架,按二下就可以更改名稱和調 整尺寸,如下圖所示:

(70)

1164 繪製互動概觀圖

-新增內建互動

 在「工具箱」視窗拖拉【內建互動】項目,就可 以建立名為 sd 的框架,按二下可以更改名稱和調 整尺寸,如下圖所示:

(71)
(72)
(73)

參考文獻

相關文件

這種「對話札記」(dialogue journals) 藉由 教師提問、給予回饋及建議,並與學生產 生互動的方式,可以清楚呈現學生長時間

• 這種 學與教策略把歷史了 解和歷史思考的權利還給 學生,激發了同學之間的 互動,有利協作能力的發

[r]

[r]

Zivot and Andrews(1992) 將 Perron(1989) 擴充成考慮未知結構性 轉變的單根檢定 , 其概念與之前 max-Chow 檢定一樣 : 找出一個轉 變點

許多時間序列資料在公布時已經做過季節調整 , 如美國普查局 (the U.S. Census Bereau) 發展並使用 X-11 與 X-12 調整法。. EViews

即使各種新檢定並不能適用在每一個模型設定 , 這些新檢定的表現 都遠勝過傳統 ADF/PP 檢定。 因此 , Maddala and Kim (1998) 建議 應該揚棄 ADF/PP 檢定 (it is time to completely

一階隨機差分方程式.