Visual Paradigm 博客
Menu
  • Product
    • PDF Editor Suite
    • Documents
    • Presentations
    • Spreadsheets
    • Diagramming
    • Forms
    • File Conversion
    • Graphic Design Tool
    • Photo Effects Tool
    • Flipbook Maker
  • Features
  • Resources
    • Flipbook Library
    • Community
    • What’s New
    • Learn
    • Blog
    • Knowledge
  • Templates
    • Visuals
    • Diagrams
    • Charts
    • Flipbooks
    • Photo Books
    • Collage
    • Forms
    • Spreadsheet
  • Pricing
  • Sign up
  • Log in

Home » 关于序列图你需要知道的一切

关于序列图你需要知道的一切

  • Posted on February 11, 2022
  • /Under UML
  • /With 0 Comments
  • UML 序列图是详细说明如何执行操作的交互图。它们捕获协作上下文中对象之间的交互。序列图是时间焦点,它们通过使用图的垂直轴来表示发送什么消息以及何时发送的时间来直观地显示交互的顺序。

    什么是序列图?

    Table of Contents hide
    1 什么是序列图?
    1.1 时序图的对象
    1.2 序列图的元素
    1.3 生命线
    1.4 创建和销毁消息
    1.5 非即时消息
    1.6 组合片段
    1.7 示例——下订单场景
    1.8 另一个例子:下订单
    1.9 常用组合片段
    1.10 组合片段的例子
    1.11 相框
    1.12 参考 (Ref)
    1.13 协议
    1.14 序列图符号总结

    时序图,又称时序图、时序图或时序图,是一种UML交互图。它通过描述消息在它们之间发送的时间顺序来显示多个对象之间的动态协作。

    在 UML 中,序列图中的对象被绘制为包含对象名称的矩形,并带有下划线。可以通过以下三种方式之一命名对象:对象名称、对象名称及其类,或仅类名称(匿名对象)。对象的三种命名方式如下图所示。

    编辑此序列图

    时序图的对象

    1. 显示对象之间交互的顺序。将交互行为建模为消息传递,并通过描述对象之间如何发送和接收消息来动态显示对象之间的交互。
    2. 与其他UML图相比,时序图更强调交互行为的时间顺序。
    3. 它可以形象地描述并发的过程。

    序列图的元素

    1. Actor——系统参与者,可以是人、机器、其他系统、子系统;用于在时序图中表示。

    2. 对象——对象的命名方式有以下三种:

    1. 包括对象名和类名,例如:live class:class,在时序图中,带“object:class”。
    2. 只显示类名,即为匿名对象,例如::course; 在时序图中,带有“:class”。
    3. 只显示对象名,不显示类名,eg: lecturer; 在时序图中,用“object”表示。

    三种命名方式一应俱全,看年表的人最容易理解,选择哪一种。

    3.对象的顺序

    • 对象的左右顺序并不重要,但为了使图表清晰整洁,应遵循以下两个原则: 交互频繁的对象尽可能靠近放置;
    • 将初始化整个交互活动的对象放在最左端。

    生命线

    时序图中从对象图​​标向下延伸的虚线,表示对象存在了多长时间。

    • Focus of Control(也称为激活期)是表示对象将执行相应操作的时间段的符号。在C语义中可以解释为一对括号{};用一个小矩形表示。它表示元素执行操作的时间段。矩形的顶部和底部分别与开始时间和完成时间对齐。
    • 消息一般分为同步消息、异步消息和返回消息。

    注意

    • 消息的发送者将控制传递给消息的接收者,然后停止活动并等待消息的接收者放弃或返回用于指示同步的控制。
    • 消息的发送者通过消息将信号传递给消息的接收者,然后继续其活动,而无需等待接收者返回消息或控制。异步消息的接收者和发送者同时工作。
    • 返回消息表示从过程调用返回。

     

    创建和销毁消息

    参与者不一定在序列图交互的整个持续时间内都存在。可以根据传递的消息创建和销毁参与者。

    构造函数消息创建它的  接收者。在交互开始时已经存在的发送者被放置在图表的顶部。在交互过程中通过构造函数调用创建的目标会自动放置在图表的更下方。

    析构函数消息销毁它的  接收者。还有其他方法可以指示目标在交互过程中被销毁。只有当目标的销毁设置为“析构函数之后”时,您才必须使用析构函数。

    非即时消息

    消息通常被认为是瞬时的,因此到达接收者所需的时间可以忽略不计。消息绘制为水平箭头。为了表示在接收者实际收到消息之前需要一段时间,使用了一个 倾斜的箭头。

    组合片段

    序列片段表示为称为组合片段的框,它包含序列图中交互的一部分。片段运算符(在左上角)表示片段的类型。交互式片段允许您在序列图中对相关消息进行分组。提供了各种预定义的片段类型,允许您指定替代结果、并行消息或循环。

    序列图中的片段是在图的一部分上绘制的矩形框。它们代表影响消息流的条件结构。这些框架在 UML 规范中称为组合片段,容器称为交互操作数。帧标记在左上角。此标签在 UML 中称为交互运算符。

     

    示例——下订单场景

    想在线下订单的船员。订购的商品将根据她的会员身份(VIP、普通会员)通过快递或普通邮件发送给会员。如果会员在订单中选择通知选项,店铺将向会员发送确认通知。

    编辑此序列图

    另一个例子:下订单

    时序图是一个二维图,横轴代表对象,纵轴代表时间,消息在对象之间横向传递,纵向按时间顺序排列。该示例显示了一个包含三个参与对象的序列图:客户、订单和库存。甚至不需要正式地了解符号,您就可能对正在发生的事情有一个很好的了解。

    1. 第 1 步和第 2 步:客户创建订单。
    2. 第 3 步:客户将商品添加到订单中。
    3. 第 4 步、第 5 步:检查每个项目的库存可用性。
    4. 第 6、7、8 步:如果产品可用,则将其添加到订单中。
    5. 第九步返回
    6. Step 10, 11: 保存并销毁订单

    编辑此序列图

     

    常用组合片段

    片段类型包括 ref、assert、loop、break、alt、opt 和 neg、ref、sd。

    操作员 意义
    替代 可选的多个片段:只有条件为真的片段才会执行。
    选择 可选:片段仅在提供的条件为真时执行。相当于只有一条痕迹的 alt。
    标准杆 并行:每个片段并行运行。
    环形 Loop:片段可能会执行多次,守卫表示迭代的基础。
    批判的 临界区:片段一次只能有一个线程执行。
    否定 否定:片段显示无效交互。
    参考 参考:指的是在另一个图上定义的交互。绘制框架以覆盖交互中涉及的生命线。您可以定义参数和返回值。
    标准差 时序图:用于包围整个时序图。

    注意:

    • 可以组合帧以捕获例如循环或分支。
    • 组合片段 关键字:alt、opt、break、par、seq、strict、neg、critical、ignore、consider、assert 和 loop。
    • 约束通常用于显示对消息的时间约束。它们可以应用于一条消息的时间或消息之间的间隔。

    组合片段的例子

    (1) Choice (Alt) – Alternative fragment 提供了几个受保护的alternative fragments(以交互操作数分隔),即用于指定两个或多个消息序列之间的互斥选择,等同于经典的if..else…:

    编辑此序列图

    (2) 选项 (Opt) – 包含可能出现或不出现的序列,这意味着可选片段仅在某些保护条件为真时才执行:

    编辑此序列图

    (3) 循环 (Loop) – 循环允许重复片段,直到某些保护条件变为假:

    编辑此序列图

    休息

    break 允许在某些守卫变为真时转义封闭循环:

    编辑此序列图

    中断最常用于模拟异常处理。此序列图示例使用中断组合片段,因为它将 balance < amount 条件视为异常而不是替代流。要阅读此示例,我们从序列的左上角开始向下阅读。当序列到达返回值“余额”时,它会检查余额是否小于金额。如果余额不少于金额,则发送的下一条消息是 addDebitTransaction 消息,并且序列照常继续。

    平行

    并行片段允许多个交互并行运行:

    编辑此序列图

    相框

    框架提供了一种封装序列图的方法。

    编辑此序列图

    参考 (Ref)

    一个帧可以在另一个序列图中被引用:

    编辑此序列图

    协议

    编辑此序列图

    合作

    编辑此序列图

    场景

    编辑此序列图

    信号和接收

    拍卖师向拥挤的房间里焦急的竞标者广播一件物品的建议价格。当投标人听到建议时,他决定接受或不接受该价格。

    在自动拍卖中,拍卖师将如何广播提案?如果接收到某些类型的广播信号,对象可能具有应自动调用的指定操作。这些方法称为接收。信号是一种特殊的类。接收名称通常​​与信号名称相匹配。接待处显示在一个单独的隔间中:

    编辑此序列图

    在序列图中,我们可以将信号表示为异步信号,将接收表示为接收调用:

    编辑此序列图

    批判的

    编辑此序列图

    其他片段类型

    • 严格的
    • 断言
    • 考虑
    • 忽视
    • 地区
    • 否定

    序列图符号总结

    符号说明 视觉表现
    演员
    • 与主体交互的实体所扮演的一种角色(例如,通过交换信号和数据)
    • 在主体之外(即,在某种意义上,参与者的实例不是其对应主体实例的一部分)。
    • 代表人类用户、外部硬件或其他主体扮演的角色。

    注意:

    • 演员不一定代表特定的物理实体,而只是某个实体的特定角色
    • 一个人可以扮演几个不同演员的角色,反之,一个给定的演员可以由多个不同的人扮演。
    UML 序列图:Actor 示例
    生命线
    • 生命线代表交互中的单个参与者。
    UML 序列图:激活示例
    激活
    • 生命线上的细矩形)表示元素执行操作的时间段。
    • 矩形的顶部和底部分别与开始时间和完成时间对齐
    UML 序列图:激活示例
    来电留言
    • 消息定义了交互生命线之间的特定通信。
    • 调用消息是一种表示调用目标生命线操作的消息。
    UML 序列图:调用消息示例
    返回消息
    • 消息定义了交互生命线之间的特定通信。
    • 返回消息是一种消息,表示将信息返回给相应的先前消息的调用者。
    UML 序列图:返回消息示例
    自我留言
    • 消息定义了交互生命线之间的特定通信。
    • Self message是一种消息,代表调用同一生命线的消息。
    UML 序列图:自消息示例
    递归消息
    • 消息定义了交互生命线之间的特定通信。
    • 递归消息是一种代表同一生命线消息调用的消息。它的目标指向在调用消息的激活之上的激活。
    UML 序列图:递归消息示例
    创建消息
    • 消息定义了交互生命线之间的特定通信。
    • 创建消息是一种代表(目标)生命线实例化的消息。
    UML 序列图:创建消息示例
    销毁消息
    • 消息定义了交互生命线之间的特定通信。
    • 销毁消息是一种消息,代表了销毁目标生命线生命周期的请求。
    UML 序列图:销毁消息示例
    持续时间消息
    • 消息定义了交互生命线之间的特定通信。
    • 持续时间消息显示消息调用的两个时刻之间的距离。
    UML 序列图:持续时间消息示例
    笔记注释(注释)提供了将各种注释附加到元素的能力。注释不具有语义作用,但可能包含对建模者有用的信息。 UML 序列图:注释示例

     

Languages
Categories
  • Agile Development
  • Change Management
  • Customer Experience
  • File Converter
  • Flipbook Maker
  • Graphic Design
  • Guide
  • Infographics
  • Management
  • Marketing
  • OCR
  • Online Diagram
  • PDF Editing
  • Posters
  • Quick Guides
  • Templates
  • UeXceler
  • UML
  • Uncategorized
Company
  • About Us
  • What’s New
  • Press Kit
  • Forum
  • Contact Us
Create
  • Infographics
  • Posters
  • Flyers
  • Flowcharts
  • UML
Resources
  • Pricing
  • Knowledge
  • Blog
  • Sitemap
  • Free Tools
Legal
  • Terms of Service
  • Privacy Policy
  • Security Overview
  • Report Abuse
@2022 by Visual Paradigm. All rights reserved.
zh-CN Chinese (Simplified)
zh-CN Chinese (Simplified)zh-TW Chinese (Traditional)en Englishfr Frenchde Germanit Italianja Japanesept Portugueseru Russianes Spanish