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

Slides:



Advertisements
Similar presentations
第一單元 建立java 程式.
Advertisements

Introduction to C Programming
音樂之旅 第一冊 單元二 音名、唱名.
08 CSS 基本語法 8-1 CSS 的演進 8-2 CSS 樣式規則與選擇器 8-3 連結HTML 文件與CSS 樣式表
題目:十六對一多工器 姓名:李國豪 學號:B
Chapter 5 迴圈.
程式設計概論 1.1 程式設計概論 程式語言的演進 物件導向程式 程式開發流程 1.2 C++開發工具
Visual C++ introduction
Q101 在701 SDX Linux上的標準安裝與使用程序v2
JDK 安裝教學 (for Win7) Soochow University
第1章 認識Arduino.
2-3 基本數位邏輯處理※.
L、物件互動行為塑模~循序圖 UML 2.0的四種互動圖 循序圖 循序圖的建構步驟 循序圖建構實例 循序圖、溝通圖 互動概觀圖、時序圖
客戶端的檔案上傳 HtmlInputFile檔案控制項 上傳單一檔案 同時上傳多個檔案.
類別(class) 類別class與物件object.
SQL Stored Procedure SQL 預存程序.
R教學 安裝RStudio 羅琪老師.
安裝JDK 安裝Eclipse Eclipse 中文化
Word與PowerPoint的結合 建功國小 陳旻杰 健行國小 張慧如.
Echo Server/Client Speaker:Fang.
Quiz6 繳交期限: 12/14(四) 23:59前.
OpenID與WordPress使用說明
7-1 互 動 7-2 順序圖 7-3 合作圖 7-4 順序圖的個案說明 7-5 合作圖的個案說明
Wavelet transform 指導教授:鄭仁亮 學生:曹雅婷.
電腦攻擊與防禦 使用電腦教室VMware軟體說明.
網路安全技術 OSI七層 學生:A 郭瀝婷 指導教授:梁明章.
Topic Introduction—RMI
第一單元 建立java 程式.
建立一 function s (type) 可以用來繪製cyclic-harmonic curves
網頁程式設計 本章投影片錄自HTML5、CSS3、RWD、jQuery Mobile跨裝網頁設計 陳惠貞 著 碁峰資訊股份有限公司出版
義守大學電機工程學系 陳慶瀚 第4章 VHDL Sequential語法 義守大學電機工程學系 陳慶瀚
Pocket Access.
第 19 章 XML記憶體執行模式.
雲端計算.
HTML – 超連結與圖片 資訊教育.
資料來源 2 網路過濾軟體之安裝說明 資料來源 2.
表格(HTML – FORM).
其他 ER 相關觀念 以及OO模型 國立中央大學 資訊管理系 范錚強 2002 中央大學。范錚強.
如何利用範本來製作網頁.
CH05. 選擇敘述.
Google協作平台+檔案分享(FileZilla+網路芳鄰)
期末考.
挑戰C++程式語言 ──第8章 進一步談字元與字串
觀塘功樂官立中學 設計與應用科技 電腦輔助設計學習 SketchUp 梳化設計.
圓的定義 在平面上,與一定點等距的所有點所形成的圖形稱為圓。定點稱為圓心,圓心至圓上任意一點的距離稱為半徑,「圓」指的是曲線部分的圖形,故圓心並不在圓上.
Class & Object 靜宜大學資工系 蔡奇偉副教授 ©2011.
MicroSim pspice.
利用 EditorConfig 自訂文字編輯器設定
流程控制:Switch-Case 94學年度第一學期‧資訊教育 東海大學物理系.
第11章 物件互動行為塑模.
MiRanda Java Interface v1.0的使用方法
PowerPoint 操作介紹 106 計算機概論
Dreamweaver 進階網頁製作 B 許天彰.
面向对象系统分析与设计 交互图.
Brief Guide of FrontPage
國立台灣大學 關懷弱勢族群電腦課程 By 資訊工程 黃振修
1757: Secret Chamber at Mount Rushmore
6.1 動畫檔案的格式 6.2 建立合適的動畫元素.
資料表示方法 資料儲存單位.
第一章 直角坐標系 1-3 函數及其圖形.
資料結構與C++程式設計進階 期末考 講師:林業峻 CSIE, NTU 7/ 15, 2010.
第四章 陣列、指標與參考 4-1 物件陣列 4-2 使用物件指標 4-3 this指標 4-4 new 與 delete
Cloud Training Material- 事件 Sherman Wang
電子郵件簡報.
在直角坐標平面上兩點之間 的距離及平面圖形的面積
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
NFC (近場通訊, Near Field Communication) 靜宜大學資管系 楊子青
Chapter 4 Multi-Threads (多執行緒).
第十一章、互動圖.
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
Presentation transcript:

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

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

11-1 互動圖的基礎-種類 循序圖(Sequence Diagrams):使用時間軸方式描述物件之間的互動,強調物件之間訊息傳遞的時間順序。 通訊圖(Communication Diagrams):描述物件的互動,強調物件之間的關係、訊息流向和控制流程,在1.x版稱為合作圖(Collaboration Diagrams)。 時序圖(Timing Diagrams):UML 2.0版支援的圖形,描述詳細的時間資訊,互動元素之間的條件資訊和狀態改變。 互動概觀圖(Interaction Overview Diagrams):UML 2.0版支援的圖形,使用循序、通訊和時序圖以高階方式描述系統發生的重要互動。

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

11-2 循序圖 11-2-1 循序圖的基本符號 11-2-2 循序圖的訊息 11-2-3 框架 11-2-4 複雜互動的互動片斷

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

11-2 循序圖-範例 例如:圖書銷售系統(Book Sales System)產生圖書銷售報表的循序圖,如下圖所示:

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

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

11-2-1 循序圖的基本符號-訊息(說明) 訊息(Messages)是從來源參與者(或稱送出參與者)的生命線送到目的參與者(或稱接收參與者)的生命線,可以讓接收訊息的參與者進入啟動棒來執行所需操作,如下圖所示:

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

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

11-2-2 循序圖的訊息-呼叫訊息 呼叫訊息(Call Message)是循序圖最常用的訊息,它是呼叫目標參與者的操作,例如:客人(Customer)在自動販賣機面板投錢操作的循序圖,如下圖所示:

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

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

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

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

11-2-2 循序圖的訊息-產生訊息與消滅訊息 在循序圖的物件可以送出產生訊息<<create>>建立其他實例(Instances);或送出消滅訊息<<destroy>>表示物件生命周期的結束。例如:從購物車新增和刪除訂單項目的循序圖,如下圖所示:

11-2-3 框架 UML 2.x版的框架(Frame)提供UML圖形一個圖形邊界,它是一個大型的長方形框,在框架左上角顯示框架名稱,實際UML圖形是位在長方形框的範圍之內,如下圖所示:

11-2-4 複雜互動的互動片斷- 說明 對於循序圖複雜互動的條件與迴圈,舊版UML 1.x版在此部分並沒有明確的定義,所以可以使用多種表示方法來呈現。 UML 2.0版是使用組合片斷(Combined Fragment)來處理複雜互動,它是由一至多個互動片斷(Interaction Fragment)組成,通常我們是將組合片斷置於一個框架中。

11-2-4 複雜互動的互動片斷- 圖例

11-2-4 複雜互動的互動片斷- 互動運算子 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 並行執行的互動片斷 neg 無效的互動片斷,即不會執行的互動片斷

11-2-4 複雜互動的互動片斷- Opt片斷 Opt片斷是建立條件訊息,只有當防衛條件為真true時,才執行互動運算元。例如:使用者從ATM自動櫃員機提款的循序圖,如下圖所示:

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

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

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

11-2-4 複雜互動的互動片斷- Ref片斷(範例1) 例如:在網站選擇建立不同種類帳戶的循序圖,此循序圖分為兩部分,如下所示: Ref片斷:在循序圖參考名為選擇帳戶種類的循序圖,如下圖所示:

11-2-4 複雜互動的互動片斷- Ref片斷(範例2) Sd框架:一個框架的循序圖,它是被Ref片斷參考的循序圖,如下圖所示:

11-3 通訊圖 11-3-1 通訊圖的基本符號 11-3-2 通訊圖的訊息 11-3-3 將循序圖轉換成通訊圖

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

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

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

11-3-1 通訊圖的基本符號-連接 在通訊圖的連接(Links)是一條沒有箭頭的直線,可以連接2位參與者,表示之間擁有傳送訊息的管道,可以傳送訊息;反之如果沒有建立連接,就表示這2位參與者之間不允許傳送訊息。

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:

11-3-2 通訊圖的訊息- 建立物件實例的訊息 在通訊圖建立物件實例的訊息是create(),當訊息名稱為create時,就表示它是建立物件實例的訊息,我們也可以使用模版<<create>>來表示,如下圖所示:

11-3-2 通訊圖的訊息- 同步訊息 同步訊息在循序圖需要使用Par片斷來建立,通訊圖就只需在循序編號加上英文字母的字尾來表示是同步訊息,如下圖所示:

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

11-3-2 通訊圖的訊息- 條件訊息 在通訊圖的訊息後加上防衛條件(Guard Condition)就成為條件訊息,只有當防衛條件為真true時才送出訊息,如下圖所示:

11-3-2 通訊圖的訊息- 將訊息送給自己 如同循序圖,通訊圖也可以將訊息傳送給自己,如下圖所示:

11-3-3 將循序圖轉換成通訊圖-循序圖 將第11-2節範例的循序圖一步一步轉換成通訊圖。例如:Loop片斷洗車服務的循序圖,如下圖所示:

11-3-3 將循序圖轉換成通訊圖-步驟一 Step 1:將循序圖的參與者一一新增至通訊圖,如右圖所示:

11-3-3 將循序圖轉換成通訊圖-步驟二 Step 2:建立參與者之間的連接,如右圖所示:

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 車->泡沫洗 1.1.1b 洗車(車) 其說明同上

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

11-3-3 將循序圖轉換成通訊圖-步驟四 Step 4:最後在訊息上加上重複和互斥選擇條件訊息的防衛條件,如右圖所示:

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

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

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

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

11-4 時序圖-持續限制與事件 持續限制(Duration Constraints)是在描述這部分的互動會持續多久,我們也可以延著時間線(Timeline)上,標示驅動狀態改變的事件(Event),如下圖所示:

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

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

11-5-1 互動概觀圖的基本符號-互動使用 互動使用(Interaction Use)如同觸發動作,它是參考已經存在的互動圖,使用名為ref的框架,在中間顯示名稱,這就是對應的互動圖名稱,如下圖所示:

11-5-1 互動概觀圖的基本符號-內建互動 內建互動(Inline Interaction)或稱為互動元素(Interaction Element),也可以直接稱為互動,它是一個使用框架包圍的互動圖,我們可以替框架命名或使用匿名,如下圖所示:

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

11-6 繪製互動圖 11-6-1 繪製循序圖 11-6-2 繪製通訊圖 11-6-3 繪製時序圖 11-6-4 繪製互動概觀圖

11-6-1 繪製循序圖-新增參與者 SIM的生命線代表循序圖中參與互動的參與者,請從「工具箱」視窗拖拉【生命線】至編輯區域來新增參與者,如下圖所示:

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

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

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

11-6-1 繪製循序圖-組合片斷 循序圖的組合片斷是由互動運算子和運算元組成,在SIM是先從「工具箱」視窗拖拉長方形的片斷框,例如:Alt片斷,如下圖所示:

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

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

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

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

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

11-6-3 繪製時序圖- 新增生命線 選框架,按下方第1個按鈕可以建立狀態生命線,第2個按鈕是值生命線,如下圖所示:

11-6-3 繪製時序圖- 輸入持續限制與事件 在「屬性」對話方塊選【事件】標籤,可以在【持續限制】和【事件】欄輸入持續限制與事件。

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

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

11-7 綜合練習-病人預約的循序圖

11-7 綜合練習-驗證租片客戶等級的通訊圖

End