时序图构成元素主要包含6种:角色、对象、生命线、控制焦点、消息、组合片段。
时序图,又叫序列图、顺序图、循序图,它是一种描述对象行为的UML交互图,主要用来更直观的表现各个对象交互的时间顺序,体现的重点是各个对象发送消息、接收消息、处理消息、返回消息的时间流程顺序。
时序图是一个二维图,横轴表示对象,纵轴表示时间,消息在各对象之间横向传递,依照时间顺序纵向排列。
时序图还可以显示对象之间的控制结构。例如:用于银行方案的时序图中的生命线可以表示客户、银行出纳或银行经理,客户、银行出纳和银行经理之间的通信由他们之间互相传递的消息表示。
支持多人在线同屏创作,还可以设置分享链接,信息实时传递。
只需输入一句话,就自动生成所需图形,还可以对图形风格自动美化。
内置多种主题风格,也可以自由设计你喜爱的风格样式。
支持插入图标、图片、标签、备注LaTex公式、代码块、链接、附件等多种形式组件。
支持导出PNG、VISIO、PDF、SVG等格式,支持导入VISIO、Mermaid格式。
文件实时存储,多端设备云同步,历史版本可追溯,数据安全有保障。
时序图构成元素主要包含6种:角色、对象、生命线、控制焦点、消息、组合片段。
对象位于时序图的顶部,以一个矩形表示。对象的命名方式一般有三种:
1)显示对象名和类名,例如:“苹果手机:手机”
2)只显示对象名,不显示类名,例如:“苹果手机:”
3)只显示类名,不显示对象名,例如: “:手机”
消息一般分为同步消息、异步消息、返回消息、自关联消息。
同步消息:对象发送消息后,需要接收消息的对象响应完毕并返回消息时才会进行其余的工作,以“实线箭头”表示;
异步消息:对象发送消息后,不需要等待接收对象的返回消息可以继续执行其余的工作,以“实线+大于号”表示;
返回消息:从过程调用返回,以“虚线箭头”表示
自关联消息:表示方法的自身调用,或者一个对象内的一个方法调用另外一个方法,以一个“半闭合的长方形+下方实线箭头”表示
组合片段是由矩形表示的逻辑分组,它包含会影响消息流的条件结构,用于通过指定条件或子进程的应用区域,为任何生命线的任何部分定义特殊条件和子进程。
组合片段共有13种,可以使用组合片段来以一种紧凑而简洁的方式描述多种控制和逻辑结构。
时序图可以在开发流程的不同阶段使用,来描述系统中对象之间的交互。
分析:在分析阶段,时序图可以帮助标识系统需要的类以及对象在交互中执行的操作。
设计:在设计阶段,时序图说明系统如何工作来完成交互。
构造:在构造系统体系结构期间,可以使用时序图来说明设计模式的行为以及系统使用的机制。
时序图和协作图都是UML交互图,可以相互转化,具备相似的责任主体,都是通过消息驱动,具有顺序性。
但也有明显区别,时序图表达的是对象之间产生合作发生消息的时间顺序,协作图表达的是对象之间的合作关系。
对象的命名方式一般有三种:
1)显示对象名和类名
2)只显示对象名,不显示类名
3)只显示类名,不显示对象名
这三种命名方式都符合标准,哪种最容易让阅读人理解,就选择哪种。
不是。时序图强调的是时间垂直排列,从上到下是事件发生的顺序。所以后一条消息的“线条”+“箭头”,一定要在前一条消息的下方,不能高于前一条消息。
有时,我们需要表示发送消息和返回消息之间的间隔要小于指定时间,这时也可以在序列图中使用某种特殊方法来表示,如{t2-t1<1s}。
不能。时序图用于描述对象间消息交互,行为流程或操作路径应该用流程图、活动图、状态图来表达。
尽量不要把所有交互全部放在一个图里,否则会导致图形混乱难以阅读,复杂交互可拆分成多个子图表示,每个时序图应聚焦一个用例或一个功能场景。
不能。同步消息表示必须等待返回结果(如函数调用),异步消息表示发送后继续执行(如发送消息队列)。混用会导致并发逻辑错误。
返回消息能帮助分析交互结果是否被处理,尤其在方法调用和服务响应中应标明返回,所以在绘制时序图时要制作返回消息,并且明确返回值。
ProcessOn是一款在线作图工具,支持在线绘制时序图,并提供海量时序图模板供克隆使用,可以完美替代Visio,欢迎体验。