用旺司Markdown构建免费UML时序图建模工具,sequence diagram顺序图用法使用说明
知识管理 markdown OnceDoc by wx_15926 on 1571308128727


序列图是对对象之间传送消息的时间顺序的可视化表示。序列图的主要用途是把用例表达的需求,转化为进一步、更加正式层次的精细表达。

在Markdown编辑器中使用 sequenceDiagram 标记:

```flow
sequenceDiagram
    Alice->>John: Hello John, how are you?
    John-->>Alice: Great!
```

效果如下:

AliceJohnHello John, how are you?Great!AliceJohn

Participants 参与者

可以像上例中那样隐式定义参与者。在图表源文本中按出现顺序呈现参与者或角色。 有时,您可能想以不同的出现顺序来显示参与者。 通过执行以下操作可以指定演员的出场顺序:

```flow
sequenceDiagram
    participant John
    participant Alice
    Alice->>John: Hello John, how are you?
    John-->>Alice: Great!
```

效果

JohnAliceHello John, how are you?Great!JohnAlice

Aliases 别名

角色可以用ID表示。

```flow
sequenceDiagram
    participant A as Alice
    participant J as John
    A->>J: Hello John, how are you?
    J->>A: Great!
```

效果

AliceJohnHello John, how are you?Great!AliceJohn

Messages 消息

在实线上面可以显示消息文字,格式如下

[Actor][Arrow][Actor]:Message text
类型 描述
-> 没有箭头的实线
--> 没有箭头的虚线
->> 有箭头的实线
-->> 有箭头的虚线
-x 有叉号的实线
--x 有叉号的虚线

Activations 激活

可以激活和停用角色。. (de)activation

```flow
sequenceDiagram
    Alice->>John: Hello John, how are you?
    activate John
    John-->>Alice: Great!
    deactivate John
```

效果:

AliceJohnHello John, how are you?Great!AliceJohn

也可使用 + / - 简写

```flow
sequenceDiagram
    Alice->>+John: Hello John, how are you?
    John-->>-Alice: Great!
```

效果如下:

AliceJohnHello John, how are you?Great!AliceJohn

Notes 注释

可以在顺序图中添加注释。 并可指定位置 [ right of | left of | over ] [Actor]: 文本内容

请参阅以下示例:

```flow
sequenceDiagram
    participant John
    Note right of John: Text in note
```

效果:

JohnText in noteJohn

Loops 循环

时序图支持循环,语法如下

```flow
sequenceDiagram
    Alice->John: Hello John, how are you?
    loop Every minute
        John-->Alice: Great!
    end
```

效果:

AliceJohnHello John, how are you?Great!loop[ Every minute ]AliceJohn

Alt 替代

可以在顺序图中表达替代路径。 这是通过符号来完成的

```flow
sequenceDiagram
    Alice->>Bob: Hello Bob, how are you?
    alt is sick
        Bob->>Alice: Not so good :(
    else is well
        Bob->>Alice: Feeling fresh like a daisy
    end
    opt Extra response
        Bob->>Alice: Thanks for asking
    end
```

效果如下:

AliceBobHello Bob, how are you?Not so good :(Feeling fresh like a daisyalt[ is sick ][ is well ]Thanks for askingopt[ Extra response ]AliceBob