zoukankan      html  css  js  c++  java
  • 时序图的使用习惯

    是什么

    一种UML交互图, 通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。

    使用场景

    梳理业务流程

    刚好最近接手一个业务模块,参考原有文档&与交接人的沟通&相关代码梳理出一份时序图,并上传至项目文档空间里

    时序图角色

    角色Actor

    系统角色,可以是人或者其他系统和子系统

    对象Object

    以一个矩形表示

    生命线LifeLine

    时序图中每个对象和底部中心都有一条垂直的虚线,这就是对象的生命线(对象的时间线)。以一条垂直的虚线表。

    消息message

    同步消息, 一条实线和实心箭头表示

    返回消息, 小于号和虚线表示

    自关联消息

    控制焦点Activation

    控制焦点代表时序图中在对象时间线上某段时期执行的操作。以一个很窄的矩形表示。

    画时序图的工具

    推荐

    processon

    draw.io

    plantuml

    个人喜好

    plantuml

    plantuml语法直接写,不需要画图,强迫症接受不了拖拽手动画图

    语法

    官方文档地址:https://plantuml.com/zh/sequence-diagram

    示例:
    @startuml
    autonumber 
    actor 小B
    participant 大数据
    participant 业务定时任务
    participant 业务
    database DB
    participant 对接系统
    participant ELK
    actor 开发
    
    大数据 -> DB: 计算好业务数据推到中间表
    activate 业务定时任务
    业务定时任务 -> 业务定时任务: 计算处理相关字段的逻辑
    业务定时任务 -> DB: 定时任务将@startuml
    autonumber 
    actor 小B
    participant 大数据
    participant 业务定时任务
    participant 业务
    database DB
    participant 对接系统
    participant ELK
    actor 开发
    
    大数据 -> DB: 计算好业务数据推到中间表
    activate 业务定时任务
    业务定时任务 -> 业务定时任务: 计算处理相关字段的逻辑
    业务定时任务 -> DB: 定时任务将数据同步到结果表
    deactivate 业务定时任务
    activate 业务
    小B -> 业务: 修改业务数据并审核
    业务 -> DB: 审核入库
    deactivate 业务
    activate 业务定时任务
    业务定时任务 -> DB: 定时去库中拿已审核的数据
    DB --> 业务定时任务: 拿到数据
    业务定时任务 -> 对接系统: 定时推给对接系统生成促销活动
    对接系统 --> 业务定时任务: 同步失败时
    业务定时任务 -> ELK: 错误日志写到ELK里
    deactivate 业务定时任务
    activate ELK
    ELK -> ELK: ELK将符合策略的错误日志过滤出来
    ELK -> 开发: ELK通过邮件微信等方式通知开发
    deactivate ELK
    @enduml数据同步到结果表
    deactivate 业务定时任务
    小B -> 出清: 修改业务数据并审核
    出清 -> 业务: 审核入库
    activate 业务定时任务
    业务定时任务 -> DB: 定时去库中拿已审核的数据
    DB --> 业务定时任务: 拿到数据
    业务定时任务 -> 对接系统: 定时推给对接系统生成促销活动
    对接系统 --> 业务定时任务: 同步失败时
    业务定时任务 -> ELK: 错误日志写到ELK里
    deactivate 业务定时任务
    activate ELK
    ELK -> ELK: ELK将符合策略的错误日志过滤出来
    ELK -> 开发: ELK通过邮件微信等方式通知开发
    deactivate ELK
    @enduml
    

  • 相关阅读:
    Python 参数设置
    python日志模块logging
    推荐一种快速提高英语口语的方法
    Windows 远程桌面文件传输的方法
    敏捷术语
    Timeout watchdog using a standby thread
    ZFS -世界上最高级的文件系统之一
    Linux下创建和删除用户
    linux 学习之路
    Difference between a Hard Link and Soft (Symbolic) Link
  • 原文地址:https://www.cnblogs.com/yks43/p/14374855.html
Copyright © 2011-2022 走看看