前言

上一篇博文小编为大家分享了UML建模中行为图里面的状态图和活动图,今天继续为大家分享行为图中的内容— 交互图 。在UML建模中,交互图包括两种— 序列图、协作图

正文

六、序列图
    序列图又称顺序图、时序图,是对对象之间传送消息的时间顺序的可视化表示。描述对象之间的交互顺序,着重体现对象间消息传递的时间顺序,强调对象之间消息的发送顺序,同时也显示对象之间的交互过程。
    序列图的主要用途是把用例表达的需求,进一步转化为更加正式、层次明确的精细表达。用例常常被细化为一个或者更多的序列图。
绘制序列图
序列图包含的元素:参与者/角色、对象、消息、生命线、激活、约束、注释、组合
    序列图将交互关系表示为一个二维图。纵向是时间轴,时间沿竖线向下延伸。横向代表了在协作中各个独立对象的类元角色。类元角色用生命线表示。当对象存在时,角色用一条虚线表示,当对象是处于激活状态的过程中,生命线是一个双道线。
生命线: 生命线是一条垂直的虚线,表示时序图中的对象在一段时间内的存在。每个对象的底部中心位置都有生命线。生命线就是这个对象的时间线,这个时间取决于交互持续的时间。 生命线名称可带下划线。当使用下划线时,意味着序列图中的生命线代表一个类的特定实例。
对象: 和对象图中的对象所用的符号一样,都是使用矩形将对象名称包起来,并且对象名称下面有下划线。将对象置于时序图的顶部意味着在交互开始的时候对象就存在了,如果对象的位置 不在顶部,表示对象是在交互的过程中被创建的。
消息: 消息就是交互过程中交换信息的类,给对象之间的通信进行建模。消息是两个对象之间的单路通信。消息可以在对象之间传递参数。消息用从一个对象的生命线到另一个对象生命线的箭头表示。箭头以时间顺序在图中从上到下排列。消息可分为简单消息、同步消息(需要等待)、异步消息(异步发送消息,不需要等待)

激活: 时序图可以描述对象的激活和去激活。激活代表时序图中的对象执行一项操作的时期,激活表示对象被占用了,它正在完成某个任务。去激活是对象处于空闲状态,在等待消息。对象的激活状态表示,可以将对象的生命线拓宽成为矩形。在生命线中出现的矩形条被称为激活条或者是控制期。对象就是在激活条的顶部被激活的;在完成自己的工作后被去激活,这通常发生在一个消息箭头离开对象生命线的时候。
注释: 过程执行完毕后,给予状态变化的提示。

约束: 判断是否满足条件,给予反馈信息。

组合: 组合片段用来解决交互执行的条件以及方式。它允许在序列图中直接表示逻辑组件,用于通过指定条件或子进程的应用领域,为任何生命线的任何部分定义特殊条件和子进程。常用的组合片段有抉择、选项、循环、并行。
以机房收费系统中【注册】为例举例说明:

七、协作图
    协作图又称为合作图,是交互图中的一种,它用来描述相互合作对象之间的关系,更侧重于说明发送和接受消息的对象的组织结构。
    UML协作图用于显示对象之间如何进行交互以执行特定用例或用例中特定部分的行为。设计人员使用协作图和序列图确定并阐明对象的角色,这些对象执行用例的特定事件流。它们是主要的信息来源,用于确定类的职责和接口。
    与序列图不同,协作图显示了对象之间的关系。序列图和协作图表述的是相似的信息,但表述形式不同,协作图显示对象之间的关系,它更有利于理解给定对象的所有影响,也更适合于过程设计。协作图的格式决定了它们更适合在分析活动中使用。协作图非常适合描述少量对象之间的简单交互。随着对象和消息数量的增多,使用协作图理解起来会越来越困难;协作图很难显示补充的说明性信息,例如时间、判定点或其他非结构化的信息,而这些信息在序列图中可以添加到注释中。
    序列图常用来表示设计的方案;协作图用于软件设计过程中的详细设计。序列图和协作图可以相互转化。
绘制协作图
协作图包含的元素:角色、对象、链、消息。
协作图和时序图的互换: 协作图和时序图都是表示对象间的交互作用,只是它们侧重点不同。时序图描述了交互过程中的时间顺序,但没有明确表达对象间的关系;协作图描述了对象间的关系,但时间顺序必须从序列号获得。协作图和时序图都是来自UML元模型的相同信息,因此它们语义是等价的,它们可以从一种形式的图转换成另一种形式的图,而不丢失任何信息。转换的快捷键为F5.
以机房收费系统中【注册】为例举例说明:

结语

初步了解它们后,接下来就需要不断实践啦。实践出真知!
*感谢您的阅读,希望对您能有所帮助*

UML模型中的图-行为图【交互图-序列图、协作图】相关推荐

  1. UML模型中的图-实现图【组件图、配置图】

    前言 前面几篇博客小编为大家分享了UML建模中的用例图.静态图.行为图,交互图,本篇继续为大家分享UML模型中的最后一种类型图- 实现图 .实现图用来描述设计的物理实现,如执行文件.库.表.文件.文档 ...

  2. UML模型中的图-行为图【状态图、活动图】

    前言 前面的博文为大家分享了UML模型中的用例图.静态图.接下来继续为大家分享UML模型中的图-行为图. 正文 行为图用来描述系统的动态模型和对象之间的交互关系.行为图在UML模型中也是一个语义上分类 ...

  3. UML模型中的图-静态图【类图、对象图】

    前言 前一篇博文为大家分享了UML模型中的用例图.在完成用例图后,就可以根据用例图的参与者/角色以及用例来进行UML模型的静态设计了,这将会使用UML模型模型中的静态图.本篇博文继续为大家分享UML模 ...

  4. UML模型中的图-用例图

    前言 前面的博文为大家分享了UML模型中的事物和关系,本篇将为大家继续分享UML模型的三大基本构造块- 图 正文 在数学中,或者是生活中,我们会接触到各种各样的图.例如对数据分析,想要看看数据的变化趋 ...

  5. 2 在UML中有4种事物:结构事物、行为事物、分组事物和注释事物。其中,( )事物表示 UML模型中的名词,它们通常是模型的静态部分,描述概念或物理元素。以下( )属于此类事物。

    标签: 初级程序员考试易错题,计算机基础, 面向对象基础,统一建模语言 (UML) 2 在UML中有4种事物:结构事物.行为事物.分组事物和注释事物.其中,( )事物表示 UML模型中的名词,它们通常 ...

  6. 如何从Java代码生成UML图(尤其是序列图)?

    本文翻译自:How to generate UML diagrams (especially sequence diagrams) from Java code? 如何从现有Java代码生成UML图( ...

  7. ARIMA模型中PACF的系数大于1以及图为一条横线的问题

    转自:https://blog.csdn.net/summerliuqing/article/details/103471983 本文主要解决ARIMA模型中的两个问题,一个是绘制PACF图时,出现偏 ...

  8. java测试类要画UML图吗,如何从Java代码生成UML图(尤其是序列图)?

    如何从Java代码生成UML图(尤其是序列图)? 如何从现有Java代码生成UML图(尤其是序列图)? 14个解决方案 249 votes ObjectAid UML Explorer 是我用过的. ...

  9. 程序时序图 Sequence Diagram(序列图) UML图(数据流程图)的绘制

    参考视频教程:1.时序图的绘制 描述数据的流动 上面教程看起来还是有点懵逼 来看百度百科吧! 时序图中包括如下元素:角色,对象,生命线,控制焦点和消息. 1.角色(Actor) 系统角色,可以是人或者 ...

最新文章

  1. Elsevier LaTeX时间-年份(author-year)两种引用格式
  2. 使用“时间机器”备份您的 Mac
  3. Java-如何挖取某个网站中的ajax请求信息
  4. a span做成按钮样式不选中文字
  5. ubuntu mysql 编译_Ubuntu下mysql编译安装
  6. android simpliadapter的两种用法
  7. 人工智能+社交 csdn_关于AI和社交媒体虚假信息,我们需要尽快进行三大讨论
  8. python 静态变量_python小课堂19 - 面向对象篇(二)
  9. 简单的C语言房贷计算器
  10. 谷歌浏览器SwitchyOmega插件下载安装
  11. 纯CSS+CSS3右上角倾斜四十五度封页角效果
  12. 文件服务器+快照恢复,删除vmware ESXi快照文件 – 以任何方式恢复?
  13. 苹果手机微信中打开app下载链接跳转不到app store怎么办
  14. 微信 IOS系统 安卓时间格式
  15. 一名武大同学的春招48小时
  16. 关于文字转base64,base64转文字的坑(数字短信)
  17. qt android png透明,Qt处理照片实现白色背景转透明
  18. 计算机控制的按钮,电脑键盘上的按钮分别都是什么键?
  19. 华工2018计算机网络随堂练习,计算机网络随堂练习-华工2019随堂练习
  20. 数据结构和算法 绪论

热门文章

  1. QCwindows server 2003部署
  2. PC远程调试移动设备
  3. 检查DISPLAY设置时Xlib出现No protocol specified错误
  4. flink sql client读取hive时卡住
  5. 功率谱和频谱的区别、联系
  6. Django报错NameError: name 'ListView' is not defined
  7. colab长时间处于正在连接
  8. linux中xjvf指令,linux解压缩命令小结
  9. 会签 数据库表设计_关于数据库表设计和实体类设计的思考
  10. 服务器系统扩展c盘,云服务器c盘扩展