时序图

el/2023/6/4 14:39:36

一、时序图简介(Brief introduction)

       时序图(Sequence Diagram)是显示对象之间交互的图,这些对象是按时间顺序排列的。

      顺序图中显示的是参与交互的对象及其对象之间消息交互的顺序。

时序图中包括的建模元素主要有:对象(Actor)、生命线(Lifeline)、控制焦点(Focus of control)、消息(Message)等等。

二、时序图元素(Sequence Diagram Elements)

  角色(Actor)

   系统角色,可以是人、及其甚至其他的系统或者子系统。

  对象(Object)

  对象包括三种命名方式:

  第一种方式包括对象名和类名;用“对象:类”表示

  第二中方式只显示类名不显示对象名,即表示他是一个匿名对象;用“:类”表示

  第三种方式只显示对象名不显示类名 用“对象”表示

对象的排列顺序不重要,但是为了作图清晰易懂,应该遵循以下准则:

c1.交互频繁的对象尽可能的靠拢
c2.把初始化整个交互活动的对象放在最左边

生命线(Lifeline)

  生命线在顺序图中表示为从对象图标向下延伸的一条虚线,表示对象存在的时间,如下图

控制焦点(Focus of Control)

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

消息(Message)

  消息一般分为同步消息(Synchronous Message),异步消息(Asynchronous Message)和返回消息(Return Message).如下图所示:

同步消息=调用消息(Synchronous Message

  消息的发送者把控制传递给消息的接收者,然后停止活动,等待消息的接收者放弃或者返回控制。用来表示同步的意义。 

  异步消息(Asynchronous Message

  消息发送者通过消息把信号传递给消息的接收者,然后继续自己的活动,不等待接受者返回消息或者控制。异步消息的接收者和发送者是并发工作的。

  返回消息(Return Message

  返回消息表示从过程调用返回

自关联消息(Self-Message)

  表示方法的自身调用以及一个对象内的一个方法调用另外一个方法。

Combined Fragments

7.组合片段

  用来解决交互执行的条件和方式,它允许直接在序列图中表示逻辑组件,用于通过指定条件或子进程的应用区域,为任何生命线的任何部分定义特殊条件和子进程。组合片段共有13种,名称及含义如下:

常用组合片段举例:
(1)抉择(Alt)
抉择在任何场合下只发生一个序列。 可以在每个片段中设置一个临界来指示该片段可以运行的条件。else 的临界指示其他任何临界都不为 True 时应运行的片段。如果所有临界都为 False 并且没有 else,则不执行任何片段。

(2)选项(Opt)
包含一个可能发生或不发生的序列;

(3)循环(Loop)
片段重复一定次数,可以在临界中指示片段重复的条件。

(4)并行(Par)

实例:

三、时序图实例分析(Sequece Diagram Example Analysis)

  时序图场景

完成课程创建功能,主要流程有:

1、请求添加课程页面,填写课程表单,点击【create】按钮

2、添加课程信息到数据库

3、向课程对象追加主题信息

4、为课程指派教师

5、完成课程创建功能

时序图实例

时序图实例分析

1、序号1.0-1.3 完成页面的初始化

2、序号1.4-1.5 课程管理员填充课程表单

3、序号1.6-1.7 课程管理员点击【Create】按钮,并响应点击事件

4、序号1.8     Service层创建课程

5、序号1.9-1.10 添加课程到数据库,并返回课程编号CourseId

6、序号1.11-1.12 添加课程主题到数据库,并返回主题编号topicId

7、序号1.13         给课程指派教师

8、序号1.14         向界面抛创建课程成功与否的消息

四、总结(Summary)

时序图是一个二维图,横轴表示对象,纵轴表示时间,消息在各对象之间横向传递,依照时间顺序纵向排列。

https://blog.csdn.net/fly_zxy/article/details/80911942

http://www.ngui.cc/el/3419338.html

相关文章

《Objective-C高级编程:iOS与OS X多线程和内存管理》 一 自动引用计数

一、自动引用计数 1.1 内存管理的思考方式 对象操作与objective-c 方法的对应对象操作Object-C 方法生成并持有对象alloc、new、copy、mutableCopy持有对象retain方法释放对象release方法废弃对象dealloc方法1.1.1 自己生成的对象,自己持有 使用以下名称开头的方…

《Objective-C高级编程:iOS与OS X多线程和内存管理》 一 Blocks模式GCD

一、Blocks摘要 Blocks:带有自动变量(局部变量)的匿名函数。 匿名函数:不带有名称的函数。 int func(int cout); //声明名称为func的函数 int result func(10); // 调用该函数,必须使用该函数的名称 // 若像下面这…

JXCategoryTitleView的使用

最近写项目,遇到了一个vc下面有多个vc 指示器可以点击切换,也可也左右滑动进行切换,解除了JXCategoryTitleView 感觉很好用; 一般要求主vc遵循JXCategoryViewDelegate、JXCategoryListContainerViewDelegate两个协议 子vc遵循JX…

基本编程能力练习

一、首先下载Java的编译环境并安装 JDK下载地址:https://www.oracle.com/java/technologies/javase-jdk15-downloads.html 选择适合自己系统的版本进行安装 这里我选择的是jdk-15_windows-x64_bin.exe 下载完成后直接运行安装,安装位置选择默认的C盘&am…

基本任务1.1Java语言基础

一、任务要求 完成基本数据类型的使用。完成基本运算符和表达式的使用。完成基本控制语句:判断、分支、循环等语句的使用。完成数组的使用。所有源代码必须加入行一级注释。 二、任务的理解 本次任务是让我们对Java编程中所遇到的基础知识进行学习和掌握&#xf…

基本任务1.1Java语言基础(任务挑战)

任务挑战: 1.编制一个Java application应用程序,把数组中已知的10个数字由小到大排序后输出。 编程前思考: 完成数组排序的方法有多种,其中有调用Arrays类中的sort方法直接对数组进行由小到大的排序,还可以采用冒泡排序…

基本任务1.2Java面向对象程序

一、任务要求 完成一个Java application应用程序,描述一个人类。要求如下:要求此人类必须包含有人的姓名、性别、出生日期等基本属性(变量)。要求此人类描述吃饭的方法(函数)和描述睡觉的方法(…

基本任务1.3Java API

完成一个 java application应用程序,可以接收用户通过键盘输入的文本,并输出此段文本字符的个数。 代码: package task; //包名 import java.util.Scanner; //导入Scanner类 public class JavaAPI { //创建类public static void…

Tensorflow的安装与配置

Tensorflow的安装与配置 经过多次的安装失败,找寻原因,最终安装成功。 1、基于之前安装的anaconda的基础上进行tensorflow的安装,首先通过按windows键和R键弹出运行框,输入CMD回车,进入cmd命令窗口,先查询…

基本任务1.4java异常捕捉机制

Java异常捕捉机制 任务要求: 一、完成一个 java application应用程序,完成ca/b 的计算并输出c的结果,可以为a和b在程序中赋初值、或者接收用户通过键盘输入a和b的数值文本后转换为数字等,在程序要求当 b 为0时c的计算结果正确。…