什么是序列图?
序列图被定义为 UML(统一建模语言)图的一种,用于软件工程和系统设计,可视化系统内各组件或对象之间的交互和通信。 序列图对于描述系统的动态行为以及不同组件如何协作完成特定任务或目标尤为有用。 它们通常用于软件开发的设计和文档编制阶段。
序列图的主要元素和概念包括
- 生命线 它们代表交互中涉及的各个对象或组件。 每条生命线通常被描绘成一条竖线,他们的名字通常被放在这些竖线的顶端。
- 留言 这些是连接生命线的水平箭头或线条,表示对象之间传递信息的顺序。 消息可以是同步的(阻塞),也可以是异步的(非阻塞),它们通常带有描述所调用操作或方法的标签。
- 激活条: 这表示对象处于活动状态并处理信息的时间段。 它们在生命线上以方框或垂直矩形的形式表示,并显示对象参与互动的持续时间。
- 返回信息: 这些信息表示对象对收到的信息的响应。 它们通常用虚线表示,并标明返回的结果或值。
- 可选片段: 序列图还可以包括可选片段,如循环、条件和替代路径,这有助于说明交互过程中的不同场景和决策点。
序列图可用于多种用途,包括
- 了解并可视化对象或组件之间的交互流程。
- 设计和记录系统或特定功能的行为。
- 与利益相关者(包括开发人员、测试人员和业务分析人员)沟通和讨论系统行为。
- 找出潜在问题,如系统设计中的瓶颈或同步问题。
总之,在软件开发过程中,序列图是一种宝贵的工具,可用于建模和理解系统运行的动态方面。 它们是类图和用例图等其他 UML 图表的补充,后者侧重于系统设计和架构的不同方面。
序列图示例
让我们创建一个简单的序列图示例来说明它是如何工作的。 在本例中,我们将模拟客户取款时与银行 ATM(自动取款机)之间的交互。
标题ATM 提取现金
生命线
客户
自动取款机
留言
- 客户 -> ATM:插入卡
- ATM -> 客户:验证卡
- 客户 -> ATM:输入密码
- ATM -> 客户:验证密码
- 客户 -> ATM:申请提取现金
- ATM -> 银行:验证资金
- 银行 –> ATM:批准(或拒绝)
- ATM -> 客户:发放现金
- ATM -> 客户:弹出卡
解释:
- 序列图从两条生命线开始:”客户 “和 “ATM”。
- 激活间隔 “表示每条生命线在交互过程中的激活时间。 客户从一开始就处于激活状态,当客户插入银行卡时,自动取款机就处于激活状态。
- 生命线之间交换信息,以表示交互流程。 细目如下
- 客户将卡插入自动取款机。
- 自动取款机验证卡。
- 客户输入密码。
- 自动取款机验证 PIN 码。
- 客户要求提取现金。
- 自动取款机与银行联系,确认是否有足够的资金。
- 银行对 ATM 做出批准或拒绝的答复。
- 如果获得批准,自动取款机就会向客户发放现金。
- ATM 会弹出客户的卡。
- 图末的 “激活时间间隔 “显示了每条救生索的停用时间。 客户在收到现金和银行卡后,互动就结束了,而自动取款机仍处于激活状态。
这是一个序列图的基本示例,描述了客户和自动取款机在取款过程中的交互。 当你模拟涉及多个对象或组件、条件分支、循环等的交互时,序列图会变得更加复杂。
了解更多信息:什么是活动图?
UML 中的序列图
序列图是一种 UML(统一建模语言)图,用于可视化和记录系统或软件应用程序中对象或组件之间的动态交互和行为。 它们有助于模拟用例或特定场景执行过程中的信息交换顺序。 以下是序列图中常用的一些关键组件和概念:
- 生命线 生命线代表参与交互的对象或组件。 它们通常被描绘成垂直线(通常是虚线),顶端标有对象或组件的名称。
- 激活条: 这些水平条通常画在生命线的顶部,表示对象或组件正在积极处理信息的时间。 它们显示对象何时繁忙,何时闲置。
- 留言 信息是连接生命线的箭头或线条,显示对象之间的交流流。 有几种不同的信息,例如
同步信息: 这些信息用实心箭头标示,表示发送者在等待回复后再继续发送。
异步信息:这些信息用虚线箭头表示,表示发送者不等待回应而继续发送。
返回信息:用虚线箭头和标注的引用表示,它们代表接收对象返回的响应。
自身信息:这些是对象发送给自身的信息,用回环箭头表示。
- 激活和停用:当一个对象处于活动状态(处理信息)时,激活栏处于活动状态;当它不处理信息时,激活栏会停用。
- 可选片段: 它们用于在序列图中表示条件和迭代行为。 例如,您可以使用 “alt”(替代)和 “loop “片段来显示交互中的不同场景或循环。
- 对象销毁:对象或组件的终止会在生命线上显示一个大 “X”。
序列图有多种用途,包括
- 在用例或场景中模拟对象之间的交互。
- 了解系统的动态行为。
- 设计和记录信息交换的顺序。
- 识别潜在问题,如并发问题或瓶颈。
- 向利益相关者(包括开发人员、测试人员和业务分析人员)传达系统行为。
这些图表是软件开发中的重要工具,用于指定、设计和记录系统或应用程序行为的动态方面。 它们是其他 UML 图表的补充,如类图(描述静态结构)和用例图(从用户角度展示系统功能)。
了解更多:什么是 UML 图表?