日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

轻松理解UML用例图时序图类图的教程

發布時間:2023/12/20 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 轻松理解UML用例图时序图类图的教程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

摘自https://zhuanlan.zhihu.com/p/29874146

寫在前面

當你老大扔給你這樣的圖,或者你需要完成某些功能而去看文檔的時候發現以下類似這樣的圖會不會不(一)知(臉)所(懵)措(逼):

?

?

(圖片來至wikipedia)

?

?

(圖片來至微信內網頁支付時序圖)

?

?

(圖片來至wikipedia)

?

如果你看了都不會一臉懵逼,那么可以出門左轉啦,這篇文章就是來說明這些圖的意思,讓你在工作交流中,或者在看一些文檔,或者看我的一些關于設計模式的文章,甚至架構建模中,都能輕松理解,毫無壓力!

用例圖

剛剛我們看到的第一張圖片就是用例圖,用例圖有以下幾個東東:

  • 用例
  • 參與者
  • 關聯
  • 系統邊界

用例使用橢圓來表示,橢圓里邊寫上用例的名稱:

?

?

參與者用一個小人兒,在小人兒下面寫上參與者名稱,例如學生:

?

?

關聯用一條線兒表示:

?

?

把用例圍起來,系統邊界就用個矩形啦:

?

?

舉個例子:

?

?

我們可以看到這個

系統叫做 「購物系統」 ; 有注冊賬號、登錄系統、生成訂單的用例(這里只列舉幾個用例,其它用例省略); 參與者有顧客和管理員; 顧客關聯到了注冊賬號和登錄系統的用例; 管理員關聯到了登錄系統和生成訂單的用例!

時序圖

時序圖就是我們剛剛看到的第二個圖,時序圖有以下幾個東東:

  • 對象
  • 生命線
  • 活動條
  • 消息
  • 控制流
    • 順序
    • 分支
    • 循環

?

對象在矩形里邊,左邊是對象名稱,右邊是對象類型,下方還有一條線:

?

?

用虛線代表的是對象的生命線:

?

?

活動條是一個豎著的矩形,當接收到消息的時候,這個對象就會有活動條:

?

?

消息用一根箭頭,箭頭上面寫上消息信息,例如一個登錄方法 login(userName,passWord):

?

?

控制流有三種,普通就是按順序的一個流程,還有分支就相當于if else:

?

?

矩形里邊有一條虛線,左上角用ALT表示,當C為true的時候,就執行虛線上方的內容,當C為false的時候就執行虛線下方的內容。

循環控制流:

?

?

左上角有LOOP表示循環,當C為true的時候,就循環執行方框里邊的內容!

舉個時序圖例子:

?

?

可以看到,每個對象都有它們的生命線(虛線);

  • 一開始用戶給類型為GUI(界面)的Login對象發送一個登錄信息?「 login(userName,passWord)」 ;
  • Login這個對象接收到了就會產生活動條,這時候Login這個界面會給類型為Controller的loginController發送登錄信息「 login(userName,passWord)」 ;
  • 此時loginController接收到信息產生活動條,這時候loginController去找類型為DB的UserDao,給它發送了一個獲取用戶密碼的信息「getUserPassword(userName)」;
  • UserDao接收到信息后產生活動條,返回用戶的密碼;
  • 此時loginController接收到信息(用戶的密碼 userPassword),loginController此刻將信息發送給自己,通過verify去校驗密碼并且用result接收結果;
  • 校驗就產生了分支控制流,當resul為true的時候loginController會發送success給Login,當result為false的時候,loginController會發送failure給Login;
  • 最后Login最后給用戶發送messag信息。
  • 好了,當你看到這里的時候,你就會發現,以后關于這類的時序圖對你來說已經不在話下了。例如本文一開始的第二張圖。

    類圖

    類圖有以下幾個東東:

    • 類名
    • 屬性
    • 方法
    • 可見性
    • 數據類型
    • 關聯關系
    • 依賴關系
    • 繼承/實現關系
    • 組合/聚合關系

    類名、屬性、方法在一個矩形中,分為上中下:

    ?

    ?

    可見性:

    • 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用例图时序图类图的教程的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。