[英]How to generate (not draw/render) sequence diagrams
我正在尋找從編程邏輯中生成序列圖的方法。 我並不是說用例如文本渲染它們。 很多帖子都在談論生成,但我認為這是渲染/繪圖。 我在互聯網上搜索過最多的文本工具(如 PlantUML)或直觀的圖形付費工具。 我也不在找。 但是我想對消息流進行編程,讓系統根據可能的選擇來繪制它。 原因之一是如果 else 觸發了完全不同的路徑,則帶有“alt”的條件 if then else 不是很有用(我的觀點)。 它適用於一種不同的回報,但很快就會變得非常丑陋(我再次認為)。 另一個原因是我自己正忙於開發這樣的生成工具,我想知道我是否不嘗試制作沒人在等待的東西。 除了這對我自己來說是一個很好的愛好項目。 對我來說,這樣做是有意義的,因為它以交互方式創建消息圖,這在開發過程中非常有幫助或傳遞知識。 也許它甚至可以驗證死胡同的邏輯。 第三個原因是文本本身變得復雜而難以維護(參見下面的示例)。 第四個原因是我相信自動化可以/應該自動化的過程,因為我們不應該忙於繪制東西,而應該忙於編寫邏輯。 那么有人知道生成(不是繪制/渲染)可用於序列圖的工具嗎?
以下示例是在差異從無效/有效卡開始的情況下創建的,這很難在 if/then/else 中捕獲。 即便如此,在此過程中也會做出其他選擇。
無效卡,選擇:電子->芯片->無效卡->存貨
Merchant Customer Terminal
| | |
+-inform-amount | |
|---choose-method--->| |
|<--chooses-terminal-| |
+-enters-amount | |
|------------start-payment----------->|
| |<--show-amount--|
| +-inserts-card |
| |-method-chosen->|
| |<--card-invalid-|
| +-pay-different |
|<-----------payment-failed-----------|
+-goods-left-behind | |
+-customer-leaves | |
有效卡,選擇:電子->芯片->有效卡->驗證有效->足夠余額
Merchant Customer Terminal Secure-Intf Acc-Srv Acc-DB
| | | | | |
+-inform-amount | | | | |
|----choose-method--->| | | | |
|<--chooses-terminal--| | | | |
+-enters-amount | | | | |
|-------------start-payment------------->| | | |
| |<---show-amount---| | | |
| +-inserts-card | | | |
| |--method-chosen-->| | | |
| |<----card-valid---| | | |
| +-enter-pin | | | |
| |---validate-pin-->| | | |
| | |--sec:authorize-->| | |
| | | |--verify-login-->| |
| | | | |---get-login-details-->|
| | | | |<-----login-details----|
| | | |<-login-response-| |
| | |<--sec:auth-valid-| | |
| | |---sec:transfer-->| | |
| | | |----transfer---->| |
| | | | |------get-balance----->|
| | | | |<-----balance-info-----|
| | | | |-upd-checking-balance->|
| | | | |-upd-merchant-balance->|
| | | | |----commit-changes---->|
| | | | |<---changes-committed--|
| | | |<---transferred--| |
| | |<-sec:transferred-| | |
|<-----------payment-successful----------| | | |
+-goods-given | | | | |
| |<-------paid------| | | |
| +-customer-leaves | | | |
文本代碼適用於多種免費繪圖工具。 如果需要任何更改,那么我認為它變得難以維護。 我寧願生成它們。
title MSG-Flow for 'Merchant-flows'
participant "Merchant" as Merchant
participant "Customer" as Customer
participant "Terminal" as Terminal
participant "Secure Intf" as Secure_Intf
participant "Acc Srv" as Acc_Srv
participant "Acc DB" as Acc_DB
note left of Merchant: inform-amount
Merchant -> Customer: choose-method
Customer -> Merchant: chooses-terminal
note left of Merchant: enters-amount
Merchant -> Terminal: start-payment
Terminal -> Customer: show-amount
note right of Customer: inserts-card
Customer -> Terminal: method-chosen
Terminal -> Customer: card-valid
note right of Customer: enter-pin
Customer -> Terminal: validate-pin
Terminal -> Secure_Intf: sec:authorize
Secure_Intf -> Acc_Srv: verify-login
Acc_Srv -> Acc_DB: get-login-details
Acc_DB -> Acc_Srv: login-details
Acc_Srv -> Secure_Intf: login-response
Secure_Intf -> Terminal: sec:auth-valid
Terminal -> Secure_Intf: sec:transfer
Secure_Intf -> Acc_Srv: transfer
Acc_Srv -> Acc_DB: get-balance
Acc_DB -> Acc_Srv: balance-info
Acc_Srv -> Acc_DB: upd-checking-balance
Acc_Srv -> Acc_DB: upd-merchant-balance
Acc_Srv -> Acc_DB: commit-changes
Acc_DB -> Acc_Srv: changes-committed
Acc_Srv -> Secure_Intf: transferred
Secure_Intf -> Terminal: sec:transferred
Terminal -> Merchant: payment-successful
note left of Merchant: goods-given
Terminal -> Customer: paid
note right of Customer: customer-leaves
那么有人知道生成(不是繪制/渲染)可用於序列圖的工具嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.