状态图

对象在生命周期里会经历不同状态,状态图画出「什么事件让状态变成什么」,订单、审批、设备控制都用得上。

hajimicode.cn
状态图操作界面

状态迁移

事件 + 条件 + 动作三段式标注

起止节点

UML 规范起止符号

组合状态

嵌套子状态表达复杂逻辑

高清导出

答辩投影清晰

产品能力

1

状态与迁移

圆角矩形表状态,箭头表迁移,事件和条件写在箭头上。

2

起止节点

实心圆起始、牛眼结束,符合 UML 画法。

3

组合状态

支持嵌套子状态表达复杂逻辑。

状态图功能面板

使用步骤

  1. 1

    列出对象的状态集合

  2. 2

    按事件连接状态迁移

  3. 3

    标注迁移条件后导出

详细介绍

状态图的适用对象

状态图描述一个对象在其生命周期内的状态变化:有哪些状态、什么事件触发迁移、迁移需要什么条件。它适合状态复杂的业务对象,比如订单(待支付/已支付/已发货/已完成/已取消)、审批单、设备控制器。如果对象只有两三个状态,用文字说明就够了,不必画图。

状态图的适用对象(状态图界面示意)

状态、事件与迁移

状态用圆角矩形表示,迁移用箭头连接,箭头上的标注格式为「事件 [守卫条件] / 动作」,比如「支付成功 [金额校验通过] / 生成发货单」。起始状态用实心圆,终止状态用牛眼符号。每个状态至少有一条进一条出(终止状态除外),不要出现孤立状态。

状态、事件与迁移(状态图界面示意)

组合状态与实践建议

复杂对象可以拆出子状态:比如「已下单」可以包含「待付款」「待发货」两个子状态,用组合状态框包起来。画图时先列出状态清单和事件清单,再画迁移,最后检查可达性——从初始状态出发能不能走到每个状态、能不能到达终止状态。

组合状态与实践建议(状态图界面示意)

适用场景

订单状态流转设计
审批流程状态建模
设备控制状态说明

交稿前核对清单

按这份清单过一遍,能挡掉答辩时最常见的格式扣分点。

  • 状态清单是否完整无遗漏
  • 迁移标注是否为三段式格式
  • 每个状态是否都有进有出
  • 从初始状态是否可达每个状态
  • 守卫条件是否互斥且完备
  • 孤立状态是否已清除

常见问题

什么对象需要画状态图?

状态复杂、迁移规则多的业务对象才值得画,比如订单(5+ 个状态)、审批单、设备控制器。只有两三个状态的对象用文字说明即可。

迁移标注的格式是什么?

「事件 [守卫条件] / 动作」三段式,比如「支付成功 [金额校验通过] / 生成发货单」。事件必填,条件和动作可选。

一个状态可以有多个出口吗?

可以。同一事件在不同条件下走向不同状态时,一个状态引出多条迁移箭头,每条标注各自的守卫条件,条件互斥且完备。

组合状态怎么画?

用大圆角矩形表示组合状态,内部画子状态和它们之间的迁移。比如「已下单」包含「待付款」「待发货」两个子状态,对外表现为一个整体状态。

状态图和活动图怎么区分?

状态图从对象视角画「它经历了什么状态」,活动图从业务流程视角画「活动怎么流转」。订单状态用状态图,下单流程用活动图。

画完怎么自查?

检查三件事:从初始状态能到达每个状态、每个状态(除终止)有出边、不存在孤立状态。再对照需求文档核对状态是否齐全。

免费开始使用 状态图

图表交给工具,时间还给论文。

免费开始