B4.17.3State Transition Model设计研究

并行控件的组合会使状态数爆炸,穷举建模只适用于局部

别名: 状态爆炸 · 组合状态 · 状态组合

概念解释

界面上的独立维度会相乘:三个开关加一个三态选择器就是 24 种组合,再加上输入内容、选中项与弹窗,状态数随控件数量指数增长。状态爆炸(state explosion)意味着整界面级别的穷举模型在实际项目中不可行,穷举建模的适用范围是局部子系统。

机制

状态空间的规模是各维度取值数的乘积而非总和。并行控件互不依赖时,模型必须为每个组合保留一个状态,即使绝大多数组合行为相同。建模成本与图的可读性随乘积增长失控,而其中真正影响交互的往往是少数正交维度——这提示建模应按维度分解而不是平面展开。

怎么研究

缓解手段本身是研究对象:层次状态机用嵌套与正交区域压缩组合;不变式(invariants)把「任意状态下 X 恒成立」抽出来单列;模型检验工具用符号方法表示状态集合而非逐个枚举。研究比较这些表示在不同界面规模下的可维护性与缺陷检出率。

边界

「只适用局部」不是缺陷而是适用范围声明:登录、下单等流程的状态数有限,穷举收益高;全站建模则成本远超收益。降维手段(抽象状态、忽略取值细节)会引入模型与实现的偏差,压缩得越狠,模型结论越需要与真实系统校验。

怎么落地

  • 只对高风险、低维度、有明确状态的流程做穷举建模,如支付确认、权限审批。
  • 界面级文档改用「维度清单 + 不变式」表达:每个控件的可能取值,以及任何组合下必须成立的规则。
  • 遇到必须全界面推理的问题,用分层状态机拆成正交区域,逐区穷举。
  • 验收时对每个不变式写自动检查,让「任何状态下都成立」的承诺由测试而不是模型图纸承担。

延伸

  • 同组B4.17.1 交互可建模为用户语言与系统语言之间的多次翻译,每次翻译都可能失真 · B4.17.2 状态转换图能穷举界面的可达状态与非法转换 · B4.17.4 模式是同一操作在不同状态下产生不同结果,模式错误可由状态图定位 · B4.17.5 不可达状态与无出口状态是可由模型机械检出的缺陷
  • 相邻R2 工程交付 · H1 交互模式与流程
  • 站内检索state explosion · hierarchical state machine · model checking

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/B4.17.3