问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

软件工程中的顺序图(时序图)详解

创作时间:
作者:
@小白创作中心

软件工程中的顺序图(时序图)详解

引用
CSDN
1.
https://blog.csdn.net/wnrun/article/details/121341969

顺序图(时序图)是软件工程中用于描述对象之间动态交互关系的重要工具,它通过二维图的形式展现了对象间消息传递的时间顺序。本文将详细介绍顺序图的各个组成元素及其具体含义,帮助读者更好地理解和应用这一工具。

时序图的组成

时序图包含了5个核心元素:

  1. 参与者:参与交互的实体,可以是人、硬件设备或其他系统。
  2. 对象(Object):系统中的具体实例,可以是类的实例或其他实体。
  3. 生命线(Lifeline):表示对象在时间轴上的存在状态。
  4. 消息(Message):对象间传递的信息,可以是方法调用、信号等。
  5. 激活(Activation):表示对象正在执行某个操作的状态。
  6. 约束(Constraint):对交互过程的额外限制条件。

对象

对象在时序图中的位置和表示方式有以下特点:

  • 如果对象位于时序图的顶部,说明在交互开始之前该对象已经存在。
  • 如果对象是在交互的过程中创建的,那么它应当位于图的中间部分。

对象可以分为三种类型:

  • 指定类名和对象名的对象:objectName: className
  • 指定类名但没有对象名的对象(匿名对象)::className
  • 指定对象名但不指定类名的对象:objectName

对象的撤销

如果需要撤销一个对象,可以在其生命线的终止点放置一个“X”符号,通常是对删除或取消消息的回应。

生命线

生命线是对一条垂直的虚线,表示时序图中的对象在一段时间段内的存在。每个对象的底部中心的位置都带有生命线。生命线是一个时间线,从顺序图的顶部一直延伸带底部,所用的时间取决与交互持续时间。

消息

消息定义的对象之间某种形式的通信,它可以激发某个操作、唤起信号或导致目标对象的创建或撤销。消息是对两个对象之间的单路通信。消息可以用于在对象间传递的参数。消息可以是信号的,也可以是调用的。

激活

激活表示该对象被占用以完成某个任务,去激活指的则是对象处于空闲的状态、在等待消息。在UML中,为了表示对象是激活的,可以将该对象的生命线拓宽成为矩形。其中的矩形称为激活条或控制期。

消息类型

  1. 同步消息:发送者要发送一条消息且接收者已经做好接收这个消息的准备才能传送的消息叫同步消息。实心箭头。消息的名称是被调用者的方法名。
  2. 异步消息:发送者不管接收者是否做好准备都可以发送的消息叫异步消息。
  3. 返回消息
  4. 创建对象
  5. 撤销对象
  6. 自关联消息

约束

约束条件可以添加在消息前,通常包括条件约束和循环约束。条件约束格式为[条件],只有在符合条件时,才发送消息。循环约束格式为*[条件]

约束片段包括以下类型:

  • Opt(选项):包含一个可能发生或可能不发生的序列。可以在临界中指定序列发生的条件。
  • Alt(抉择):包含一个片段列表,这些片段包含备选消息序列。在任何场合下只发生一个序列。可以在每个片段中设置一个临界来指示该片段可以运行的条件。else 的临界指示其他任何临界都不为 True 时应运行的片段。如果所有临界都为 False 并且没有 else,则不执行任何片段。
  • Loop(循环):片段重复一定次数。可以在临界中指示片段重复的条件。Loop 组合片段具有“Min”和“Max”属性,它们指示片段可以重复的最小和最大次数。默认值是无限制。
  • Break(中断):如果执行此片段,则放弃序列的其余部分。可以使用临界来指示发生中断的条件。
  • Par(并行):并行处理。片段中的事件可以交错。
  • Critical(关键):用在 Par 或 Seq 片段中。指示此片段中的消息不得与其他消息交错。
  • Seq(弱顺序):有两个或更多操作数片段。涉及同一生命线的消息必须以片段的顺序发生。如果消息涉及的生命线不同,来自不同片段的消息可能会并行交错。
  • Strict(强顺序):有两个或更多操作数片段。这些片段必须按给定顺序发生。
  • Consider(考虑):指定此片段描述的消息列表。其他消息可发生在运行的系统中,但对此描述来说意义不大。在“Messages”属性中键入该列表。
  • Ignore(忽略):此片段未描述的消息列表。这些消息可发生在运行的系统中,但对此描述来说意义不大。在“Messages”属性中键入该列表。
  • Assert(断言):操作数片段指定唯一有效的序列。通常用在 Consider 或 Ignore 片段中。
  • Neg(否定):此片段中显示的序列不得发生。通常用在 Consider 或 Ignore 片段中。

循环分支属于业务流程中比较常见的特殊结构:

  • loop:也叫循环,是满足循环条件的前提下,不断地重复做某些事情;
  • alt:条件分支,是根据不同的条件选择不同的分支;
  • opt:可选分支,是满足一定条件则执行该分支,否则就跳过。
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号