轻松理解UML用例图时序图类图的教程
摘自https://zhuanlan.zhihu.com/p/29874146
寫在前面
當你老大扔給你這樣的圖,或者你需要完成某些功能而去看文檔的時候發現以下類似這樣的圖會不會不(一)知(臉)所(懵)措(逼):
?
?
(圖片來至wikipedia)
?
?
(圖片來至微信內網頁支付時序圖)
?
?
(圖片來至wikipedia)
?
如果你看了都不會一臉懵逼,那么可以出門左轉啦,這篇文章就是來說明這些圖的意思,讓你在工作交流中,或者在看一些文檔,或者看我的一些關于設計模式的文章,甚至架構建模中,都能輕松理解,毫無壓力!
用例圖
剛剛我們看到的第一張圖片就是用例圖,用例圖有以下幾個東東:
- 用例
- 參與者
- 關聯
- 系統邊界
用例使用橢圓來表示,橢圓里邊寫上用例的名稱:
?
?
參與者用一個小人兒,在小人兒下面寫上參與者名稱,例如學生:
?
?
關聯用一條線兒表示:
?
?
把用例圍起來,系統邊界就用個矩形啦:
?
?
舉個例子:
?
?
我們可以看到這個
系統叫做 「購物系統」 ; 有注冊賬號、登錄系統、生成訂單的用例(這里只列舉幾個用例,其它用例省略); 參與者有顧客和管理員; 顧客關聯到了注冊賬號和登錄系統的用例; 管理員關聯到了登錄系統和生成訂單的用例!
時序圖
時序圖就是我們剛剛看到的第二個圖,時序圖有以下幾個東東:
- 對象
- 生命線
- 活動條
- 消息
- 控制流
- 順序
- 分支
- 循環
?
對象在矩形里邊,左邊是對象名稱,右邊是對象類型,下方還有一條線:
?
?
用虛線代表的是對象的生命線:
?
?
活動條是一個豎著的矩形,當接收到消息的時候,這個對象就會有活動條:
?
?
消息用一根箭頭,箭頭上面寫上消息信息,例如一個登錄方法 login(userName,passWord):
?
?
控制流有三種,普通就是按順序的一個流程,還有分支就相當于if else:
?
?
矩形里邊有一條虛線,左上角用ALT表示,當C為true的時候,就執行虛線上方的內容,當C為false的時候就執行虛線下方的內容。
循環控制流:
?
?
左上角有LOOP表示循環,當C為true的時候,就循環執行方框里邊的內容!
舉個時序圖例子:
?
?
可以看到,每個對象都有它們的生命線(虛線);
好了,當你看到這里的時候,你就會發現,以后關于這類的時序圖對你來說已經不在話下了。例如本文一開始的第二張圖。
類圖
類圖有以下幾個東東:
- 類名
- 屬性
- 方法
- 可見性
- 數據類型
- 關聯關系
- 依賴關系
- 繼承/實現關系
- 組合/聚合關系
類名、屬性、方法在一個矩形中,分為上中下:
?
?
可見性:
- private的時候在前方用 - 表示
- public的時候在前方用 + 表示
- protected的時候在前方用 # 表示
數據類型表示形式:
名字 : 類型
例如:
?
?
userName 和 passWord 這兩個屬性是protected修飾的,數據類型都是String; login() 和 register() 這兩個方法是public修飾的,數據類型都是boolean;
關聯關系,用實線表示,例如A關聯B:
?
?
依賴關系,用虛線表示,例如A依賴B:
?
?
繼承關系,用一個△ + 一條實線表示,例如A繼承B:
?
?
依賴關系,用過一個△ + 一條虛線表示,例如A實現B:
?
?
組合關系,用一個 ? + 一條虛線表示,例如A組合B:
?
?
聚合關系,用一個 ◇ + 一條虛線表示,例如A組合B:
?
?
聚合:表示兩個對象之間是整體和部分的弱關系,部分的生命周期可以超越整體。如電腦和鼠標。組合:表示兩個對象之間是整體和部分的強關系,部分的生命周期不能超越整體,或者說不能脫離整體而存在。組合關系的“部分”,是不能在整體之間進行共享的。
類圖舉例子:
?
?
可以看到,有User類,Customer類,Address類,Role類,Payment類,aliPay類,wechatPay類。
其中Customer 繼承 User,User類的userName 和 passWord 這兩個屬性是protected修飾的,數據類型都是String; login() 和 register() 這兩個方法是public修飾的,數據類型都是boolean;
Address和Role聚合User;
Customer依賴Payment;
aliPay 和 wechatPay 實現了 Payment!
以上,就是關于UML的用例圖,時序圖,類圖!當然可以自己手動畫幾個試試,感覺挺不錯哦,相信你在工作交流中,或者在看一些文檔,或者看我的一些關于設計模式的文章,甚至架構建模中,都能輕松理解,毫無壓力!
轉載于:https://www.cnblogs.com/zhangfengshi/p/10181599.html
總結
以上是生活随笔為你收集整理的轻松理解UML用例图时序图类图的教程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 简明python教程最新pdf_《简明P
- 下一篇: 应用程序池优化配置方案(IIS7、IIS