软件工程中的顺序图(时序图)详解
创作时间:
作者:
@小白创作中心
软件工程中的顺序图(时序图)详解
引用
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:可选分支,是满足一定条件则执行该分支,否则就跳过。
热门推荐
中科院沈阳生态所揭示不同覆盖作物对土壤微生物影响机制
慕田峪长城:国庆后错峰游正当时!
慕田峪长城红叶季:最佳打卡点全攻略
慕田峪长城:你不知道的历史秘密
云南石屏县:“四个着力”全面提升老年教育办学水平
煮熟的黄豆直接埋土里当肥料行吗?专家解析
剑门关站最新列车时刻表出炉!多条线路任你选
广州有线电视收费调整:从23元涨至26.5元,用户如何应对?
两部制定价:破解有线数字电视困境的新思路
宜宾特色美食推荐:六款不可错过的美食,让你大饱口福!
脆鲩 vs 草鱼:谁更营养?
葵花子、葛根、当归:雌激素调节饮食新宠
广东脆鲩 vs 草鱼:餐桌C位之争
富马酸喹硫平:正确服用方法与注意事项
富马酸喹硫平:抑郁症治疗的新选择
富马酸喹硫平:精神分裂症患者的福音?
激光打印机的秘密:感光鼓如何工作?
微信聊天记录备份全攻略:官方方法VS第三方工具
微信聊天记录成呈堂证供,法官教你如何取证
《玩偶之家》:一声关门响彻百年,娜拉出走背后的女性解放
房子为什么会降价?市场波动与购房策略解析
如何理解房产市场的需求并满足它?这种需求如何影响房产供应?
楼市拐点到了吗,政策如何快速影响市场?
南宁市农村产权流转交易中心教你如何合法合规地进行林权证转让
从绝望到重生:一个癫痫患者的治愈之路
快看!福鼎又上央视啦!
《黄帝内经》中的经典中药组合:从古代智慧到现代应用
福鼎白茶怎么冲泡更好喝?
福鼎白茶是什么茶
胃酸过多怎么办?如何改善饮食建议!