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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

PlantUML 快速入门(二) UML 时序图

發(fā)布時(shí)間:2023/12/20 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PlantUML 快速入门(二) UML 时序图 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

UML 序列圖

序列圖是僅次于類圖的最常用 UML 圖。 序列圖將交互關(guān)系表示為一個(gè)二維圖,縱向是時(shí)間軸,時(shí)間沿豎線向下延伸;橫向軸代表了在協(xié)作中各個(gè)角色,一般是一個(gè) Class 的對(duì)象,用一條虛線代表各角色的生命線,生命線上用矩形豎條表示是否處于活躍狀態(tài)。對(duì)象之間可以發(fā)送同步或異步消息。

相對(duì)于類圖,序列圖可能更能體現(xiàn) PlantUML 的價(jià)值

同步消息

@startuml Alice -> Bob: Hi Bob --> Alice: HiAlice -> Bob: Is this a pen? Bob --> Alice: No! This is an apple!! @enduml

  • 序列圖基本構(gòu)成: <角色> <消息類型> <角色> : <消息內(nèi)容>
  • 消息類型中 -> 表示同步消息
  • --> 虛線表示返回消息

異步消息

@startuml Alice ->> Bob: Hi Alice ->> Bob: Is this a pen? Alice ->> Bob: Is this a pen?? Alice ->> Bob: Is this a pen??? Alice ->> Bob: Is this a pen????Bob -> Alice: This is an apple!!! @enduml

--> 代表異步消息

角色生命線

@startuml participant Alice participant Bob participant CarolCarol -> Bob: Who is Alice? Bob -> Alice: Are you Alice? @enduml

  • 多個(gè)participant 會(huì)按照從左往右的順序顯示各角色生命線
  • 如果沒有任何 participant, 則會(huì)角色出現(xiàn)的順序顯示從左往右顯示其生命線

角色圖例

@startuml actor Actor boundary Boundary control Control entity Entity database Database collections Collections @enduml

除了 participant 之外, 使用其他關(guān)鍵字可以表示特殊的角色類型

發(fā)給自己的消息

@startuml Aclie -> Aclie: do something by yourself Aclie -> Aclie: do something by yourself Aclie -> Aclie: do something by yourself Aclie -> Aclie: do something by yourself @enduml

消息序號(hào)

@startuml Alice -> Bob: Hi autonumber Bob -> Carol: Hi Carol -> Dave: Hi Bob -> Dave: Hi @enduml

有時(shí)候需要為消息添加序號(hào)以表示順序,可以在第一個(gè)消息前添加 autonumber,后續(xù)消息自動(dòng)添加序號(hào)。

起始序號(hào)與增量

@startuml autonumber 3 Alice -> Bob: Hi Bob -> Carol: Hi autonumber 2 3 Carol -> Dave: Hi Bob -> Dave: Hi @enduml

autonumber <開始序號(hào)> <增量> 用來指定其實(shí)序號(hào)和序號(hào)遞增的增量

消息序號(hào)暫停

@startuml autonumber Alice -> Bob: Hi autonumber stop Bob -> Carol: Hi Carol -> Dave: Hi autonumber resume Bob -> Dave: Hi Carol -> Dave: Hi @enduml
  • autonumber stop: 自動(dòng)序號(hào)暫停
  • autonumber resume: 自動(dòng)序號(hào)繼續(xù)

消息組

@startuml Alice -> Bob: Is this a pen? alt yesAlice <-- Bob: Yes! This is a pen!! else noAlice <-- Bob: No! This is an apple!!!!! end @enduml

  • 有時(shí)候需要多個(gè)消息表示一組相關(guān)的邏輯,此時(shí)可以使用預(yù)置的關(guān)鍵字來表示各種邏輯,例如
    • alt/else
    • opt
    • loop
    • par
    • break
    • critical
  • 關(guān)鍵詞之后添加表示邏輯的文字,例如 yes, no等
  • 消息信息的縮進(jìn)不是必須的,但是加上可讀性更好

消息組嵌套

消息組內(nèi)可以嵌套其他消息組,如下:

@startuml Alice -> Bob: Is this a pen? alt yesAlice <-- Bob: Yes! This is a pen!! else noAlice <-- Bob: Noooooooo! This is an apple!!!!!loop ∞Alice -> Bob: Oh sorry! By the way, is this a pen?Alice <-- Bob: No!!!!end end @enduml

自定義消息組

除了使用預(yù)置關(guān)鍵字的消息組,還可以使用任意名字自定義一個(gè)消息組

@startuml group copyAlice -> Bob: Is this a pen?Alice <-- Bob: No! This is an apple!! end @enduml

group 之后添加消息組的名字

生命線活躍狀態(tài)

@startuml activate Alice Alice -> Bobactivate Bob Bob -> Carolactivate Carol Bob <-- Caroldeactivate Carol Alice <-- Bobdeactivate Bob @enduml

  • activate <name> 指定name的生命線進(jìn)入活躍狀態(tài)
  • deactive <name> 指定name的生命線退出活躍狀態(tài)

嵌套活躍狀態(tài)

@startuml activate Alice Alice -> Bobactivate Bob Bob -> Bob activate Bob Bob -> Carolactivate Carol Bob <-- Caroldeactivate Carol Alice <-- Bobdeactivate Bob @enduml

activate 中繼續(xù) activate 可以嵌套活躍狀態(tài)

創(chuàng)建角色和生命線

@startuml Alice -> Bob create Carol Bob -> Carol: new Bob -> Carol Bob <-- Carol Alice <-- Bob @enduml

create <name> 用來創(chuàng)建一個(gè)角色和其生命線,此時(shí)消息箭頭會(huì)執(zhí)行角色圖例

參考、引用

@startuml Alice -> Bob ref over Bob, Carol: ... Alice <-- Bob ref over Alice ... ... end ref @enduml

可以在時(shí)序圖中添加參考信息

  • ref over <生命線名稱> : <內(nèi)容> : reference 的范圍和參考內(nèi)容
  • ref over ... end ref: 可以換行寫參考內(nèi)容

邊界線

@startuml == Foo == Alice -> Bob Alice <-- Bob== Bar == Bob -> Carol Bob <-- Carol @enduml

== <name> == 添加邊界線,跨越所有角色的生命線

外部消息

@startuml [-> Alice: Hello Alice ->]: Hello @enduml

消息箭頭的前后使用 [ , ] ,表示一個(gè)來自外部或者指向外部的消息

消息間隔

@startuml Alice -> Bob Alice <-- BobAlice -> Bob Alice <-- Bob ||| Alice -> Bob Alice <-- Bob ||80|| Alice -> Bob Alice <-- Bob @enduml

  • 消息之間加 ||| , 會(huì)適當(dāng)拉開消息間隔
  • ||<pixel>||:pixel可以指定具體間隔的像素?cái)?shù)

備注

@startuml Alice -> Bob note left: Hello Alice <-- Bob note right: World Alice -> Alice note left Hello World end note @enduml

  • 消息后緊跟 note left 或者 note right 表示在相應(yīng)位置添加備注,注意note 不能指定 top 或 bottom
  • note <left|right> ... end note 可以換行寫備注
  • 備注內(nèi)容支持 Creole 格式,Creole 的語法類似 Markdown

Creole 語法示例

@startuml note left--標(biāo)題--= 標(biāo)題1== 標(biāo)題2=== 標(biāo)題3--列表--* 列表1* 列表2** 列表2-1# 有序列表1# 有序列表2## 有序列表2-1--字體--* **粗體*** //斜體//* ""等寬字體(monospace)""* --刪除線--* __下劃線__--表格--|= |= Column1 |= Column2 ||1 |Value1-1 |Value1-2 ||2 |Value2-1 |Value2-2 |--HTML--* <color:red>設(shè)置顏色</color>* <color:#00FF00>色號(hào)</color>* <back:skyblue>背景色</back>* <size:18>字號(hào)</size>* <b>粗體</b>--目錄--|_build.gradle|_src|_main|_java|_...|_...|_testend note @enduml

  • PlantUML 快速入門(一) UML 類圖

總結(jié)

以上是生活随笔為你收集整理的PlantUML 快速入门(二) UML 时序图的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。