软件工程中的顺序图(时序图)详解
创作时间:
作者:
@小白创作中心
软件工程中的顺序图(时序图)详解
引用
CSDN
1.
https://blog.csdn.net/wnrun/article/details/121341969
顺序图(时序图)是软件工程中用于描述对象之间动态交互关系的重要工具,它通过二维图的形式展现了对象间消息传递的时间顺序。本文将详细介绍顺序图的各个组成元素及其具体含义,帮助读者更好地理解和应用这一工具。
时序图的组成
时序图包含了5个核心元素:
- 参与者:参与交互的实体,可以是人、硬件设备或其他系统。
- 对象(Object):系统中的具体实例,可以是类的实例或其他实体。
- 生命线(Lifeline):表示对象在时间轴上的存在状态。
- 消息(Message):对象间传递的信息,可以是方法调用、信号等。
- 激活(Activation):表示对象正在执行某个操作的状态。
- 约束(Constraint):对交互过程的额外限制条件。
对象
对象在时序图中的位置和表示方式有以下特点:
- 如果对象位于时序图的顶部,说明在交互开始之前该对象已经存在。
- 如果对象是在交互的过程中创建的,那么它应当位于图的中间部分。
对象可以分为三种类型:
- 指定类名和对象名的对象:
objectName: className - 指定类名但没有对象名的对象(匿名对象):
:className - 指定对象名但不指定类名的对象:
objectName
对象的撤销
如果需要撤销一个对象,可以在其生命线的终止点放置一个“X”符号,通常是对删除或取消消息的回应。
生命线
生命线是对一条垂直的虚线,表示时序图中的对象在一段时间段内的存在。每个对象的底部中心的位置都带有生命线。生命线是一个时间线,从顺序图的顶部一直延伸带底部,所用的时间取决与交互持续时间。
消息
消息定义的对象之间某种形式的通信,它可以激发某个操作、唤起信号或导致目标对象的创建或撤销。消息是对两个对象之间的单路通信。消息可以用于在对象间传递的参数。消息可以是信号的,也可以是调用的。
激活
激活表示该对象被占用以完成某个任务,去激活指的则是对象处于空闲的状态、在等待消息。在UML中,为了表示对象是激活的,可以将该对象的生命线拓宽成为矩形。其中的矩形称为激活条或控制期。
消息类型
- 同步消息:发送者要发送一条消息且接收者已经做好接收这个消息的准备才能传送的消息叫同步消息。实心箭头。消息的名称是被调用者的方法名。
- 异步消息:发送者不管接收者是否做好准备都可以发送的消息叫异步消息。
- 返回消息
- 创建对象
- 撤销对象
- 自关联消息
约束
约束条件可以添加在消息前,通常包括条件约束和循环约束。条件约束格式为[条件],只有在符合条件时,才发送消息。循环约束格式为*[条件]。
约束片段包括以下类型:
- 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:可选分支,是满足一定条件则执行该分支,否则就跳过。
热门推荐
为什么越在意别人的看法,越容易失去自我
阴阳师英杰试炼兵藏秘境阵容推荐
阴阳师开局与资源建设攻略实用性的探讨
彭城之战:项羽3万人对战刘邦56万大军,如何以少胜多?
原神白雨心弦武器使用攻略:最适合希格雯的五星弓
张载《西铭》:民胞物与的哲学智慧
《英雄联盟》历届全球总决赛冠军打野选手盘点
NB码纸尿裤用到几个月有讲究,宝宝体重斤数成更换信号
深入解析黔货出山:含义、背景、发展现状与未来前景综述
MBTI人格功能发展:从主导到平衡的四个阶段
电脑话筒如何测试软件
句号是邓紫棋
拉黑后挽回的最佳时间:把握三个关键时机让前任主动找你
自家宅基地的老房能翻建、翻新吗?需要满足几点要求
伤官坐禄与伤官生财:命理学中的才华与财富密码
人工智能如何提升生产力
易拉罐破碎机:分离铝铁的环保新星
藏传佛教的朝圣
华为手表测量动态血压(手机为HarmonyOS NEXT版本)
中高考倒计时!紧张焦虑怎么办?心理医生给了4个小妙招(试过了,真有用)
如何软件测试SSD
如何软件测试SSD
报告显示:30岁以下高学历人才正成为AI行业中坚力量
你的高刷显示器可能还在以60Hz运行?这是因为你没有做这个设置!
赴日必读:如何在手机中添加Suica等日本交通卡
黄山旅游的文案
阿德勒心理学与中医的奇妙融合:探索身心健康的新路径
Steam全年打折时间表:四大促销节点及最佳购买攻略
为什么多种酒混合喝更容易醉?
极寒生存奥秘:生物如何在冰冷世界中生存