PlantUML 活动图新(测试版)语法带有短代码来引用早期活动?

问题描述 投票:0回答:2

我使用旧版 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

看起来像这样:

Legacy syntax diagram

我现在正在尝试使用新的(测试版)语法(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

New syntax diagram

是否可以使用新语法实现与我使用旧语法创建的相同的图表?

uml plantuml
2个回答
2
投票

你可以这样做:

@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

生产:

enter image description here

...这与您的第一个图一样非法,因为有两个输入流到审查请求,而我们不存在一个是决策输入流,另一个是主要传入边缘的情况(参见§15.3) .3.6 正式/2017-12-05的决策节点第390页),必须在决策节点之前使用合并节点


0
投票

@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

© www.soinside.com 2019 - 2024. All rights reserved.