1.1 什么是Markdown?

Markdown是一种语法特别少、特别简单的标记语言,用来编写文档。用Markdown编写的文档是纯文本格式,经过编辑器的渲染,就会形成排

版优美的文档,本文就是用Markdown编写的。如果我们使用Markdown来编写文档,就不用再像用Word那样疲累于设置标题、缩进、左右对齐、
字体大小等烦杂的工作,而可以完全不考虑排版的事情,专心于写作的内容。Markdown现在已经被广泛使用,一些科技博客的编辑器支持
Markdown,一些新兴的写作阅读平台,比如简书,也支持Markdown,还有github上所有项目的README.md就是用Markdown
写的。

1.2 什么是UML时序图?

UML时序图是众多UML图中的一种,用图形来表示某个系统中的时序关系。它通过描述对象之间发送消息的时间顺序来显示多个对象之间的交互关系。程序员设计模块的时候,常常会画UML时序图来描述模块中几个对象的交互,以此来理清头绪或者向人解说。

2. 为什么用Markdown来绘制UML时序图?

绘制UML时序图的方法有很多,Visio可以绘制时序图,还有一些网站也可以绘制时序图。但是用这些方式,需要大量的拖拖拽拽,勾勾连连,很费时间。如果用Markdown的话,只需用特别简单易懂的几个语法,很快就可以描绘出时序图。

3. 事先准备

Markdown编辑器。以下所列的Markdown编辑器都支持绘制UML时序图,选取其中一个即可: 为知笔记(为知笔记创建Markdown笔记的方式比较特殊,请读者自行查阅为知笔记的帮助内容) 作业部落 CSDN博客编辑器 马克飞象(收费)

4. 语法讲解

上面列出的几种编辑器支持的绘制UML时序图的语法是一样的,只是各编辑器用来标识时序图部分的方法不尽相同。下面的标识方法是以为知笔记为准,其他编辑器的标识方法请具体参考各编辑器的帮助说明。

4.1 标识时序图

```sequence

```

4.2 创建Title

```sequence

title: Title

```

4.3 创建Actor

```sequence

participant A

participant B

participant C as C_Alias

```

创建了A、B、C三个Actor。其中C的创建中,as C_Alias表示给C起一个别名,叫C_Alias。

4.4 Actor的交互

```sequence

A->B: how are you?

B-->>A: fine.

```

->中,-代表实线,>代表实心箭头,还可以用--表示虚线,>>表示非实心箭头。在UML时序图中,实线表示主动发送消息,虚线表示返回(应答)消息,实心箭头表示同步消息(消息发送者停止活动等待应答消息),非实心箭头表示异步消息(消息发送者无须停止活动等待应答消息)。->两边可以是同一个Actor,表示自交互:

```sequence

A->A: 内心os

```

4.5 多个Actor的交互

```sequence

A->B: how are you, B?

B->C: how are you, C?

C->A: how are you, A?

```

4.6 给Actor添加Note

```sequence

Note right of A: I'm A

Note left of A: I'm A

Note over A: I'm A

Note over A, B: We're friends.

```

到此为止,绘制UML时序图的所有语法都讲完了,很少吧。另外,查阅语法可以看这张图(引用自js-sequence-diagram项目):

下面,就让我们用Markdown画一个实际的系统吧。

5. 用Markdown绘制典型的客户端登录时序图

登陆流程大致是:用户在客户端输入通行证的账号密码来登陆一个服务器,这里不考虑第三方登陆,不考虑登陆失败的情况。

```sequence

participant 客户端

participant 服务器

participant 通行证中心

Note over 客户端: 用户输入通行证的账号、密码

客户端->通行证中心: 发送账号、密码

Note over 通行证中心: 验证账号、密码

通行证中心-->>客户端: 返回token

客户端->服务器: 发送token

服务器->通行证中心: 验证token

通行证中心-->>服务器: 验证成功

服务器-->>客户端: 登陆成功

```

6. 限制

Markdown绘制UML时序图虽然简单、快速,但是缺少对一些UML时序图基本元素的支持,比如Focus
of Control、Combined
Fragments、对象的中途创建和对象的销毁。所以当你需要添加一些循环或者分支结构的消息时,或者需要中途创建对象、中途销毁对象
时,Markdown就不能满足你的要求了。不过,技术一直在进步,将来Markdown或许能画出更复杂的时序图来。

10分钟学会使用Markdown绘制UML时序图的更多相关文章

  1. 10分钟学会Linux

    10分钟学会Linux有点夸张,可是能够让一个新手初步熟悉Linux中最重要最主要的知识,本文翻译的英文网页在众多Linux入门学习的资料中还是很不错的. 英文地址:http://freeengine ...

  2. Markdown 绘制 UML 图 -- PlantUML + Gravizo(转)

    原文地址:Markdown 绘制 UML 图 -- PlantUML + Gravizo

  3. 在VSCode使用Markdown绘制UML图

    在VSCode使用Markdown绘制UML图 需要插件 Markdown All in One Markdown Preview Enhanced PlantUML markdownlint Mar ...

  4. 10分钟学会搭建Android开发环境 Eclipse: The import android.support cannot be resolved

    10分钟学会搭建Android开发环境_隋雨辰 http://v.youku.com/v_show/id_XNTE2OTI5Njg0.html?from=s1.8-1-1.2 The import a ...

  5. 10分钟学会VS NuGet包私有化部署

    前言 我们之前实现了打包发布NuGet,但是发布后的引用是公有的,谁都可以访问,显然这种方式是不可取的. 命令版本:10分钟学会Visual Studio将自己创建的类库打包到NuGet进行引用(ne ...

  6. UML时序图(Sequence Diagram)学习笔记

    什么是时序图时序图(Sequence Diagram),又名序列图.循序图,是一种UML交互图.它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作. 让我们来看一看visio2016对时序 ...

  7. [转载]UML时序图总结

    前言 在我的工作中,用的最多的就是时序图了.可能由于工作的原因,我也是最喜欢画时序图了,很清楚,很明了,什么时候发送什么消息,到达什么状态,一下子就展示在你的脑海里,对于消息驱动的程序来说,是再好不过 ...

  8. 使用工厂方法模式设计能够实现包含加法(+)、减法(-)、乘法(*)、除法(/)四种运算的计算机程序,要求输入两个数和运算符,得到运算结果。要求使用相关的工具绘制UML类图并严格按照类图的设计编写程序实

    2.使用工厂方法模式设计能够实现包含加法(+).减法(-).乘法(*).除法(/)四种运算的计算机程序,要求输入两个数和运算符,得到运算结果.要求使用相关的工具绘制UML类图并严格按照类图的设计编写程 ...

  9. 1、使用简单工厂模式设计能够实现包含加法(+)、减法(-)、乘法(*)、除法(/)四种运算的计算机程序,要求输入两个数和运算符,得到运算结果。要求使用相关的工具绘制UML类图并严格按照类图的设计编写程

    1.使用简单工厂模式设计能够实现包含加法(+).减法(-).乘法(*).除法(/)四种运算的计算机程序,要求输入两个数和运算符,得到运算结果.要求使用相关的工具绘制UML类图并严格按照类图的设计编写程 ...

随机推荐

  1. 【2018.07.30】(广度优先搜索算法/队列)学习BFS算法小记

    一些BFS参考的博客: https://blog.csdn.net/ldx19980108/article/details/78641127 https://blog.csdn.net/u011437 ...

  2. GitHub发卡系统zfaka配置历程

    GitHub发卡系统zfaka配置历程 1项目介绍 ​ ZFAKA发卡系统(本系统基于yaf+layui开发) ​ 项目地址 https://github.com/zlkbdotnet/zfaka 我 ...

  3. ubuntu虚拟机安装及vim配置问题(转载)

    virtual box虚拟机Ubuntu系统安装及共享文件夹建立 https://blog.csdn.net/qq_27905767/article/details/82106753 Linux超全v ...

  4. Windows平台下Java,tomcat安装与环境配置

    问题描述:在Windows下面做Java web相关的项目的时候,Java和tomcat是基础,这里记载一下Java环境的配置以及tomcat的安装和配置. 使用工具:Windows.jdk安装包.t ...

  5. OpenJudge计算概论-大象喝水

    /*========================================================= 大象喝水 总时间限制: 1000ms 内存限制: 65536kB 描述 一只大象 ...

  6. 数据库连接池配置(案例及排查指南) 原创: 有赞技术 有赞coder 4天前

    数据库连接池配置(案例及排查指南) 原创: 有赞技术 有赞coder 4天前

  7. E: dpkg was interrupted, you must manually run 'dpkg --configure -a' to correct the problem. 爆错解决办法

    author  :headsen chen date : 2019-06-06  10:09:06 root@ubuntu:~# apt-get remove java-1.8.0-openjdk E ...

  8. Docs-.NET-C#-指南-语言参考-预处理器指令:#error(C# 参考)

    ylbtech-Docs-.NET-C#-指南-语言参考-预处理器指令:#error(C# 参考) 1.返回顶部 1. #error(C# 参考) 2015/07/20 #error 可从代码中的特定 ...

  9. ubuntu 16.04 sudo nopasswd

    修改sudoers配置文件:~$ sudo vi /etc/sudoers 在文件末尾添加需要sudo输入密码的user:[user] ALL=NOPASSWD:ALL 表示sysadmin这个组在进 ...

  10. 导出 VuePress构建的网站为 PDF

    前言 学 Rust 也有一段时间了,网上也有不少官方文档的中文翻译版,但是似乎只有 Rust中文网站 文档一直是最新的,奈何并没有 PDF 供直接下载,是在是不太方便,为了方便阅读以及方便后续文档更新 ...