软件工程复习笔记 顺序图(时序图)

前言

       copy自老师的PPT,不只有知识点,还有一些相关内容的介绍顺便复制进来了。 如有问题请多指教

顺序图

       顺序图也称为时序图,它描述了系统中,对象间通过消息进行的交互,它强调了消息在时间轴上的先后顺序。

顺序图的作用
       顺序图常用来描述用例的实现,它表明了由哪些对象,通过消息相互协作来实现用例的功能,在顺序图中,标识了消息发生交互的先后顺序
       顺序图对于建模一个用例的场景很有用。

顺序图的组成元素

       顺序图中的元素包括对象、生命线、控制焦点、消息。消息表示了对象间的通讯,生命线表示了对象的生存期, 控制焦点表示对象正在执行一些活动。
       对象:顺序图中对象的符号和对象图中对象所用的符号一样。将对象置于顺序图的顶部意味着在交互开始的时候对象就已经存在了,如果对象的位置不在顶部,那么表示对象是在交互的过程中被创建的。
       生命线:生命线是一条垂直的虚线,表示顺序图中的对象在一段时间内的存在。每个对象的底部中心的位置都带有生命线。生命线是一个时间线,所用的时间取决于交互持续的时间。
       控制焦点:在对象的生命线上,包含一个矩形,表示对象处于激活状态,处于激活状态的对象正在执行某个任务。对象在完成自己的工作后,被去激活,对象就处于空闲状态。
       消息:

  • 消息是从一个对象到另一个或者几个其他对象的信息传递,简单地说,消息就是对象与对象、或者对象与参与者之间的某种通信方式。
  • 消息可以是一个信号或一次操作调用,收到消息即为事件。可以有两种消息,一种是从发送者向接收者发送信号,另一种是由调用者调用接收者的操作。
  • 对象之间的协作通过相互发送消息实现。


在这里插入图片描述

消息的分类

在UML中,将对象之间的消息分为五种类型:调用、返回、发送、创建和销毁
1)调用(call):这是最常用的一种消息,它表示调用某个对象的一个操作(通常格式为“对象名.成员方法”)。可以是对象之间的调用,也可以是对象本身的调用(局部调用)。
2)返回(return):返回表示被调用的对象向调用者返回一个值。在UML的交互图中,将采用如虚线箭头线来表示,在箭头线上应标明返回值。
3)发送(Send):发送是指向对象发送一个信号。信号和调用不同,它是一种事件,用来表示各对象间进行通信的异步激发机制。
关于调用和信号的说明:

  • 调用是同步的机制,而信号是一种异步的机制。也就是说:当我们说对象A调用对象B时,A发送完消息之后是会等B执行完所调用的方法之后再继续执行;如果说对象A发送了一个信号给对象B,那么A在发送完信号之后,A就会继续执行自己的操作,不会等待B的执行。

4)创建(Create)和销毁(Destroy):也就是创建和销毁一个对象。创建对象通常是利用构造方法来实现的,对象一创建,生命线就开始;生命终止符号用一个较大的叉形符号表示。

汽车和车钥匙的问题域
在这里插入图片描述

顺序图提供动态视角

       类图只是对CarOwner、CarKey、Car所构成的系统的静态视角描述。顺序图提供了一种动态的视角。
       它是如何做到的呢?是通过展示从一个实体传递到另一个实体的消息。
       顺序图的开始部分
在这里插入图片描述
锁车顺序图
       对消息建模后完成顺序图
在这里插入图片描述

例 饮料销售机问题域

在这里插入图片描述
1)买饮料的正常场景,下面是买到饮料的一般事件流:

  1. 顾客从机器的前端钱币口投入钱币,然后选择想要的饮料;
  2. 币到达钱币记录仪,记录仪更新自己的存储;
  3. 记录仪通知分配器分发饮料到机器前端;
    在这里插入图片描述
    2)饮料“已售完”的场景在这里插入图片描述
    3)机器没有合适的零钱
           顾客买饮料时,机器没有合适的零钱“找不开”的场景.
    在这里插入图片描述
    4)带有临时对象的顺序图
           该顺序图表示了发送消息2后,创建一个临时对象c, 其生命线的尾部的叉号,表示销毁对象c.
    在这里插入图片描述

例 带界面的简易计算器

在这里插入图片描述
时序图
在这里插入图片描述

应用程序框架结构

应用程序框架结构是一个可以重复使用的,大致完成的应用程序。可以通过对其进行定制开发成一个客户需要的真正的应用程序。

MVC设计模式

在这里插入图片描述

例 用户登录(有时间再完善)

  • 使用MVC模式实现
  • 基于Web的模式进行开发

登录时序图
在这里插入图片描述
在这里插入图片描述

SSH

在这里插入图片描述

包图

包图: 由包和包之间的关系组成. 包的图标就如同一个带标签的文件夹.

  • 包提供了一种用于组织各种元素的分组机制. 在 UML 中, 包用来对元素进行分组, 并为这些元素提供命名空间.
  • 包所拥有的或者引用的所有元素称为包的内容, 包没有实例.
    在这里插入图片描述
  • 54
    点赞
  • 241
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Typora是一款方便易用的Markdown编辑器,可以用来记录笔记并画流程图、时序图和甘特图。关于如何使用Typora画时序图,可以参考以下资源: 1)《使用Typora之画图》:这篇文章介绍了使用Typora画图的方法,包括如何画流程图、时序图等。 2)《快速学习时序图时序图简介、画法及实例》:这篇文章详细介绍了时序图的概念、画法和实例,对于初学者来说非常有帮助。 3)《UML时序图(Sequence Diagram)学习笔记》:这篇文章详细介绍了UML时序图的基本概念和画法,可以作为进一步学习时序图的参考资料。 总结来说,你可以使用Typora来画时序图,可以参考上述资源以了解详细的画法和示例。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [typora-setup-x64](https://download.csdn.net/download/hujincai_55/13122188)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [使用Typora画 流程图、时序图顺序图、甘特图、等图详解](https://blog.csdn.net/qq_36075612/article/details/118161100)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值