时序图(Sequence Diagram),亦称为序列图、循序图或顺序图,是一种UML交互图。它经过描述对象之间发送消息的时间顺序显示多个对象之间的动态协做。数据库
它能够表示用例的行为顺序,当执行一个用例行为时,其中的每条消息对应一个类操做或状态机中引发转换的触发事件。并发
时序图是一个二维图,横轴表示对象,纵轴表示时间,消息在各对象之间横向传递,依照时间顺序纵向排列。异步
系统角色,能够是人、机器、其余系统、子系统;在时序图中用 🕴 表示。ide
第一种方式包括对象名和类名,例如:直播课时:课时,在时序图中,用“对象:类”表示; 第二种方式只显示类名,即表示它是一个匿名对象,例如: :课程;在时序图中,用“:类”表示; 第三种方式只显示对象名不显示类名,例如:讲师;在时序图中,用“对象”表示。工具
三种命名方式都可,哪一种最容易让阅读该时序图的人理解,就选择哪一种。oop
对象的左右顺序并不重要,可是为了做图清晰整洁,一般应遵循如下两个原则:ui
在时序图中表示为从对象图标向下延伸的一条虚线,表示对象存在的时间。3d
又称为激活期,表示时间段的符号,在这个时间段内对象将执行相应的操做。它能够被理解成C语言语义中一对花括号{ }中的内容;用小矩形表示。cdn
消息通常分为同步消息(Synchronous Message),异步消息(Asynchronous Message)和返回消息(Return Message)。对象
表示方法的自身调用或者一个对象内的一个方法调用另一个方法。
组合片断用来解决交互执行的条件和方式,它容许在序列图中直接表示逻辑组件,用于经过指定条件或子进程的应用区域,为任何生命线的任何部分定义特殊条件和子进程。组合片断共有13种,名称及含义以下:
经常使用组合片断举例:
用来指明在两个或更多的消息序列之间的互斥的选择,至关于经典的if..else..
抉择在任何场合下只发生一个序列。 能够在每一个片断中设置一个临界来指示该片断能够运行的条件。else 的临界指示其余任何临界都不为 True 时应运行的片断。若是全部临界都为 False 而且没有 else,则不执行任何片断。
包含一个可能发生或不发生的序列;
片断重复必定次数,能够在临界中指示片断重复的条件。
时序图的绘制工具备VISO、Rational Rose、StarUML、Web Sequence Diagrams、Timing Designer、Trufun Plato等,可任选其一。
时序图的绘制步骤可简单总结以下:
接下来,咱们按照上面所讲的时序图的绘制步骤,以学生在教务系统中查询其课程的成绩为例,来说解时序图的绘制方法。
所谓划清边界,就是要界定好本身所要画的时序图的范围,“学生在教务系统中查询其课程的成绩”就是所要绘制的时序图的交互内容,不用往上延伸到用户登陆,也不要往下延伸到下载成绩单。
识别交互的语境,便是读懂所要画的时序图的前提和背景。好比本例中,既然学生能够查询成绩,那么该学生确定已经注册并认证过其身份,并可选择其所考试的课程查询相应成绩。
在本例中,角色有学生,对象有教务系统、课程、成绩。
对象的梳理是一个相对主观的过程,好比本例中,课程以及成绩分别做为了对象存在,也能够合并为数据库这一个对象。
请注意:角色以及对象,都为名词,动词不可做为角色和对象,如“成绩查询”不可做为对象。
学生的登陆验证做为本时序图的前置行为,可直接引用到本时序图中,也可忽略不画;学生进入成绩查询页面后,页面会加载本学生的成绩查询课程列表,并显示出课程对应的成绩;
时序图的绘制技巧: