1. 线性、条件分支、并行、路由和人工介入节点如何映射成显式状态机
线性、条件分支、并行、路由和人工介入等流程结构,应如何映射成显式状态机?
- 五种结构在状态机中的对应物:顺序链、条件边、并行分支与汇合、路由表、挂起态
- 状态转移表与合法转移校验
- 人工介入节点(暂停/恢复/拒绝)的状态建模
显式状态机用"状态 + 转移"两种元素表达全部流程结构:线性步骤映射为状态链,每个状态完成一个节点动作,完成后触发到下一状态的转移;条件分支映射为条件边——状态不变、转移目标由条件函数(如校验结果)决定,进入不同后继状态;并行结构映射为分支-汇合模式,一个状态发出多个并行分支(Fan-out),全部到达汇合点后由汇合状态统一收敛(Fan-in),并维护"哪些分支已完成"的完成计数;路由结构映射为路由表——按消息类型或业务字段查表决定目标状态,等价于多条件分支的组合;人工介入节点映射为"等待审批"状态,进入该状态后流程挂起,只有收到审批通过/拒绝事件才发生转移。
设计要点:所有转移都要有明确的事件与守卫条件(guard),转移表可枚举、可校验,非法转移(如跳过审批直接完成)在代码层被拒绝;并行汇合要考虑部分分支失败时的处理策略——全部成功才汇合、或部分成功降级汇合;人工节点还要建模超时与取消事件(审批超时自动升级、用户取消终止)。显式状态机的价值是流程全部可列举、可测试、可审计,模型输出或外部事件只能触发合法转移。
本题考察把流程图翻译成状态机的建模能力。回答要逐一给出五种结构与状态机元素的对应关系,并强调转移表、守卫条件与人工节点事件建模。能说明并行汇合与人工超时等细节,说明建模经验扎实。