微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Plantuml序列图生命线,用于异步执行

如何解决Plantuml序列图生命线,用于异步执行

这是我的样品,也显示在下面的图片

max_ind = max([inner for item in col_inds for inner in item])
# initialize an empty string array 
placeholder = np.empty((max_ind+1,len(col_names)),dtype='S10')
placeholder[:,:] = ''

for ind,item in enumerate(col_inds):
    
    if ind < len(col_inds) - 1:
        df_col = test_df.groupby(col_names[:ind+1],as_index=False).agg({col_names[ind+1]:'count'}).iloc[:,ind]
    else:
        df_col = test_df.iloc[:,ind]
        
    for val_ind,val_pos in enumerate(item):
        placeholder[val_pos,ind] = df_col[val_ind]

# create new dataframe
new_df = pd.DataFrame({name:val for name,val in zip(col_names,placeholder.T)})
for col in col_names:
    new_df[col] = new_df[col].str.decode('utf-8') 

plantuml image

是否可以在PlantUml序列图中以某种方式定义异步操作的生命线,使其终止于生命线的起始位置?因此,在这种情况下,我想从@startuml participant "Client" as C participant "Server" as S participant "Third Party" as 3PT C -> S++: request money S -> S: do I kNow you? S -> 3PT++: give me money for client return here you have money S ->> S++ #005500: compute usage S ->> 3PT: notify about computation details deactivate S return money @enduml 生命线返回后在绿色生命线中完成compute usage。因此,我想说request money是异步操作,可以随时结束。从UML的角度来看,这还不知道。

解决方法

据我所知,像S ->> S++:...S ->> S:...这样的自反消息无法从 OccurrenceSpecification 开始,再到另一个(还有很多工具,包括mine),因此唯一的方法似乎是两次表示 Server 。为了清楚表明它是同一台服务器,您可以指定实例名称,例如(命名所有实例):

@startuml
participant "c:Client" as C
participant "s:Server" as S
participant "tp:Third Party" as 3PT
participant "s:Server" as Sagain

C -> S++: request money
S -> S: do I know you?
S -> 3PT++: give me money for client
return here you have money
S ->> Sagain++: compute usage
C <-- S: money
deactivate S
Sagain ->> 3PT: notify about computation details
deactivate Sagain
@enduml

enter image description here

norm说,§17.12.17.1生命线仅代表一个相互作用的实体,但是一个实体可以由多个生命线表示:

代表:ConnectableElement [0..1](与A_represents_lifeline :: lifeline相反) 在包含封闭交互的分类器中引用ConnectableElement

lifeline:生命线[0 .. *](与Lifeline :: represents相反)

(请注意多样性0..*


出于您的问题,很奇怪,仅看到消息do I know you?而没有结果而定,取决于结果,PlantUML管理组合片段alt 来指示替代项

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。