最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

plantuml畫圖實(shí)現(xiàn)代碼畫時(shí)序圖UML用例圖

 更新時(shí)間:2022年07月19日 09:46:26   作者:撿田螺的小男孩  
這篇文章主要為大家介紹了plantuml畫圖實(shí)現(xiàn)代碼畫時(shí)序圖示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

引言

最近通過代碼來畫時(shí)序圖,UML用例圖,感覺很不錯(cuò),所以給大家分享一下。

日常開發(fā),一般在設(shè)計(jì)階段,我們都需要畫時(shí)序圖、用例圖等等。大家平時(shí)畫圖的時(shí)候,是用draw.io還是processOn呢?用它們畫出的圖,其實(shí)都很挺好看的。但是呢,今天田螺哥介紹一個(gè)款開源的,畫圖神器!用代碼就能畫圖,配合IDE使用,畫圖高效簡(jiǎn)單,信手拈來,還挺美觀的。這個(gè)神奇就是PlantUML。

github地址

1. PlantUML 簡(jiǎn)介

PlantUML是一個(gè)開源項(xiàng)目,可以快速編寫UML圖的工具。它可以支持編碼的方式來生成圖形??梢杂脕懋?strong>時(shí)序圖、UML用例圖、類圖、思維導(dǎo)圖、ER圖等等。

PlantUML 畫出來的圖,簡(jiǎn)潔美觀,先給大家看看,一個(gè)用PlantUML畫出來的登錄時(shí)序圖,以及對(duì)應(yīng)畫圖的代碼,如下:

@startuml
title Sequence Diagram of User login
actor User as user
participant "gateway" as gateway
participant "user-core" as userCore
database "MySQL" as mysql
database "Redis" as redis
autonumber
user-> gateway:login request,param:username,password
activate gateway
gateway-> userCore:forward the login request
activate userCore
userCore-> userCore :check the login param
userCore-> mysql:query user info from mysql by username
activate mysql
mysql-> userCore:response with username and password
deactivate mysql
userCore->userCore:compare the requested password with the DB's password
userCore-> userCore: generate an unique token
userCore--> redis: save the token to redis
userCore-> gateway: response with the token
deactivate userCore
gateway-> user: login success with the token
deactivate gateway
@enduml

登錄用例時(shí)序圖如下:

2. PlantUML的安裝使用

PlantUML的安裝很方便的.有個(gè)插件,名字是:PlantUML Integration,大家可以去IDE的插件市場(chǎng),搜索安裝即可,如下:

安裝成功后,想快速體驗(yàn)一般的話.可以新建一個(gè)項(xiàng)目,然后新建一個(gè)plantUML File文件,然后把我上個(gè)小節(jié),登錄時(shí)序圖那個(gè)代碼復(fù)制進(jìn)去,就可以看到登錄時(shí)序圖啦.

3.如何用PlantUML 畫時(shí)序圖

什么是時(shí)序圖?

時(shí)序圖(Sequence Diagram),又名序列圖、循序圖,是一種UML交互圖。它通過描述對(duì)象之間發(fā)送消息的時(shí)間順序顯示多個(gè)對(duì)象之間的動(dòng)態(tài)協(xié)作。它可以表示用例的行為順序,當(dāng)執(zhí)行一個(gè)用例行為時(shí),其中的每條消息對(duì)應(yīng)一個(gè)類操作或狀態(tài)機(jī)中引起轉(zhuǎn)換的觸發(fā)事件。

如何用PlantUML畫時(shí)序圖呢?

你可以先新建一個(gè)PlantUML文件

然后選擇Sequence,并定義一個(gè)文件名稱

就會(huì)有默認(rèn)的時(shí)序圖生成啦.

我們照著登錄時(shí)序圖的代碼,來大概說下每個(gè)關(guān)鍵詞的意思吧.

@startuml
title Sequence Diagram of User login
actor User as user
participant "gateway" as gateway
participant "user-core" as userCore
database "MySQL" as mysql
database "Redis" as redis
autonumber
user-> gateway:login request,param:username,password
activate gateway
gateway-> userCore:forward the login request
activate userCore
userCore-> userCore :check the login param
userCore-> mysql:query user info from mysql by username
activate mysql
mysql-> userCore:response with username and password
deactivate mysql
userCore->userCore:compare the requested password with the DB's password
userCore-> userCore: generate an unique token
userCore--> redis: save the token to redis
userCore-> gateway: response with the token
deactivate userCore
gateway-> user: login success with the token
deactivate gateway
@enduml

關(guān)鍵詞解釋如下:

  • title:表示該UML用例圖的標(biāo)題
  • actor:表示人形的參與者
  • as: 使用as 關(guān)鍵字命名參與者。你可以把它理解成定義變量一樣,as后面跟著的就是變量,聲明后,我們后面就可以使用這個(gè)變量啦
  • participant:表示普通的參與者,它跟actor的主要區(qū)別是:形狀不一樣
  • database:表示參與者形狀是數(shù)據(jù)庫(kù).
  • 顯示的順序是怎么定義的:聲明的參與者順序?qū)⑹牵J(rèn)的)顯示順序。
  • autonumber:可以給參與者添加順序
  • ->:表示繪制兩個(gè)參與者之間的信息,如果你希望是虛線,可以使用-->.
  • activatedeactivate:表示參與者的生命線

當(dāng)然,PlantUML功能挺豐富的,它還可以組合消息,雖然在我的登錄時(shí)序圖還沒體現(xiàn)出來. 它提供了alt/else、opt、loop來組合消息.如下:

@startuml
Alice -> Bob: 認(rèn)證請(qǐng)求
alt 登錄成功
    Bob -> Alice: 認(rèn)證接受
else 某種失敗情況
    Bob -> Alice: 認(rèn)證失敗
    group 我自己的標(biāo)簽
    Alice -> Log : 開始記錄攻擊日志
        loop 1000次
            Alice -> Bob: DNS 攻擊
        end
    Alice -> Log : 結(jié)束記錄攻擊日志
    end
else 另一種失敗
   Bob -> Alice: 請(qǐng)重復(fù)
end
@enduml

對(duì)應(yīng)的時(shí)序圖如下:

4. 如何用PlantUML 畫UML用例圖

什么是用例圖?

用例圖(英語:use case diagram)是用戶與系統(tǒng)交互的最簡(jiǎn)表示形式,展現(xiàn)了用戶和與他相關(guān)的用例之間的關(guān)系。通過用例圖,人們可以獲知系統(tǒng)不同種類的用戶和用例。用例圖也經(jīng)常和其他圖表配合使用。

如何用PlantUML畫UML用例圖呢?

你可以先新建一個(gè)PlantUML文件,然后選擇user case,并定義個(gè)文件名

就會(huì)有默認(rèn)的UNML用例圖生成啦

我挑官網(wǎng)一個(gè)用例圖demo來介紹吧,代碼如下:

@startuml
left to right direction
actor Guest as g
package Professional {
  actor Chef as c
  actor "Food Critic" as fc
}
package Restaurant {
  usecase "Eat Food" as UC1
  usecase "Pay for Food" as UC2
  usecase "Drink" as UC3
  usecase "Review" as UC4
}
fc --> UC4
g --> UC1
g --> UC2
g --> UC3
@enduml

對(duì)應(yīng)生成的用例圖如下:

來看下每個(gè)關(guān)鍵詞的意思:

  • left to right direction:表示從左到右繪制用例圖
  • actor Guest as g:定義一個(gè)人形參與者,變量別名是g.
  • package Professional:定義一個(gè)包package,名字為Professional.package可以用來對(duì)用例和角色分組.
  • usecase "Eat Food" as UC1:定義一個(gè)用例,別名為UC1.
  • fc --> UC4:表示角色fc和用例UC4關(guān)聯(lián)起來.角色和用例之間的關(guān)系,用-->來表示。

5. 如何用plantUML 畫思維導(dǎo)圖

什么是思維導(dǎo)圖?

英文是The Mind Map,又名心智導(dǎo)圖,是表達(dá)發(fā)散性思維的有效圖形思維工具 ,它簡(jiǎn)單卻又很有效同時(shí)又很高效,是一種實(shí)用性的思維工具。

寫了一個(gè)簡(jiǎn)單的思維導(dǎo)圖,代碼如下:

@startmindmap
* 
** 計(jì)算機(jī)網(wǎng)絡(luò)面試題
*** TCP/IP十五連問
*** 兩萬字計(jì)算機(jī)面試題匯總
** MySQL面試題
** Redis面試題
** 大廠面試真題
*** 蝦皮十五連問
*** 五年Oppo后端面試真題
*** 騰訊云十五連問
@endmindmap

plantUML畫思維導(dǎo)圖,還是挺簡(jiǎn)單的,大家可以看下效果

6. 如何用planUML 畫活動(dòng)流程圖

什么是活動(dòng)圖?

動(dòng)態(tài)圖(activity diagram,活動(dòng)圖)是闡明了業(yè)務(wù)用例實(shí)現(xiàn)的工作流程。

我畫了一個(gè)簡(jiǎn)單版的登錄活動(dòng)流程圖:

@startuml
title Activity Diagram of User login
start
:user request login;
if (is request param null?) then (N)
  :query user info by username;
  if (is user info  null ?) then (N)
    :compare the password;
    if (Is password right?) then (Y)
      :generate a token ,and set it to redis;
      :response with login success;
    else(N)
       :response with wrong password code;
       stop
    endif
  else(Y)
    :response with error userinfo;
    stop
  endif
else(Y)
  :response with error param;
  stop
  endif
stop
@enduml

生成的流程圖如下:

活動(dòng)圖關(guān)鍵解釋如下:

  • start表示活動(dòng)圖流程的開始
  • stop表示活動(dòng)圖流程的結(jié)束
  • :user request login;:表示活動(dòng)流程節(jié)點(diǎn)為user request login,需要加:;的哈
  • if+then+endif表示一個(gè)完整的條件判斷

最后

本文介紹了plantUML畫圖,有興趣的小伙伴,可以移步官網(wǎng)學(xué)習(xí)哈.

plantUM 官網(wǎng) https://plantuml.com/zh/

更多關(guān)于plantuml畫圖時(shí)序圖的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • SpringBoot整合Spring Batch示例代碼

    SpringBoot整合Spring Batch示例代碼

    這篇文章主要來和大家一起探討一下SpringBoot如何整合Spring Batch,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-10-10
  • Java中的字節(jié)流文件讀取教程(二)

    Java中的字節(jié)流文件讀取教程(二)

    這篇文章主要給大家介紹了關(guān)于Java中字節(jié)流文件讀取的相關(guān)資料,本文屬于之前文章的延長(zhǎng)篇,有需要的朋友可以先看看上一篇文章,相信會(huì)對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-07-07
  • MyBatis游標(biāo)Cursor在Oracle數(shù)據(jù)庫(kù)上的測(cè)試方式

    MyBatis游標(biāo)Cursor在Oracle數(shù)據(jù)庫(kù)上的測(cè)試方式

    這篇文章主要介紹了MyBatis游標(biāo)Cursor在Oracle數(shù)據(jù)庫(kù)上的測(cè)試方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • SpringBoot集成Milvus和deeplearning4j實(shí)現(xiàn)圖搜圖功能

    SpringBoot集成Milvus和deeplearning4j實(shí)現(xiàn)圖搜圖功能

    Milvus?是一種高性能、高擴(kuò)展性的向量數(shù)據(jù)庫(kù),可在從筆記本電腦到大型分布式系統(tǒng)等各種環(huán)境中高效運(yùn)行,Deeplearning4j(DL4J)是一個(gè)開源的深度學(xué)習(xí)框架,專門為Java和Scala開發(fā),本文給大家介紹了SpringBoot集成Milvus和deeplearning4j實(shí)現(xiàn)圖搜圖功能
    2024-10-10
  • SpringBoot開發(fā)案例之打造私有云網(wǎng)盤的實(shí)現(xiàn)

    SpringBoot開發(fā)案例之打造私有云網(wǎng)盤的實(shí)現(xiàn)

    這篇文章主要介紹了SpringBoot開發(fā)案例之打造私有云網(wǎng)盤的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • SpringBoot后端驗(yàn)證碼的實(shí)現(xiàn)示例

    SpringBoot后端驗(yàn)證碼的實(shí)現(xiàn)示例

    為了防止網(wǎng)站的用戶被通過密碼典爆破,引入驗(yàn)證碼的功能是十分有必要的,本文主要介紹了SpringBoot后端驗(yàn)證碼的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-08-08
  • Java調(diào)用windows系統(tǒng)的CMD命令并啟動(dòng)新程序

    Java調(diào)用windows系統(tǒng)的CMD命令并啟動(dòng)新程序

    本文教你如何使用java程序調(diào)用windows系統(tǒng)的CMD命令啟動(dòng)新程序方法,需要的朋友可以參考下
    2023-05-05
  • Java實(shí)現(xiàn)簡(jiǎn)單抽獎(jiǎng)功能界面

    Java實(shí)現(xiàn)簡(jiǎn)單抽獎(jiǎng)功能界面

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)簡(jiǎn)單抽獎(jiǎng)功能界面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • jpa多條件查詢重寫Specification的toPredicate方法

    jpa多條件查詢重寫Specification的toPredicate方法

    這篇文章主要介紹了多條件查詢重寫Specification的toPredicate方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • TKmybatis的框架介紹和原理解析

    TKmybatis的框架介紹和原理解析

    tkmybatis是在mybatis框架的基礎(chǔ)上提供了很多工具,讓開發(fā)更加高效,下面來看看這個(gè)框架的基本使用,后面會(huì)對(duì)相關(guān)源碼進(jìn)行分析,感興趣的同學(xué)可以看一下,挺不錯(cuò)的一個(gè)工具
    2020-12-12

最新評(píng)論

皋兰县| 镶黄旗| 大庆市| 清远市| 武汉市| 佛冈县| 大安市| 平邑县| 元谋县| 德保县| 疏勒县| 平凉市| 揭阳市| 龙海市| 肥西县| 塔城市| 博白县| 天台县| 溧水县| 三江| 陇川县| 泽库县| 安龙县| 高州市| 呼伦贝尔市| 古丈县| 图木舒克市| 改则县| 辽阳县| 无为县| 方城县| 壤塘县| 白水县| 武清区| 城市| 安义县| 凌云县| 西畴县| 建水县| 丹阳市| 汪清县|