EA&UML日拱一卒--類圖::協作(collaboration)
背景
上篇文章中我們以圖形編輯軟體為例說明了對象圖,但是很明顯光有Canvas和Shape軟體是沒有辦法工作的。它們只是被動的數據,需要融入更大的流程中才能發揮作用。
應用例
如果用語言描述的話圖形編輯軟體(以下稱編輯軟體)大概應該是如下
1.用戶通過目視從屏幕上的到編輯對象的當前狀態。
2.用戶通過滑鼠進行操作(鍵按下,鍵釋放,拖動)
3.系統架構接受用戶的操作轉換成事件並分發給編輯軟體
4.編輯軟體接受事件後根據目前的狀態進行相應的處理
5.通知架構更新表示內容
6.系統架構調用編輯軟體的更新處理。
7.編輯軟體調用系統架構將編輯對象表示在屏幕上
8.用戶看到屏幕上的表示內容
9.回到步驟1繼續直到軟體退出。
在UML中,上面的描述可以有很多種表達方式,本文以Qt環境開發為例,使用對象圖對編輯軟體的協作來建模。
協作圖說明
從上面的描述中可以抽象出以下的名詞:用戶,屏幕,操作/時間,系統架構,編輯軟體,編輯對象。
用戶
用戶是我們系統以外的部分,但是有時所有操作的發起者和編輯結果的確認者,不需要實現但是需要建模。我們用以下的圖標來表示。
屏幕
屏幕的責任是負責表示編輯結果,嚴格的講包括硬體,操作系統和Qt表示架構。對於編輯軟體建模來將,同樣屬於需要建模不需要實現的部分。可以看作統一看作Screen並用下面的圖標來表示。
系統架構
系 統架構負首先責接受用戶操作並轉發給編輯軟體的處理模塊。系統架構包括從接受用戶操作的硬體,操作系統,負責轉發用戶操作事件的Qt架構。另外架構也負責 編輯軟體發出的更新請求並負責在適當的時機調用編輯軟體的表示功能。也用戶,屏幕類似這也屬於需要建模不需要實現的部分,我們用以下圖形表示。
操作/事件
操作/事件可以看作是協作的參數,因此並不會有對應的圖形。
編輯軟體
在Qt架構架構中可以由QWidget的子類負責處理用戶操作和表示事件。目前稱之為view而沒有制定類型類型可以將來指定。
編輯數據
編輯數據就是編輯軟體的工作成果。
當然我們也知道,一個完整的軟體除了編輯功能還有保存文件,打開文件等等,這裡給出保存功能的例子,其他大家可以自己發揮。
總結
1.使用協作圖可以
明確系統全體構成
明確交互/協作
明確實現部分和既有部分的邊界
2.對於系統需要建模,不需要實現的的用戶,表示,處理,數據等可以考慮使用:
Actor
Boudary
Control
Entity
以上就是今天的文章,如果它能給您帶來些許收穫,歡迎點贊並推薦給朋友!
閱讀更多更新文章,請關注【面向對象思考】微信公眾號
推薦閱讀:
※在軟體開發過程中,有哪些UML圖是比較常用的?
※你認為最好的 UML 建模工具是哪一個(最好是免費軟體)?
※(翻譯)活動圖::Structural Feature Actions
※EA&UML日拱一卒--類圖::關聯(關聯,聚合,組合)
※UML quickly start