mermaid 序列图 解析

bash 复制代码
sequenceDiagram
    participant UI as 用户界面
    participant Executor as 任务执行器
    participant StateMgr as 状态管理器
    participant Repo as 数据仓库
    
    UI->>Executor: 执行任务3350c74e...
    Executor->>StateMgr: 更新状态为"measuring"
    StateMgr->>Repo: 持久化到nodestate.xml
    StateMgr->>UI: 发送statusChanged信号
    Executor->>Hardware: 实际采集数据
    Hardware->>Executor: 返回测量结果
    Executor->>Repo: 存储原始数据到results/raw_results/
    Executor->>StateMgr: 更新状态为"measured"

用户界面 任务执行器 状态管理器 数据仓库 Hardware 执行任务3350c74e... 更新状态为"measuring" 持久化到nodestate.xml 发送statusChanged信号 实际采集数据 返回测量结果 存储原始数据到results/raw_results/ 更新状态为"measured" 用户界面 任务执行器 状态管理器 数据仓库 Hardware


1. 这是什么图?

这是一张 序列图(Sequence Diagram),属于统一建模语言(UML,Unified Modeling Language)中的一种图。

2. 序列图的作用

序列图主要用于描述对象之间交互的顺序和过程,它能够清晰地展示系统中各个组件(对象或模块)之间的消息传递和协作关系。具体作用如下:

  • 设计阶段:帮助开发者设计系统的交互逻辑,明确各个组件之间的职责和交互顺序。
  • 开发阶段:作为开发人员编写代码的参考,确保代码实现符合设计的交互逻辑。
  • 维护阶段:帮助维护人员理解系统的交互过程,快速定位问题。

3. 如何读这种图?

序列图的阅读主要围绕以下几个方面展开:

(1)参与者(Participants)
  • 图中用矩形框表示参与者,例如:
    • UI(用户界面)
    • Executor(任务执行器)
    • StateMgr(状态管理器)
    • Repo(数据仓库)
    • Hardware(硬件设备)
  • 这些参与者可以是软件组件、模块,也可以是硬件设备等。
(2)消息(Messages)
  • 消息用箭头表示,箭头的方向表示消息的发送方向。
  • 消息的内容(如"执行任务3350c74e..."、"更新状态为'measuring'"等)写在箭头上方。
(3)时间顺序
  • 箭头从上到下表示时间的先后顺序,越靠上的箭头表示越早发生的交互。
(4)垂直线(Lifelines)
  • 每个参与者下方有一条垂直线,称为生命线(Lifeline),表示参与者在交互过程中存在的时间范围。
(5)激活条(Activation Bars)
  • 当参与者正在处理消息时,生命线上会有一个激活条(矩形框),表示该参与者正在执行操作。

4. 具体解读这张图

以下是这张序列图的详细解读:

(1)交互过程
  1. 用户界面(UI) 发起任务请求,向 任务执行器(Executor) 发送消息"执行任务3350c74e..."。
  2. 任务执行器(Executor) 收到任务后,向 状态管理器(StateMgr) 发送消息"更新状态为'measuring'",表示任务开始测量。
  3. 状态管理器(StateMgr) 接收到消息后,将当前状态持久化到 数据仓库(Repo)nodestate.xml 文件中。
  4. 状态管理器(StateMgr) 同时向 用户界面(UI) 发送 statusChanged 信号,通知 UI 状态已更新。
  5. 任务执行器(Executor)硬件设备(Hardware) 发送消息,请求实际采集数据。
  6. 硬件设备(Hardware) 完成数据采集后,将测量结果返回给 任务执行器(Executor)
  7. 任务执行器(Executor) 将采集到的原始数据存储到 数据仓库(Repo)results/raw_results/ 目录中。
  8. 任务执行器(Executor) 再次向 状态管理器(StateMgr) 发送消息"更新状态为'measured'",表示任务测量完成。
(2)交互顺序
  • 从上到下依次为:
    1. UI -> Executor
    2. Executor -> StateMgr
    3. StateMgr -> Repo
    4. StateMgr -> UI
    5. Executor -> Hardware
    6. Hardware -> Executor
    7. Executor -> Repo
    8. Executor -> StateMgr
(3)参与者角色
  • UI:负责用户交互,发起任务请求并接收状态更新信号。
  • Executor:负责任务的执行,协调其他组件完成任务。
  • StateMgr:负责管理任务的状态,并将状态持久化到数据仓库。
  • Repo:负责存储状态信息和原始数据。
  • Hardware:负责实际采集数据。

5. 总结

这张序列图清晰地展示了任务执行过程中各个组件之间的交互顺序和消息传递关系。通过阅读这张图,可以快速理解系统的交互逻辑,帮助开发和维护人员更好地理解和设计系统。

相关推荐
Uncertainty!!2 小时前
C++编译/链接模型
c++·链接·编译
CodeWithMe4 小时前
【C/C++】线程状态以及转换
java·c语言·c++
Stanf up4 小时前
C++单例模式
c++·单例模式
A1-294 小时前
QT之INI、JSON、XML处理
xml·c++·qt·json
丶Darling.6 小时前
Day126 | 灵神 | 二叉树 | 层数最深的叶子结点的和
数据结构·c++·算法·二叉树·深度优先
yuanpan6 小时前
CMake创建C++项目与npm创建nodejs项目异曲同工
开发语言·c++·npm
漫步企鹅6 小时前
【Qt】QImage实战
人工智能·深度学习·qt·计算机视觉·qimage
潇-xiao6 小时前
Qt 控件发展历程 + 目标(1)
c++·笔记·qt
梁下轻语的秋缘6 小时前
每日c/c++题 备战蓝桥杯(洛谷P4715 【深基16.例1】淘汰赛 题解)
c语言·c++·蓝桥杯
梁下轻语的秋缘7 小时前
每日c/c++题 备战蓝桥杯(洛谷P1873 EKO砍树问题详解)
c语言·c++·蓝桥杯