一、 什么是时序图?
时序图(Sequence Diagram),亦称为序列图、循序图或顺序图,是一种UML交互图。它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。
时序图是一个二维图,横轴表示对象,纵轴表示时间,消息在各对象之间横向传递,依照时间顺序纵向排列。
二、 时序图的作用是什么?
1、展示对象之间交互的顺序。将交互行为建模为消息传递,通过描述消息是如何在对象间发送和接收的来动态展示对象之间的交互;
2、相对于其他UML图,时序图更强调交互的时间顺序;
3、可以直观的描述并发进程。
三、 组成元素有哪些?
1 角色(Actor)
系统角色,可以是人、机器、其他系统、子系统;在时序图中用表示。
2 对象(Object)
(1)对象的三种命名方式
第一种方式包括对象名和类名,例如:直播课时:课时,在时序图中,用“对象:类”表示;
第二种方式只显示类名,即表示它是一个匿名对象,例如: :课程;在时序图中,用“:类”表示;
第三种方式只显示对象名不显示类名,例如:讲师;在时序图中,用“对象”表示。
(2)命名方式的选择
三种命名方式均可,哪种最容易让阅读该时序图的人理解,就选择哪种。
(3)对象的排列顺序
对象的左右顺序并不重要,但是为了作图清晰整洁,通常应遵循以下两个原则:把交互频繁的对象尽可能的靠拢;2把初始化整个交互活动的对象放置在最左端。
3 生命线(Lifeline)
在时序图中表示为从对象图标向下延伸的一条虚线,表示对象存在的时间。
4 控制焦点(Focus of Control)
又称为激活期,表示时间段的符号,在这个时间段内对象将执行相应的 *** 作。它可以被理解成C语言语义中一对花括号{ }中的内容;用小矩形表示。
5 消息(Message)
消息一般分为同步消息(Synchronous Message),异步消息(Asynchronous Message)和返回消息(Return Message)。
消息的发送者把控制传递给消息的接收者,然后停止活动,等待消息的接收者放弃或者返回控制。用来表示同步的意义;
消息发送者通过消息把信号传递给消息的接收者,然后继续自己的活动,不等待接受者返回消息或者控制。异步消息的接收者和发送者是并发工作的。
返回消息表示从过程调用返回。
6 自关联消息
表示方法的自身调用或者一个对象内的一个方法调用另外一个方法。
7 组合片段
组合片段用来解决交互执行的条件和方式,它允许在序列图中直接表示逻辑组件,用于通过指定条件或子进程的应用区域,为任何生命线的任何部分定义特殊条件和子进程。组合片段共有13种,名称及含义如下:
常用组合片段举例:
用来指明在两个或更多的消息序列之间的互斥的选择,相当于经典的ifelse
(1)抉择(Alt)
抉择在任何场合下只发生一个序列。 可以在每个片段中设置一个临界来指示该片段可以运行的条件。else 的临界指示其他任何临界都不为 True 时应运行的片段。如果所有临界都为 False 并且没有 else,则不执行任何片段。
(2)选项(Opt)
包含一个可能发生或不发生的序列;
(3)循环(Loop)
片段重复一定次数,可以在临界中指示片段重复的条件。
(4)并行(Par)
四、 时序图的绘制工具
时序图的绘制工具有VISO、Rational Rose、StarUML、Web Sequence Diagrams、Timing Designer、Trufun Plato等,可任选其一。
五、 时序图的画法及实例
时序图的绘制步骤可简单总结如下:
划清边界,识别交互的语境;
将所要绘制的交互场景中的角色以及对象梳理出来;
从触发整个交互的某个消息开始,在生命线之间从上到下依次画出所有消息,并注明每个消息的特性(如参数等)。
接下来,我们按照上面所讲的时序图的绘制步骤,以学生在教务系统中查询其课程的成绩为例,来讲解时序图的绘制方法。
1、划清边界,识别交互的语境
所谓划清边界,就是要界定好自己所要画的时序图的范围,“学生在教务系统中查询其课程的成绩”就是所要绘制的时序图的交互内容,不用往上延伸到用户登录,也不要往下延伸到下载成绩单。
识别交互的语境,即是读懂所要画的时序图的前提和背景。比如本例中,既然学生可以查询成绩,那么该学生肯定已经注册并认证过其身份,并可选择其所考试的课程查询相应成绩。
2、梳理角色和对象
在本例中,角色有学生,对象有教务系统、课程、成绩。
对象的梳理是一个相对主观的过程,比如本例中,课程以及成绩分别作为了对象存在,也可以合并为数据库这一个对象。
请注意:角色以及对象,都为名词,动词不可作为角色和对象,如“成绩查询”不可作为对象。
3、添加消息
学生的登录验证作为本时序图的前置行为,可直接引用到本时序图中,也可忽略不画;学生进入成绩查询页面后,页面会加载本学生的成绩查询课程列表,并显示出课程对应的成绩;
时序图(Sequence Diagram),又名序列图、循序图,是一种UML交互图。它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。它可以表示用例的行为顺序,当执行一个用例行为时,其中的每条消息对应一个类 *** 作或状态机中引起转换的触发事件。
时序图绘制步骤
使用「亿图图示」软件(需提前安装)绘制时序图,只需要4个步骤,具体内容如下所述:
①运行软件,开启绘图
双击启动软件,依次点击“新建”-“软件”-“UML模型图”-“创建”。
②绘制UML时序图
在左侧符号库里找到“UML序列”的符号,从中拖拽符号至画布中,再进行排列组合。
③完成绘制
输入文本,再修改样式,即可完成时序图的绘制。
④保存或导出
可以在软件“文件”中,保存源文件到电脑本地,也可以保存为其他的查看格式。
另外,软件里还内置不少模板,可以免费修改和套用,点击这里查看专业的UML时序图制作软件。
初学单片机就搞这个有点难,这个对时序要求非常严格,稍有差池就会出错。你的这个时序图是读时序,在读的时候呢,MCU需要将数据线拉低,在拉低后的1us-15us之间,一般选取是10us进行读取,这时读取到0则是0读取到1则是1,然后需要延时50-45us,这个延时需要跟前面读取时的延时对应,要保证一个读取总时长为大于60us。这个只是读的时序,还有写的时序,以及开始时序图。首先你要知道什么是方波,高低电平。然后就要看你的PLC程序的条件(某一步),例如
LD
X1
AND
X2
OUT
Y1
那么启动Y的条件就是X1和X2同时闭合,那么时序图就是当X1和X2同时处于高电平状态下,Y也变为高电平状态。(另外如果X1或者X2里面有一个是周期型脉冲的话,我们就可以看到Y的输出也是周期的,也就是闪烁。)
另外还有上升沿和下降沿,就是说只有在变化为高电平或低电平的瞬间,再进行逻辑关系的运算输出Y这个时序图 是 按
cs=0;
sck=0;
si=数据的一位;
sck=1; //sck是下降沿有效。
这样写是完全正确的。
数据输出:sck是下降沿有效。
cs=0;
sck=1;
so=指令的一位;
sck=0;
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)