EA&UML日拱一卒 通信圖基本操作

什么通信圖
通信圖主要用于表現(xiàn)生命線之間的相互作用,其中生命線之間的結(jié)構(gòu)與消息傳遞過程的對(duì)應(yīng)關(guān)系是核心。消息的順序是通過序列給出的編號(hào)方案表達(dá)。通信圖相當(dāng)于不使用任何結(jié)構(gòu)機(jī)制的簡單序列圖。
創(chuàng)建通信圖
選擇適當(dāng)?shù)腜ackage節(jié)點(diǎn),鼠標(biāo)右鍵啟動(dòng)上下文菜單并選擇【New Diagram】菜單項(xiàng)。

分類選擇【UML Behavioral】,類型選擇【Communication】。
添加生命線
可以通過工具欄中的Object圖標(biāo)添加生命線。

生命線這個(gè)說法來自序列圖(Sqeuence Diagram)。同樣,Boundary,Control,Entity也和序列圖中一樣,分別代表MVC中的View,Control和Model??梢愿鶕?jù)需求使用。這里統(tǒng)一使用Object。
接下來我們以某公司管理活動(dòng)為例對(duì)通信圖進(jìn)行說明。

上圖中我們通過Object圖標(biāo)添加了3個(gè)生命線,分別是Project Manager,Leader和Programer。他們是接下來說明的通信過程的參與者。
添加關(guān)聯(lián)關(guān)系
我們使用Associate圖標(biāo)添加生命之間的關(guān)聯(lián)關(guān)系。這種關(guān)系可以理解為不同生命線之間的溝通渠道,它們是通信的基礎(chǔ)。

也可以根據(jù)需求為關(guān)聯(lián)關(guān)系設(shè)置多重度等信息。
添加消息
在關(guān)聯(lián)關(guān)系上按下鼠標(biāo)右鍵啟動(dòng)上下文菜單。

根據(jù)消息的方向選擇菜單項(xiàng),這里我們選擇從ProjectManager到Leader。

可以看到響應(yīng)的關(guān)聯(lián)關(guān)系旁邊出現(xiàn)了一個(gè)向下的箭頭和形式如【1:<call>()】的消息簽名。最前面的1就是消息的編號(hào)。
鼠標(biāo)選中消息之后可以通過屬性對(duì)話框?qū)ζ溥M(jìn)行編輯。

上圖中我們修改了消息的名稱為SendnNotification。由于這是發(fā)通知的第一個(gè)動(dòng)作,因此需要確?!維tart New Group】被選中。
Leader收到通知以后需要將通知轉(zhuǎn)發(fā)給每個(gè)Programer,我們以同樣的方式添加Leader到Programer的消息:

可以看到消息編號(hào)變成了1.1,表示這個(gè)消息是1:SendNotification的后續(xù)動(dòng)作。繼續(xù)編輯這個(gè)消息:

可以看到【Start New Group】處于非選中狀態(tài)。保存之后的通信圖狀態(tài)如下:

明天繼續(xù)!
作者著作介紹
《實(shí)戰(zhàn)Python設(shè)計(jì)模式》是作者出版的技術(shù)書籍,該書利用Python 的標(biāo)準(zhǔn)GUI 工具包tkinter,通過可執(zhí)行的示例對(duì)23 個(gè)設(shè)計(jì)模式逐個(gè)進(jìn)行說明。這樣一方面可以使讀者了解真實(shí)的軟件開發(fā)工作中每個(gè)設(shè)計(jì)模式的運(yùn)用場景和想要解決的問題;另一方面通過對(duì)這些問題的解決過程進(jìn)行說明,讓讀者明白在編寫代碼時(shí)如何判斷使用設(shè)計(jì)模式的利弊,并合理運(yùn)用設(shè)計(jì)模式。

對(duì)設(shè)計(jì)模式感興趣而且希望隨學(xué)隨用的讀者通過本書可以快速跨越從理解到運(yùn)用的門檻; 希望學(xué)習(xí)Python GUI 編程的讀者可以將本書中的示例作為設(shè)計(jì)和開發(fā)的參考; 使用Python 語言進(jìn)行圖像分析、數(shù)據(jù)處理工作的讀者可以直接以本書中的示例為基礎(chǔ),迅速構(gòu)建自己的系統(tǒng)架構(gòu)。
覺得本文有幫助?請分享給更多人。
關(guān)注微信公眾號(hào)【面向?qū)ο笏伎肌枯p松學(xué)習(xí)每一天!
面向?qū)ο箝_發(fā),面向?qū)ο笏伎迹?/span>
