前言

在我的工作中,用的最多的就是时序图了。可能由于工作的原因,我也是最喜欢画时序图了,很清楚,很明了,什么时候发送什么消息,到达什么状态,一下子就展示在你的脑海里,对于消息驱动的程序来说,是再好不过的了。

时序图简介

首先,时序图用来表示用例中的行为顺序,当执行一个用例行为时,顺序图中的每条消息对应了一个类操作或者状态机中引起转换的事件; 其次,时序图展示对象之间的交互,这些交互是指在场景或用例的事件流中发生的。时序图属于动态建模; 最后,时序图的重点在消息序列上,也就是说,描述消息是如何在对象间发送和接收的。表示了对象之间传递消息的时间顺序。 还有,别忘了,浏览时序图的方法是,从上到下查看对象间交换的消息。

时序图中的元素

时序图中包括的建模元素主要有:角色、对象、生命线、控制焦点、消息和Combined Fragments。接下来,分别介绍每一个元素,以及展现它们在Astah中的表现形式。

角色

如下图:

图中的小人,就表示一个角色,这里的角色,可以是人,或者是其它的子系统或者系统。

对象

如下图:

每条生命线上都关联着一个对象,上图中有三条生命线,可以看到有三个对象,但是三个对象的命名方式都是不一样的。在使用Astah画时序图时,选择一个对象,在属性中可以更改这种命名,分别介绍一下这三种命名方式:

  1. 显示实例名和类名,方式:实例名:类名;
  2. 只显示类名,方式::类名;
  3. 只显示实例名,方式:实例名。

其实,三种命名方式,没有特别的要求,哪一种能让阅读该时序图的人一眼就能看明白,就使用哪种,而我一般使用的是第一种和第二种,第一种信息量多,在单例时,可以用来表示;第二种,画时序图时不用刻意的去强调实例名,只需要作出类名就好了;但是,第三种,我一直不知道存在的意义,给你一个实例名,其实从图中真的看不出其的类名。所以,我个人还是建议大家使用第一种和第二种。

生命线

没有什么多说的,从上面的两张图中,我们都可以看到一条向下延伸的虚线,而这条虚线就是表示的生命线,表示一个对象存在的时间。

控制焦点

控制焦点是顺序图中表示时间段的符号,在这个时间段内对象将执行相应的操作。用小矩形表示。如下图表示:

消息

消息一般分为同步消息、异步消息和返回消息;如下图表示。

同步消息就是指消息的发送者把控制传递给消息的接收者,然后停止活动,等待消息的接收者放弃或者返回控制。用来表示同步的意义。 异步消息就是指消息发送者通过消息把信号传递给消息的接收者,然后自己继续活动,不等待接收者返回消息或者控制。异步消息的接收者和发送者是并发工作的。 返回消息就是指消息从过程调用返回。

自关联消息

表示方法的自身调用以及一个对象内的一个方法调用另外一个方法,如下图:

Combined Fragments

表示带有一些特定条件发送的消息。

https://images0.cnblogs.com/blog/405273/201307/06155657-732b73868c65429f8fba164931377107.png

如上图,就表示,循环(loop)发送GetProperty消息获得属性。在使用Astah画时序图时,选择一个Combined Fragments之后,可以在其对应的属性面板更改对应的发送条件。里面介绍了很多,此处列举一二:

  1. Alternative fragment(denoted “alt”) 与 if…then…else对应
  2. Option fragment (denoted “opt”) 与 Switch对应
  3. Parallel fragment (denoted “par”) 表示同时发生
  4. Loop fragment(denoted “loop”) 与 for 或者 Foreach对应

总结

关于时序图,就到此为止,讲的不深,主要是一些关于时序图的概念,没有涉及到应用,以及实际案例的分析,总是觉得缺点什么,是吧。没有关系,大家可以参考这里:《UML建模之时序图(Sequence Diagram) 》。

博客转自:《UML时序图总结》

转载于:https://www.cnblogs.com/SanMaoSpace/p/5095415.html

[转载]UML时序图总结相关推荐

  1. UML时序图(Sequence Diagram)学习笔记

    UML时序图(Sequence Diagram)学习笔记 原创 SuperMan-zhang 最后发布于2018-07-04 14:37:25 阅读数 94844 收藏 发布于2018-07-04 1 ...

  2. uml 时序图_设计模式-UML

    定义 统一建模语言(Unified Modeling Language,UML)是一种为面向对象系统的产品进行说明.可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言.UML是面向对象设计 ...

  3. UML时序图速查——架构设计必备技能

    目录 一.时序图概述 二.时序图元素 1. Actor(角色)& Object(对象) 2. Lifeline(生命线) 3. Message(消息) 4. Combined Fragment ...

  4. [全程建模]关于UML时序图箭头方向的问题

    饼子堂的一个老程序员2017/10/12 9:40:59 清润 请教个问题哦 青润 2017/10/129:44:47 说 咱们这边客气什么呀?有问题你直接说,只要我有时间,我就直接回复了. 饼子堂的 ...

  5. 【系统设计】:画UML时序图的技巧

    1 推荐办法 作为程序员,肯定是使用代码画图比较方便快捷. 以下推荐使用plantUML来画各种UML图. 以下网站是plantUML的官网: www.plantuml.com 网站提供了一个在线的I ...

  6. 一张图阐述UML时序图(顺序图)的画法【软件工程】

    文章目录 I.介绍时序图 II.一图搞定时序图画法 I.介绍时序图 时序图(Sequence Diagram)也叫顺序图,是显示对象之间交互的图,这些对象是按时间顺序排列的.时序图中显示的是参与交互的 ...

  7. 根据文本自动生成UML时序图(draw.io格式)

    1. 前言 已有一些工具可以根据文本自动生成UML时序图,如PlantUML(https://plantuml.com/zh/).Mermaid(https://mermaid-js.github.i ...

  8. UML时序图和流程图介绍

    文章目录 UML时序图参考 UML流程图参考 UML类图讲解 一.整体图 二.属性讲解 类 接口 继承(泛化) 实现 关联 聚合 合成 依赖 参考资料 UML时序图参考 类图.用例图.时序图.状态图. ...

  9. 【工具】-10 UML时序图(Sequence Diagram)学习笔记

    为什么要绘制时序图? 我们编码的时候,知道有的用例的业务逻辑按照比较确定的时间先后顺序进行展开.这时候,我们就需要知道我们设计的系统中的不同类之间传递消息(可以认为是不同对象函数间的调用)要按照怎么样 ...

最新文章

  1. Spring MVC 返回视图时添加的模型数据------POJO
  2. go面向对象编程:结构体struct详解、结构体实例的创建方式、结构体之间的转换(type取别名的使用)、方法的注意事项及与函数的区别
  3. XCTF-高手进阶区:unserialize3
  4. 如何为编程爱好者设计一款好玩的智能硬件(三)——该选什么样的MCU呢?
  5. SAP document builder功能一览
  6. 《编写可维护的Javascript》学习总结
  7. 高考有算计算机会考分数吗,高三冲刺,模拟考分数与高考分数会有差别吗?差多少分才算正常...
  8. [翻译]Java 核心技术(第7版)(3)
  9. 切换账号_在iOS 13在如何切换App Store账号
  10. 非线性光纤光学——光孤子4
  11. 基金投资入门与技巧——阅读笔记
  12. Win11如何关闭445端口?Win11关闭445端口的方法
  13. 哈希表存储数据结构原理
  14. 手机 android.downloader病毒,downloader病毒是什么
  15. Ubuntu进入睡眠模式
  16. 如何使用API_api接口有什么优点
  17. ubuntu 22.04下载安装
  18. Win10显示器驱动程序无法启动
  19. surface pro4 java开发_写给那些想买Surface Pro4的童鞋们
  20. 数据库事务隔离标准分析

热门文章

  1. GlideDemo【Glide3.7.0版本的简单使用以及圆角功能】
  2. Unity+KBEngine实战系列1——棋牌(含完整教程与源码)
  3. spring源码解析系列之事件驱动模型架构
  4. springmvc+mybatis+dubbo+zookeeper+restful
  5. Oracle把Java EE的未来押在Rest API上了?
  6. asp.net生产环境和开发环境的错误日志包装策略
  7. 工厂方法(FactoryMethod)模式
  8. 批量生成zabbix screen xml file
  9. 如何在三层交换机上实现跨VLAN 的DHCP配置
  10. 微信公众号开发之创建菜单栏代码示例(php)