CSDN-Markdown编辑器之UML序列图

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: 目录目录UML序列图简介时序图元素1角色Actor2对象Object3生命线Lifeline4激活期Activation5消息Message时序图结构连接建立的过程呈现效果示例二呈现效果对象顺序呈现效果跨对象...

目录


UML序列图简介


时序图(Sequence Diagram),亦称为序列图或循序图,是一种UML行为图。它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。它可以表示用例的行为顺序,当执行一个用例行为时,时序图中的每条消息对应了一个类操作或状态机中引起转换的触发事件。

时序图元素


时序图中包括如下元素:角色,对象,生命线,激活期和消息

1、角色(Actor)

系统角色,可以是人或者其他系统,子系统。

2,对象(Object)

对象代表时序图中的对象在交互中所扮演的角色,位于时序图顶部和对象代表类角色。
对象一般包含以下三种命名方式:
第一种方式包含包含对象名和类名
第二种方式只显示类名不显示对象名,即为一个匿名对象。
第三种方式只显示对象名不显示类名。

3,生命线(Lifeline)

生命线代表时序图中的对象在一段时期内的存在。时序图中每个对象和底部中心都有一条垂直的虚线,这就是对象的生命线,对象间 的消息存在于两条虚线间。

4,激活期(Activation)

激活期代表时序图中的对象执行一项操作的时期,在时序图中每条生命线上的窄的矩形代表活动期。它可以被理解成C语言语义中一对花括号“{}”中的内容

5,消息(Message)

消息是定义交互和协作中交换信息的类,用于对实体间的通信内容建模,信息用于在实体间传递信息。允许实体请求其他的服务,类角色通过发送和接受信息进行通信。

时序图结构


时序图描述对象是如何交互的,并且将重点放在消息序列上。也就是说,描述消息是如何在对象间发送和接收的。时序图有两个坐标轴:纵坐标轴显示时间,横坐标轴显示对象。每一个对象的表示方法是:矩形框中写有对象和 / 或类名,且名字下面有下划线;同时有一条纵向的虚线表示对象在序列中的执行情况 ( 即发送和接收的消息对象的活动 ) , 这条虚线称为对象的生命线。对象间的通信用对象的生命线之间的水平的消息线来表示,消息线的箭头说明消息的类型,如同步,异步或简单 。 浏览时序图的方法是,从上到下查看对象间交换的消息,分析那些随着时间的流逝而发生的消息交换。
时序图中的消息可以是信号、操作调用或类似于 C++ 中的 RPC ( Remote Procedure Call, 远程过程调用)或 Java 中的 RMI ( Remote Method Invocation , 远程方法调用)。当对象接收到一个消息时,该对象中的一项活动就会启动,我们把这一过程称做激活 ( Activation )。 激活会显示控制焦点,表明对象在某一个时间点开始执行。一个被激活的对象或者是执行它自身的代码,或者是等待另一个对象的返回(该被激活的对象已经向另一个对象发送了消息)。在图形上,激活被绘制为对象生命线上的一个瘦高矩形。
消息可以用消息名及参数来标识。消息还可带有条件表达式,表示分支或决定是否发送消息。如果用于表示分支,则每个分支是相互排斥的,即在某一时刻仅可发送分支中的一个消息。消息也可以有顺序号,但是在时序图中,消息的顺序号很少使用,因为时序图已经将消息的顺序显式地表示出来了。
一个对象可以通过发送消息来创建另一个对象,当一个对象被删除或自我删除时,该对象用 “X”标识。

这里以“TCP协议中的三次握手”来讲一下Markdown编辑器中UML序列图的应用。

连接建立的过程:


 ```sequence
Title:连接建立的过程
客户主机->服务器主机: 连接请求(SYN=1,seq=client_isn) 
服务器主机->客户主机: 授予连接(SYN=1,seq=client_isn)\n ack=client_isn+1
客户主机->服务器主机: 确认(SYN=0,seq=client_isn+1)\nack=server_isn+1
 ```

呈现效果


Created with Raphaël 2.1.2连接建立的过程客户主机客户主机服务器主机服务器主机连接请求(SYN=1,seq=client_isn)授予连接(SYN=1,seq=client_isn) ack=client_isn+1确认(SYN=0,seq=client_isn+1)ack=server_isn+1

上例中,标题“连接建立的过程”使用“Title:”标识,通信双方“客户主机与服务器主机”,第二行语句中“客户主机与服务器主机”出现的顺序决定图中出现的位置;

“客户主机与服务器主机”间使用“->”减号大于号,右侧使用“:”冒号(注意必须是英文半角的)。

第三行语句中“服务器主机”在前,“客户主机”主机在后,箭头的方向就是从“服务器主机到客户主机”。

另外,第三行、第四行语句中消息内容比较长,使用“\n”反斜杠字母n进行了换行。

示例二:


 ```sequence
Title:连接建立的过程
客户主机-->>服务器主机: 连接请求(SYN=1,seq=client_isn) 
服务器主机-->客户主机: 授予连接(SYN=1,seq=client_isn)\n ack=client_isn+1
客户主机->>服务器主机: 确认(SYN=0,seq=client_isn+1)\nack=server_isn+1
 ```

呈现效果


Created with Raphaël 2.1.2连接建立的过程客户主机客户主机服务器主机服务器主机连接请求(SYN=1,seq=client_isn)授予连接(SYN=1,seq=client_isn) ack=client_isn+1确认(SYN=0,seq=client_isn+1)ack=server_isn+1

注意:此例中“客户主机与服务器主机”间使用“–>>”两个减号两个大于号,一个减号呈现为实线,两个减号呈现为虚拟;一个大于号呈现为实心箭头,两个大于号呈现为开放箭头。

对象顺序


通过角色、对象列表,您可以更改它们的顺序

 ```sequence
Note left of C:我在第一位
participant C 
participant B 
participant A 
Note right of A: 通过角色、对象列表,\n您可以更改它们的顺序
 ```

呈现效果


Created with Raphaël 2.1.2CCCCBBAAAA我在第一位通过角色、对象列表,您可以更改它们的顺序

通过“participant”角色、对象列表,您可以更改它们的顺序。
通过“Note left of”可以在角色、对象的左侧显示信息。
通过“Note right of”可以在角色、对象的右侧显示信息。

跨对象的消息


 ```sequence
Title: Here is a title 
A->B: Normal line 
B-->C: Dashed line 
C->>D: Open arrow 
D-->>A: Dashed open arrow
 ```

呈现效果


Created with Raphaël 2.1.2Here is a titleAABBCCDDNormal lineDashed lineOpen arrowDashed open arrow

相关文章


CSDN-Markdown编辑器之UML序列图

Markdown编辑器语法指南

CSDN-markdown编辑器之从本机导入Markdown文件(二)

CSDN-markdown编辑器之从本机导入Markdown文件(一)

CSDN-markdown编辑器之从线上导入Markdown文件

CSDN-markdown编辑器使用LaTex数学公式

CSDN-markdown编辑器插入网上或本地电脑上的图片

CSDN-markdown编辑器简洁的语法与呈现效果对照2

CSDN-markdown编辑器简洁的语法与呈现效果对照

无需上网,离线也能用Markdown写博客

Markdown编辑器“MarkdownPad”下载安装(图)

走近CSDN博客Markdown编辑器

欢迎使用CSDN-markdown编辑器

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
6月前
|
程序员 Linux iOS开发
一款比Typora更简洁优雅的Markdown编辑器神器(完全开源免费)
一款比Typora更简洁优雅的Markdown编辑器神器(完全开源免费)
260 1
|
6月前
《使用「Markdown」编辑器的那些天 |CSDN编辑器测评》
《使用「Markdown」编辑器的那些天 |CSDN编辑器测评》
71 0
|
6月前
|
机器学习/深度学习 uml
Markdown编辑器用法保存自用
Markdown编辑器用法保存自用
|
30天前
|
Ubuntu Linux 测试技术
Linux系统之部署轻量级Markdown文本编辑器
【10月更文挑战第6天】Linux系统之部署轻量级Markdown文本编辑器
77 1
Linux系统之部署轻量级Markdown文本编辑器
|
3月前
|
存储 安全 数据安全/隐私保护
Django 后端架构开发:富文本编辑器权限管理与 UEditor 、Wiki接入,实现 Markdown 文本编辑器
Django 后端架构开发:富文本编辑器权限管理与 UEditor 、Wiki接入,实现 Markdown 文本编辑器
132 0
|
2月前
|
JavaScript 前端开发 API
vue3 v-md-editor markdown编辑器(VMdEditor)和预览组件(VMdPreview )的使用
本文介绍了如何在Vue 3项目中使用v-md-editor组件库来创建markdown编辑器和预览组件。文章提供了安装步骤、如何在main.js中进行全局配置、以及如何在页面中使用VMdEditor和VMdPreview组件的示例代码。此外,还提供了一个完整示例的链接,包括编辑器和预览组件的使用效果和代码。
vue3 v-md-editor markdown编辑器(VMdEditor)和预览组件(VMdPreview )的使用
|
5月前
|
存储 移动开发 编解码
基于HTML5开发的Markdown在线编辑器
Markdown是一种轻量级标记语言,以其简洁易读的格式而备受程序员和作者们的青睐。随着互联网的发展,越来越多的在线Markdown编辑器应运而生,为用户提供了更加便捷、高效的写作和编辑环境。本文将探讨基于HTML5开发的Markdown在线编辑器的设计原理、功能特点以及技术优势。
119 4
|
6月前
|
前端开发 C++ iOS开发
几款主流好用的markdown编辑器介绍
几款主流好用的markdown编辑器介绍
352 1
|
3月前
|
前端开发 Python
60行Python代码开发在线markdown编辑器
60行Python代码开发在线markdown编辑器
|
3月前
|
数据可视化 Java uml
精通UML:从类图到序列图的实战指南
【8月更文第23天】统一建模语言(Unified Modeling Language, UML)是一种用于软件工程的标准图形化语言,它提供了一套工具来帮助开发团队可视化、构造和文档化软件系统。在UML中,类图和序列图是最常用也是最重要的两种图。类图用于描述系统的静态结构,而序列图则用于表示对象之间的交互和系统的动态行为。
137 5