我使用旧版 PlantUML 活动语法创建了一个活动图 (https://plantuml.com/activity-diagram-legacy):
@startuml
(*) --> "Request created" as Request
Request --> "Review request" as Review
if "is Accepted?" then
--> [Yes] "Assign"
if "is Urgent" then
--> [Yes] "In Development`"
--> "Engineer Assigned"
else
--> [No] "Backlog" as Backlog
Backlog --> Review
endif
else
--> [No] "Won’t Do"
endif
@enduml
看起来像这样:
我现在正在尝试使用新的(测试版)语法(https://plantuml.com/activity-diagram-beta)重新创建此图,但很难复制短代码的功能以引用并返回到较早的版本活动步骤。
@startuml
start
:Request created;
:Review request;
if (is Accepted?) then (Yes)
:Assign;
if (is Urgent) then (Yes)
:In Development;
:Engineer Assigned;
stop
else (No)
:Backlog;
' HERE I WOULD LIKE BACKLOG TO HAVE
' A BACKWARD ARROW POINTING UP TO
' "REVIEW REQUEST"
endif
else (No)
:Won’t Do;
stop
endif
@enduml
是否可以使用新语法实现与我使用旧语法创建的相同的图表?
你可以这样做:
@startuml
start
:Request created;
while (Review request?) is (accepted)
:Assign;
if (is Urgent ?) then (Yes)
:In Development;
:Engineer Assigned;
stop
else (No)
:Backlog;
endif
endwhile (not accepted)
:Won't Do;
stop
@enduml
生产:
...这与您的第一个图一样非法,因为有两个输入流到审查请求,而我们不存在一个是决策输入流,另一个是主要传入边缘的情况(参见§15.3) .3.6 正式/2017-12-05的决策节点第390页),必须在决策节点之前使用合并节点。
@startuml 班级经理{ -名称:字符串 -ID:整数 -电话号码:int -位置:字符串 +采购库存():无效 +记录投诉():无效 +管理人员():无效 }
厨师级{ -名称:字符串 -ID:整数 -位置:字符串 +TakeOrders():无效 }
类食品物品{ -ID:整数 -名称:字符串 }
类库存{ -类型:字符串 -状态:字符串 }
类客人{ -名称:字符串 -ID:整数 -电话号码:int -地址:字符串 -房间号:int +Check_In():无效 +Check_Out():无效 +PayBill(): 无效 +OrderFood():无效 +提交反馈():无效 }
班级接待员{ -名称:字符串 -ID:整数 -电话号码:int -位置:字符串 +检查房间可用性():无效 +BookRoom():无效 +生成账单():无效 +AcceptCustomerFeedback(): void }
班级房间{ -房间号:int -位置:字符串 }
类客房服务{ -名称:字符串 -ID:整数 -位置:字符串 +洁净室():无效 }
比尔类{ -账单编号:int -客人姓名:字符串 }
经理“1”--“”库存:管理 经理“1”--“”厨师:管理 厨师“1”——“”食品:准备 客人“1”-“1”房间:占用 客人“1”——“”比尔:收到 接待员“1”--“”房间:管理 接待员“1”--“”客人:服务 接待员“1”——“”比尔:生成 家政服务“1”--“”房间:打扫
@enduml