UML 时序图[通俗易懂]

UML 时序图[通俗易懂]概念时序图(SequenceDiagram)描述了对象之间传递消息的时间顺序,用来表达用例中的行为顺序,是强调消息时间顺序的交互图。也就是说,时序图描述了类以及类间相互交换以完成期望行为的消息。内容时序图包括了4个元素,分别是对象(Object)、生命线(Lifeline)、激活(Activation)和消息(Message)。对象(Object)对象代表时序图中的对象…

大家好,又见面了,我是你们的朋友全栈君。

概念

时序图(Sequence Diagram)描述了对象之间传递消息的时间顺序,用来表达用例中的行为顺序,是强调消息时间顺序的交互图。也就是说,时序图描述了类以及类间相互交换以完成期望行为的消息。

内容

时序图包括了 4 个元素,分别是对象(Object)、生命线(Lifeline)、激活(Activation)和消息(Message)。

  1. 对象(Object)
    对象代表时序图中的对象在交互中所扮演的角色。时序图中对象的符号和对象图中对象所用的符号一样,都是使用矩形将对象名称包含起来,并且对象名称下有下划线,如下图所示:
    这里写图片描述
    将对象置于时序图的顶部意味着在交互开始的时候对象就已经存在了,如果对象的位置不在顶部,那么表示对象是在交互的过程中被创建的(对象可以在交互开始的时候创建, 也可以在交互过程中进行创建)。

  2. 生命线(Lifeline)
    生命线是一条垂直的虚线,表示时序图中的对象在一段时间内的存在。每个对象的底部中心的位置都带有生命线。生命线是一个时间线,从时序图的顶部一直延伸到底部,所用的时间取决于交互持续的时间。对象与生命线结合在一起称为对象的生命线;对象的生命线包含矩形的对象图标以及图标下面的生命线,如下图所示:
    这里写图片描述

  3. 激活(Activation)
    时序图可以描述对象的激活(Activation)和去激活(Deactivation)。激活代表时序图中的对象执行一项操作的时期。
    激活表示该对象被占用以完成某个任务,去激活指的是对象处于空闲状态,在等待消息。在UML中,为了表示对象是激活的,可以将对象的生命线拓宽成为矩形,如下图所示:
    这里写图片描述

  4. 消息(Message)
    消息是定义交互和协作中交换信息的类,用于对实体间的通信内容建模。消息用于在实体间传递信息,允许实体请求其他的服务,类角色通过发送和接收消息进行通信。它可以激发某个操作、唤起信号或导致目标对象的创建或撤销。消息序列可以用两种图来表示:时序图和协作图(时序图强调消息的时间顺序,而协作图强调交换消息的对象间的关系)。
    在 UML 中,消息使用箭头来表示,箭头的类型表示了消息的类型,消息箭头指的一方是接收方,如下图所示:
    这里写图片描述

时序图建模策略

(1)设置交互的语境,这些语境可以是系统、子系统、操作、类、用例和协作的一个脚本;
(2)通过识别对象在交互中扮演的角色,根据对象的重要性,将其按从左向右的方向放在时序图中;
(3)设置每个对象的生命线。一般情况下,对象存在于交互的整个过程,但它也可以在交互过程中被创建和撤销;
(4)从引发某个交互的信息开始,在生命线之间按从上向下的顺序画出随后的消息;
(5)设置对象的激活期,这可以可视化实际计算发生时的时间点、可视化消息的嵌套;
(6)如果需要设置时间或空间的约束,可以为每个消息附上合适的时间和空间约束;
(7)给某控制流的每个消息附上前置或后置条件,这可以更详细地说明这个控制流。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/148658.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • matlab矩阵拼接

    matlab矩阵拼接matlab中矩阵拼接分为行拼接和列拼接

  • pycharm专业版永久激活码-激活码分享

    (pycharm专业版永久激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

  • 解决博客群发问题的实用Seo工具

    解决博客群发问题的实用Seo工具一直以来,博客群发对于中文seo来说都是很多人在追求的方式。现在,英文seo也可以在一定程度上实现博客群发的功能,而仅仅只需要一个博客群发工具——ZoundryRaven。ZoundryRaven博客群发工具是基于国外主流博客程序wordpress以及其他如blogger、windowslivespace等大型社区开发而成,可以在不用多次手动输入账号密码等直接将文章发布到多个免费博客或

  • Vagrant基本命令详解

    Vagrant基本命令详解

  • ubuntu 18.04安装edge浏览器

    ubuntu 18.04安装edge浏览器1.先下载适用于Ubuntu的deb格式安装包2.使用sudodpkg-imicrosoft-edge-dev_****_amd64.deb,安装edge3.安装后会发现打不开,运行以下代码sudoaptinstallmicrosoft-edge-dev4.运行sudoaptinstallmicrosoft-edge-dev后,会出现错误:Unmetdependencies.Try’apt–fix-brokeninstall’withn…

  • Django 安装_centos redis安装

    Django 安装_centos redis安装安装redis1.使用Homebrew安装Redisbrewinstallredis执行上述命令后出现以下内容,则成功安装Downloadfailed:https://mirrors.

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号