UMLSequence Diagrams是交互图,详细说明了如何执行操作。它们捕获协作环境中对象之间的交互。序列图是时间焦点,它们通过使用图表的垂直轴来直观地显示交互的顺序,以表示消息的发送时间和时间。
序列图捕获:
- 在实现用例或操作的协作中发生的交互(实例图或通用图)
- 系统用户与系统之间,系统与其他系统之间或子系统之间的高级交互(有时称为系统序列图)
学习UML更快,更好,更容易
您是否正在寻找一种免费的UML工具来更快,更轻松,更快速地学习UML?Visual Paradigm Community Edition是一个支持所有UML图类型的UML软件。它是一款屡获殊荣的国际UML建模师,但它易于使用,直观且完全免费。
序列图的目的
- 模拟系统中活动对象之间的高级交互
- 对实现用例的协作中的对象实例之间的交互建模
- 对实现操作的协作中的对象之间的交互建模
- 模拟通用交互(显示通过交互的所有可能路径)或交互的特定实例(仅显示交互中的一条路径)
序列图一览
序列图显示元素随着时间的推移而相互作用,它们根据对象(水平)和时间(垂直)组织:
对象维度
- 横轴表示交互中涉及的元素
- 传统上,操作中涉及的对象根据它们何时参与消息序列从左到右列出。但是,横轴上的元素可以按任何顺序出现
时间维度
- 纵轴表示页面下的时间进程(或进展)。
注意:
序列图中的时间都是关于排序的,而不是持续时间。交互图中的垂直空间与交互持续时间无关。
序列图示例:酒店系统
序列图是一个交互图,详细说明了如何执行操作 - 发送什么消息以及何时发送消息。序列图根据时间进行组织。当你走下页面时,时间会进行。操作中涉及的对象根据它们何时参与消息序列从左到右列出。
以下是进行酒店预订的序列图。启动消息序列的对象是预留窗口。
注意:类和对象图是静态模型视图。交互图是动态的。它们描述了对象如何协作。
序列图表示法
符号说明
视觉表现
参与者
- 与主体交互的实体所扮演的一种角色(例如,通过交换信号和数据)
- 在主体外部(即,在某个意义上,参与者的实例不是其相应主题的实例的一部分)。
- 表示人类用户,外部硬件或其他主题所扮演的角色。
注意:
- 参与者不一定代表特定的物理实体,而仅仅代表某个实体的特定角色
- 一个人可以扮演几个不同参与者的角色,相反,一个参与者可以由多个不同的人演奏。
生命线
- 生命线代表交互中的个体参与者。
激活
- 生命线上的细长矩形表示元素执行操作的时间段。
- 矩形的顶部和底部分别与启动和完成时间对齐
来电留言
- 消息定义了交互的生命线之间的特定通信。
- 呼叫消息是一种表示目标生命线操作调用的消息。
返回消息
- 消息定义了交互的生命线之间的特定通信。
- 返回消息是一种消息,表示将信息传递回相应的前消息的调用者。
自我消息
- 消息定义了交互的生命线之间的特定通信。
- 自我消息是一种表示同一生命线的消息调用的消息。
递归消息
- 消息定义了交互的生命线之间的特定通信。
- 递归消息是一种表示同一生命线的消息调用的消息。它的目标指向在调用消息的激活之上进行激活。
创建消息
- 消息定义了交互的生命线之间的特定通信。
- 创建消息是一种表示(目标)生命线实例化的消息。
消灭消息
- 消息定义了交互的生命线之间的特定通信。
- 销毁消息是一种消息,表示破坏目标生命线生命周期的请求。
持续时间消息
- 消息定义了交互的生命线之间的特定通信。
- 持续时间消息显示消息调用的两个时间点之间的距离。
注意
注释(注释)使得能够将各种备注附加到元素。注释不带语义力,但可能包含对建模者有用的信息。
消息和控制焦点
- 事件是发生事情的交互中的任何一点。
- 控制重点:也称为执行发生,执行发生
- 它在生命线上显示为高而薄的矩形)
- 它表示元素执行操作的时间段。矩形的顶部和底部分别与启动和完成时间对齐。
序列片段
- UML 2.0引入了序列(或交互)片段。序列片段可以更轻松地创建和维护准确的序列图
- 序列片段表示为一个框,称为组合片段,它包含序列图中的一部分相互作用
- 片段运算符(在左上角的短号)表示片段的类型
- 片段类型:ref,assert,loop,break,alt,opt,neg
操作符号
片段类型
ALT
备用多个片段:只执行条件为真的片段。
选择
可选:仅当提供的条件为真时才执行片段。相当于只有一条迹线的alt。
平价
并行:每个片段并行运行。
环
循环:片段可以执行多次,并且防护指示迭代的基础。
区域
关键区域:片段只能有一个线程一次执行它。
NEG
否定:片段显示无效的交互。
REF
参考:指在另一个图上定义的交互。绘制框架以覆盖交互中涉及的生命线。您可以定义参数和返回值。
SD
序列图:用于包围整个序列图。
注意:
- 可以组合帧以捕获例如循环或分支。
- 组合片段关键字:alt,opt,break,par,seq,strict,neg,critical,ignore,consideration,assert和loop。
- 约束通常用于显示消息的时序约束。它们可以应用于一条消息的时间或消息之间的间隔。
组合片段示例
用例场景建模的序列图
用户需求被捕获为精简为方案的用例。用例是外部参与者与系统之间交互的集合。在UML中,用例是:
“系统(或实体)可以执行的一系列动作(包括变体)的规范,与系统的参与者进行交互。”
场景是通过用例的一个路径或流程,该用例描述在系统的一个特定执行期间发生的事件序列,其通常由序列图表示。
序列图 - 代码前的模型
序列图可能有点接近代码级别,那么为什么不编码该算法而不是将其绘制为序列图?
- 一个好的序列图仍然比实际代码的水平高一点
- 序列图是语言中立的
- 非编码人员可以做序列图
- 作为一个团队,更容易做序列图
- 可用于测试和/或UX线框图
寻找一个好的和免费的UML工具来创建序列图?
Visual Paradigm Online 是你的选择,它提供:
免费序列图示例和模板可在在线序列图软件中编辑:Visual Paradigm Online。使用模板作为起点来创建自己的序列图。
Using MVC Stereotypes with Conditional Statement
Selection and Loops in a Combination
要获得完整的UML建模功能,您可以免费使用Visual Paradight Community Edition,也可以在商业版中使用更高级的建模功能。