用python画时序图源代码_Python设计模式 - UML - 时序图(Sequence Diagram)

简介

时序图表示参与者与对象之间、对象与对象之间的动态交互过程及时序关系。

时序图详细而直观地展示了对象随时间变化的状态、调用关系和消息时序,时序图中的主要元素有:参与者(Actor), 对象(Object),生命线(Lifetime)、控制焦点(Focus of Control)、消息(Message)、组合片段(Combined Fragments)等。

时序图建模步骤

- 确定系统需要和哪些外部参与者交互

- 确定系统内哪些主要对象之间需要创建时序图

- 确定外部参与者与系统对象之间、系统内部对象与对象之间的调用关系、消息类型和消息时序

- 确定参与者与对象之间、对象与对象之间的约束条件,并细化为组合片段

- 从全流程的角度梳理典型业务场景,并精化相应的时序图

时序图主要元素

参与者(Actor):参与系统的角色,可以是人、物或其它系统

对象(Object):类的实例

- 三种命名方式:

- 一般表示法:包括对象名、冒号、类名和下划线

- 只包括类名、冒号和下划线:表示适用于该类的所有实例,这种方式称为匿名对象

- 只包括对象名和下划线

- 创建对象:发送者发送一个实例化消息后触发的操作。用执行消息的箭头标识,指向被创建对象的表示框

- 销毁对象:将对象销毁并回收其拥有的资源。在对象生命线上用

标识

- 三种状态:

- 激活:当一条消息被传递给某个对象时会触发该对象的某个操作,此时该对象被激活,生命线的一部分竖直虚线变成上下细长矩形

- 运行:当一个对象处于激活器并正在执行某个操作时,该对象处于运行状态

- 销毁:对象被销毁并被回收资源

生命线(Lifeline):标识从对象图标向下延伸的一条虚线,标识对象存在的时间线。用垂直虚线标识,对象被创建后,生命线便存在。

控制焦点(Focus of Control):表示时间段的符号。用小矩形标识

消息(Message):不同对象之间的交流载体,从一个对象的生命线指向另一个对象的生命线。用实线箭头标识。消息包括很多种:

- 同步消息(Synchronous Message):消息被发送后,发送者停止活动等待反馈

- 异步消息(Asynchronous Message):消息被发送后,发送者继续自己的活动不等待反馈

- 返回消息(Return Message):从过程调用返回

- 自关联消息(Self-Message):对象方法的自身调用以及对象内方法之间的相互调用

- 消息示例

激活(Activation):对象执行操作时的状态。用上下细长矩形标识,矩形的高度与对象处于运行状态的时段对应

约束(Constraint):有时候对象交互必须满足特定的条件才会发送相应的消息,这些条件就成为约束。UML1.x与UML2.0中约束的标识有所不同。

- UML1.x:一个约束只能被分配到一个消息上,且需要把约束条件放在消息线上、消息名之前

- UML2.0:增加了组合片段的特性,取消了UML1.x中的约束格式。参见组合片段(Combined Fragments)部分

通信(Communication):对象交互时的通信路径

组合片段(Combined Fragments):描述交互执行的条件与方式。

- UML表示法

- 交互操作符(interaction Operators,十二种):时序图中画出循环和条件的运算子。这里只介绍常用的运算子,全部运算子参考官网

- alt(Alternative):与if...else...或switch对应

- opt(Optional):可能发生也可能不发生的片段

- par(Parallel):并行发生

- loop [value]:与for 或foreach对应,[value]表示循环次数

时序图示例

以ATM取款为例

时序图注意事项

- 在时序图中根据重要性将对象从左到右排列,也可使用类来标识匿名对象

- 对象在交互过程中可以新建和销毁

- 时序图的解读方式为从上到下、从左到右

- 注意区分消息的不同类型及应用场景

- 对象处于激活期时顶部代表操作的开始,底部代表操作的结束,中间部分表示操作过程中的调用

- 对于复杂的消息注意相关的约束及在UML不同版本中的区别,如前置条件、后置条件、组合片段等

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值