系統分析筆記_COMMUNICATION DIAGRAM(通訊圖)

通訊圖(Communication diagram)和循序圖(Sequence diagrams)有何不同?
都是用來描述物件之間的互動行為,但是它們的呈現方式不同。
循序圖(Sequence diagrams)是按時間順序來呈現物件之間的互動行為。
通訊圖是按照物件之間的消息傳遞來呈現物件之間的互動行為。通訊圖更加強調物件之間的關係,可以更清晰地顯示物件之間的相互作用。此外,通訊圖還可以顯示平行發送訊息,而序列圖則需要使用分支和合併來實現。

請解釋在通訊圖中建立參與者的語法。
在通訊圖中建立參與者(Participants),符號是長方形,語法如下:
名稱:類別名稱
(備註:分號前是物件名稱;之後是類別名稱,和循序圖相同)

如果要建立匿名物件,可以省略名稱部分,只保留類別名稱。
:類別名稱

在通訊圖中,如何表示平行發送訊息?
平行發送訊息可以使用循序編號加上英文字母的字尾來表示

請解釋在通訊圖中的Link
通訊圖的連接(Links)是一條沒有箭頭的直線,可以連接2位參與者,表示之間擁有傳送訊息的管道。

請解釋在通訊圖中的Message
[sequenceNumber:] methodName(parameters) [:returnValue]
(在Message notation中,方括號中的部分都是可以省略,可有可無的。)
sequenceNumber是Message的循序編號,用於表示Message的時間順序。
methodName是Message的名稱,用於描述Message的內容。
parameters是Message的參數,用於描述Message所帶的參數。
returnValue是Message的返回值,用於描述Message的返回值。

Message的符號是一條箭頭,箭頭的方向表示訊息的傳遞方向,箭頭的結尾處可以加上訊息的名稱,用於描述訊息的內容。

Message是用來表示物件之間的互動行為的基本元素。Message可以是同步的,也可以是異步的。同步的Message表示發送訊息的物件必須等待接收訊息的物件回應後才能繼續執行,而異步的Message表示發送訊息的物件不需要等待回應就可以繼續執行。

在通訊圖中,可以使用以下語法來表示條件訊息:
methodName(parameters) [Guard]
其中,methodName是Message的名稱,parameters是Message的參數,Guard是一個條件,用於表示當條件成立時,就送出訊息。Guard的語法是一個方括號,包含一個條件表達式。條件表達式可以是任何合法的布林表達式,用於描述訊息的條件。

在通訊圖中,有兩種常見的重複訊息語法,分別是循序重複和平行重複。
1.循序重複
循序重複是指在通訊圖中,一個Message會被重複執行多次,每次執行之間需要等待一段時間。循序重複的語法如下:
methodName(parameters) *[Guard]

以下是一個循序重複的示例:
search(t[i]) *[i=1..12]
這個示例表示一個名為search的Message會被重複執行12次,每次執行之間需要等待一段時間。Guard的條件是i=1..12,表示當i的值在1到12之間時,就重複執行search Message。

2.平行重複
平行重複是指在通訊圖中,多個Message會同時執行多次,每次執行之間不需要等待。平行重複的語法如下:
methodName(parameters) [Guard]

其中,methodName是Message的名稱,parameters是Message的參數,Guard是一個條件,用於表示當條件成立時,就重複送出訊息。Guard的語法是一個方括號,包含一個條件表達式。在通訊圖中,平行重複的符號是一個箭頭,箭頭的旁邊會有一個方括號,用於表示Guard的條件。

以下是一個平行重複的示例:
start() [count<10]
這個示例表示一個名為start的Message會被重複執行多次,每次執行之間不需要等待。Guard的條件是count<10,表示當count的值小於10時,就重複執行start Message。在這個示例中,由於start Message是平行重複的,因此可以同時執行多個start Message,而不需要等待前一個start Message執行完成。







留言

這個網誌中的熱門文章

何謂淨重(Net Weight)、皮重(Tare Weight)與毛重(Gross Weight)

Architecture(架構) 和 Framework(框架) 有何不同?_軟體設計前的事前規劃的藍圖概念

(2021年度)駕訓學科筆試準備題庫歸納分析_法規是非題